VIM: ¿Cómo obtienes el último comando ex que usaste?

10

Me parece que a veces escribo un comando ex mode realmente largo que hace muchas cosas. Son una especie de "mini-scripts" que escribo en el editor de texto, luego inicio el modo ex y los copio en la línea ex y los ejecuto. Pero siempre termino editando en modo ex y luego me resulta difícil hacer que los cambios que hice en modo ex vuelvan a mi sesión de edición de texto.

Usando el teclado, ¿cómo copia el último comando ex que usó y lo pega en su editor de texto?

(Nota: Esto es más o menos lo contrario de esta pregunta " ¿Cómo copio / pego en modo vim ex ", donde el usuario pregunta "¿Cómo se copia desde el editor de texto y pegar EN el modo ex?". Mi pregunta es la opuesto porque deseo copiar del modo ex y pegarlo en mi editor de texto).

Trevor Boyd Smith
fuente
Tengo un error que hace esto ... pero requiere que el mouse seleccione ... el menú desplegable de gvim para copiar ... y si la línea ex es dos líneas, la pasta tiene una nueva línea que es molesta. (pero más molesto es el hecho de que estoy usando el mouse y la interfaz gráfica de usuario para copiar / pegar ...).
Trevor Boyd Smith

Respuestas:

16

El :registro contiene el último: -comando (ex comando) que ejecutó, por lo que simplemente puede escribir el comando ":p(con la comilla doble) para pegar ese registro en el búfer actual. Ver:

:help registers
:help ":

Tenga en cuenta que hay registros para la última búsqueda, el nombre del búfer actual, etc.

Heptita
fuente
17

Prueba el q:comando. (Eso son dos caracteres, primero qy luego :). Este es un comando de modo normal que abrirá su historial de comando anterior en un búfer especial de Vim. Puede revisar el historial, tirar todo lo que quiera como siempre, y / o editar una línea y presionarla <enter>para ejecutarla.

Herbert Sitz
fuente
¡Solo ten cuidado de no escribir :q, que mi memoria muscular intenta forzarme!
frabjous
77
q:Funciona desde el modo normal. Si ya está en modo de línea de comandos (ex), escriba Ctrl-F para abrir esa ventana de línea de comandos.
garyjohn
Hmm .... Ctrl + F no hace más que imprimir "^ F" en mi línea de comando ex-mode. ¿Me estoy perdiendo un poco de salsa mágica?
Stabledog