En VIM, ¿puedo averiguar qué teclas acabo de escribir?

11

A veces usaré VIM y sucederá algo, y no sé qué fue o qué escribí que lo causó. ¿Hay alguna manera de enumerar algunas de las claves recientes que se escribieron y, aún mejor, descubrir qué acciones activaron?

Owen
fuente

Respuestas:

7

Vimtiene una opción -Wque podría abusar, pero no funcionará mientras Vimtodavía se está ejecutando.

-w {scriptout}

Todos los caracteres que escribe se registran en el archivo {scriptout}, hasta que salga de Vim. Esto es útil si desea crear un archivo de script para usar con "vim -s" o ": source!". Si el archivo {scriptout} existe, se agregan caracteres.

-W {scriptout}

Como -w, pero se sobrescribe un archivo existente.

Llamar Vimcon, por ejemplo, un alias

vim -W /tmp/vimlog-$(id -un)

le permitirá inspeccionar con less /tmp/vimlog-$(id -un)o cat -v /tmp/vimlog-$(id -un)lo que literalmente escribió después de salir Vim.

peth
fuente
Esta es una idea interesante. Voy a intentarlo y ver si aprendo algo.
Owen
3

Primero asegúrese de que vim recuerde cualquier línea de la historia. Esto establece el historial en 1000 comandos y búsquedas:

:set history=1000

Si escribe el inicio de lo que está buscando, puede usar las teclas para desplazarse por el historial; esto se aplica a los comandos y las búsquedas.

Por ejemplo, si ha buscado china, luego Cuba, luego Chad y luego Chipre :

Puede escribir /cy presionar varias veces. Encontrará que se muestra en /cyprusese /cubamomento /china( /Chadse omite porque no comienza con una c ).

Otros comandos:

  • :history enumera toda la historia.
  • :his enumera el historial de comandos.
  • :his / enumera el historial de búsqueda.
Garfio
fuente
2
No creo que esto se aplique a los comandos del modo normal solo a los comandos del modo ex (es decir, los comandos que comienzan con ':', ejemplo: e: w: q)
kmkkmk
1
Para ver el historial de comandos ex, también puede simplemente escribir q:en modo normal. lo mismo ocurre con el historial de búsqueda conq/
Yab
2

Puede agregar esto a su .vimrc:

set showcmd

Mostrará en la barra de estado el comando que está realizando a medida que los escribe. Si bien esto no le dará un historial, esta es la solución más cercana que conozco.

Sin embargo, si estás hablando de excomandos, el abanico de Gareth es el camino a seguir.

Yab
fuente