Suponho que você provavelmente não use vim
... então talvez isso sirva como incentivo para aprendê-lo, ou talvez um breve tutorial ...
$ vim *
irá abrir todos os arquivos;
:!mkdir mine/; mkdir notmine/
criará diretórios chamados "mine" e "notmine";
:!mv % mine/
moverá o arquivo atual para um diretório chamado "mine";
:bdel
soltará o arquivo daqueles que o vim está lidando e mudará para o próximo;
:!mv % notmine/
irá mover o arquivo atual para um diretório chamado "notmine". O que está acontecendo com esses comandos de movimentação é
-
:
entra no modo de linha de comando -
!
inicia um comando shell -
%
faz com que o vim substitua o nome do arquivo atual. Se algum dos nomes de arquivo tiver espaços neles , você precisará citar duas vezes o argumento%
, por exemplo,:!mv "%" mine/
.
Atingir :
, depois b
e, em seguida, a seta para cima para obter novamente o comando :bdel
.
Acerte :
, depois !mv
e, em seguida, a seta para cima repetidamente para percorrer os comandos anteriores !mv ...
. Você também pode digitar :!
e depois a seta para cima, mas isso também receberá o comando !mkdir...
.
Caso você não tenha adivinhado, a seta para cima no "modo de linha de comando" do vim (o que você digita pressionando :
no "modo normal") fará com que ele passe pelos comandos anteriores que começam com tudo o que você já digitou lá.
Além disso, com a chance de que você esteja fazendo isso sem nenhuma experiência anterior com o vim, devo primeiro elogiá-lo por fazer uma jogada tão ousada e, em seguida, informar que se a qualquer momento você acidentalmente acertar uma tecla o teclado e você começa a digitar coisas no arquivo, ou as coisas funcionam inesperadamente, acesse <ESC>
algumas vezes e, em seguida, u
desfaça todas as alterações feitas acidentalmente . Se você for muito longe (não é realmente um problema para este exemplo, já que você não modificará nenhum arquivo), você selecionou <CTRL>-R
para refazer coisas que acabou de desfazer. O <ESC>
o levará para fora do modo de Inserção ou modo Visual, de volta ao modo Normal, que é onde todos esses comandos realmente funcionam.
Ok .. depois desse pequeno PSA, voltando à programação programada regularmente.
Para tornar o processamento de arquivos mais eficiente, você pode configurar algumas macros:
qm:!mv % mine/<CR>:bdel<CR>q
Isso realmente terá o efeito de mover o arquivo atual e soltá-lo da "lista de buffers" do vim, então tenha certeza que é um dos seus quando você configurar esta macro. Observe que <CR>
indica que você pressionou a tecla ENTER nesse ponto; na verdade não digita <CR>
.
qn:!mv % notmine/<CR>:bdel<CR>q
Mesma coisa aqui.
Em seguida, para mover um arquivo para o diretório "mine" e seguir em frente na lista de buffers, você faz
@m
Ou se não for seu
@n
Na verdade, pode ser mais sensato mapear essas macros para letras mais distantes no teclado do que m
e n
.. mas essa é a ideia básica.