Como anexar texto cortado à área de transferência/buffer do nano/vi em vez de substituir o que está lá?

Como anexar texto cortado à área de transferência/buffer do nano/vi em vez de substituir o que está lá?

Atualmente estou reorganizando a lista de espelhos pacman do ArchLinux para colocar todos os servidores dos Estados Unidos no topo, mas está indo extremamente devagar. Para cada servidor, estou rolando para baixo até o próximo servidor dos EUA na lista, cortando-o, voltando ao topo, colando-o e assim por diante.

Eu sinto que deveria haver alguma maneira de começar de baixo e cortar todos os servidores dos EUA que vejo em um buffer cumulativo, antes de colar tudo de uma vez no topo do arquivo.

Eu sei que o Nano permite que você use o comando cut várias vezes para adicionar várias vezes ao cutbuffer, mas isso é apenas para linhas que estão diretamente próximas umas das outras.

Responder1

No Vim, você pode usar:globalpara:movetodas as linhas correspondentes no topo:

:global/United States/move 0

Observe que isso inverterá a ordem das linhas movidas.


Outra abordagem mais alinhada com o que você está perguntando é cortar as linhas em umregistro nomeado(:help quote_alpha). As variantes maiúsculas acrescentam e, portanto, acumulam exclusões:

:let @a = "" | global/United States/delete A

Você pode então colar o registro no topo (desta vez com a ordem original):

:0put a

informação relacionada