A menudo necesito pegar algo en varias líneas adyacentes, en la misma posición o en posiciones similares. Es un dolor tener que mover el cursor de regreso al principio de los contenidos pegados cada vez, al pasar a la siguiente línea. ¿Cómo puedo pegar (como en, el comando 'p') sin mover el cursor? O bien, ¿cómo puedo hacer que el cursor vuelva rápidamente a donde estaba antes de pegar?Pegar en Vim sin mover el cursor
Respuesta
La forma más segura sin destruir un registro es hacer lo siguiente:
p`[
Si desea crear un acceso directo, sólo tiene que utilizar ninguna de las funciones del vim mapa que son adecuados para usted, por ejemplo:
noremap p p`[
'k'? (como en la flecha hacia arriba)
Si usa 'p' para pegar texto debajo de la línea actual, el cursor estará en la primera línea del contenido pegado. Al escribir 'k' en el modo de comando, se pasa a la línea sobre el inicio del contenido pegado.
Cada vez que tengo una secuencia de pasos para repetir varias veces, grabo una macro, que es trivialmente fácil en Vim. El método general es
- Coloque el cursor donde desea realizar el primer cambio.
- Escriba qx para comenzar a grabar las pulsaciones de teclas.
- Haga la primera edición.
- Mueva el cursor a la posición donde debe comenzar la segunda edición.
- Pulse q nuevamente para salir de la grabación.
- Escriba @x para reproducir la macro y realizar la próxima edición. El comando @ toma una cuenta para que pueda repetir la edición tantas veces como quiera con un comando.
Así, en su caso, toda la secuencia de pulsaciones de teclas para grabar la macro podría ser
qxp`[jq
y [email protected]
para reproducir cinco veces para un total de 6 cambios.
Tenga en cuenta que el carácter después de la primera q es un registro para registrar la macro y puede ser cualquier letra, no solo x. Solo tenga cuidado de que sus macros no introduzcan texto en el registro que está grabando actualmente, ¡hace un verdadero desastre!
Las macros pueden ser arbitrariamente largas y complejas. Pueden contener comandos del modo Ex e incluso llamar a otras macros.
Esta es una gran explicación, gracias. Voy a experimentar con esto. – aehlke
¿Puede profundizar en este bit -> "Solo tenga cuidado de que sus macros no arranquen el texto en el registro que está grabando actualmente en"? Gracias –
Puede volver rápidamente a donde estaba antes de pegar presionando CTRL-o. Esto en general retrocede a la posición anterior del cursor.
Estoy pegando líneas de todo un documento grande a una de 3 marcas (moviendo las líneas para que queden debajo de los encabezados). La forma más rápida que he encontrado es:
'ap
seguido de Ctrl-O
- 1. Vim reemplazar todo sin mover el cursor
- 2. Unir dos líneas en vim sin mover el cursor
- 3. Vim copiar y pegar
- 4. Cursor de salto/posición en Vim
- 5. Vim: mover el cursor a una cadena en un archivo fuente sin mensajes de error si no existe
- 6. Escape de caracteres durante pegar en vim
- 7. Mover el cursor más suavemente (aplicación remota)
- 8. ¿Cómo puedo mover intuitivamente el cursor en vim? (No por línea)
- 9. Mover el cursor del ratón mediante programación
- 10. Mover el cursor al final de EditText?
- 11. Mover el cursor al comienzo de UITextField
- 12. Cortar y pegar varias líneas en vim
- 13. ¿Cómo pegar en la línea donde está el cursor?
- 14. Vim en Mac OS X Terminal: mover cursor palabra por palabra
- 15. ¿Hay un comando vim para mover el cursor al soporte principal?
- 16. Cómo bloquear (¿columna?) Pegar en vim
- 17. Mover cursor x líneas desde la posición actual en vi/vim
- 18. VIM Ctrl-V Conflicto con Windows Pegar
- 19. archivo abierto Vim bajo el cursor
- 20. Mover sección a archivo nuevo en vim
- 21. Mover texto en un div sin mover el div
- 22. arrastrar y soltar sin mover el elemento
- 23. Pegar desde el portapapeles y alternar automáticamente: establecer pegar
- 24. Mover archivo dentro de Vim
- 25. ¿Cómo hago que imap funcione en modo pegar en Vim?
- 26. Javascript: Mover cursor al último carácter
- 27. ¿Cómo pegar una nueva línea con vim?
- 28. Iteración sin usar el cursor en MYSQL
- 29. Posición del cursor en la abreviatura VIM
- 30. Vim - comando ex mode - ¿hay alguna forma de mover la posición del cursor?
¿Hay una manera de utilizar las marcas de forma más segura, por lo que no destruye algo que sucede que tiene en ese registro? Tal vez algún otro registro que normalmente no se utiliza en absoluto, no estoy seguro de lo que está disponible o es habitual. – aehlke
Lo siento, lo que quise decir en mi comentario fue, me gustaría guardar eso como un comando preestablecido por lo que es menos de escribir. – aehlke
Ver la respuesta revisada. – carl