¿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/ddkPson comandos comunes para mover una línea hacia abajo / arriba.Alternativamente, puede usar el
:movecomando, 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/[emapeos 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-2que es la abreviatura de:movecomo 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
ddpFWIW, 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