Qual é o comando (ou atalho) para mover uma linha para cima ou para baixo no vim? Meu fluxo de trabalho atual é arrancar (copiar) a linha e excluí-la e depois colocar (colar) essa linha.
47
Qual é o comando (ou atalho) para mover uma linha para cima ou para baixo no vim? Meu fluxo de trabalho atual é arrancar (copiar) a linha e excluí-la e depois colocar (colar) essa linha.
ddkP
, para baixo em movimento é mais fácil:ddp
.Respostas:
Primeiro, você não precisa puxar e excluir; o último também colocará o conteúdo excluído no registro (padrão ou especificado). Portanto,
ddp
/ddkP
são comandos comuns para mover uma linha um para baixo / para cima.Como alternativa, você pode usar o
:move
comando, ie:move +1
/:move -2
; isso não atrapalha o registro e você também pode mover intervalos inteiros. Você pode definir facilmente os mapeamentos de teclas para encurtar isso.Se você não se importa com plugins (e com o conforto adicional que costuma vir com eles), o plug - in intacto de Tim Pope e meu plug-in LineJuggler fornecem
]e
/[e
mapeamentos para mover linhas (e vários outros; Tim para uma variedade de usos, o meu focado no manuseio linha (s)).fonte
O mais fácil é:
:m+
ou:m-2
qual é a abreviação de:move
como Ingo sugeriu.Ou usando o modo visual ( V) cortando a linha ( d/ x) e colando-a ( p- abaixo do cursor, Pacima do cursor) depois de mover o cursor para o lugar certo antes de colar (para resumir, é Vxp/ Vdp).
Ao mover várias linhas no modo visual, você deve usar
:m '>+1
(para mover uma linha para baixo) ou:m '<-2
(para mover uma linha para cima).Aqui está um exemplo de mapeamento útil ( Shift+ ↑/ Shift+↓):
que é semelhante ao texto sublime ( Win / OSX ).
Aqui estão algumas sugestões no vim wikia :
Veja também:
fonte
Se eu quiser trocar uma linha pela linha acima, eu normalmente faço o seguinte
Explicação
fonte
ddp
FWIW, aqui está o que eu uso há anos. Move a linha atual para cima e para baixo no modo normal ou a seleção no modo visual, enquanto ajusta o recuo automaticamente.
fonte