¿Cuál es el comando (o acceso directo) para mover una línea hacia arriba o hacia abajo en vim? Mi flujo de trabajo actual es tirar (copiar) la línea y luego eliminar esa línea y luego poner (pegar) esa línea.
48
¿Cuál es el comando (o acceso directo) para mover una línea hacia arriba o hacia abajo en vim? Mi flujo de trabajo actual es tirar (copiar) la línea y luego eliminar esa línea y luego poner (pegar) esa línea.
ddkP
, abajo en movimiento es más fácil:ddp
.Respuestas:
Primero, no necesita tirar y eliminar; este último también colocará los contenidos eliminados en el registro (predeterminado o especificado). Por lo tanto,
ddp
/ddkP
son comandos comunes para mover una línea hacia abajo / arriba.Alternativamente, puede usar el
:move
comando, es decir:move +1
/:move -2
; esto no golpea el registro, y también puede mover rangos completos. Puede definir fácilmente las asignaciones de teclas para acortar esto.Si no le importan los complementos (y la comodidad adicional que a menudo viene con ellos), tanto el complemento intacto de Tim Pope como mi complemento LineJuggler proporcionan
]e
/[e
mapeos para mover líneas (y varios más; Tim para una variedad de usos, el mío se centró en el manejo líneas)).fuente
La más fácil es:
:m+
o:m-2
que es la abreviatura de:move
como sugirió Ingo.O utilice el modo visual ( V) cortando la línea ( d/ x) y luego péguela ( p- debajo del cursor, Pencima del cursor) después de mover el cursor al lugar correcto antes de pegar (en resumen, es Vxp/ Vdp).
Al mover varias líneas en modo visual, debe usar
:m '>+1
(para mover una línea hacia abajo) o:m '<-2
(para mover una línea hacia arriba).Aquí hay una muestra de mapeo útil ( Shift+ ↑/ Shift+↓):
que es similar a Sublime Text ( Win / OSX ).
Aquí hay algunos sugeridos en vim wikia :
Ver también:
fuente
Si quiero intercambiar una línea con la línea de arriba, generalmente hago lo siguiente
Explicación
fuente
ddp
FWIW, esto es lo que he usado durante años. Mueve la línea actual hacia arriba y hacia abajo en modo normal o la selección en modo visual, mientras ajusta la sangría automáticamente.
fuente