¿Puedo ver el historial de pulsaciones de teclas en modo normal?


32

Sé que Vim mantiene el historial de comandos ex, búsquedas, ubicaciones de salto, cambios y posiblemente otros.

Con showcmdset, Vim también le muestra qué teclas ha ingresado hasta ahora para un comando de modo normal, hasta que se ejecuta ese comando.

A veces, cuando estoy en modo normal, escribo mal y ocurren acciones. Puedo deshacer estas acciones, pero a veces quiero saber cómo se produjeron las ediciones durante mi error. A veces, la edición se ve genial y quiero saber cómo repetirla en el futuro.

Entonces, ¿hay alguna forma de ver el historial de pulsaciones de teclas en modo normal, preferiblemente delimitado cuando se produjo una edición o acción real (como movimiento o cambio de modo)?


44
Posiblemente relacionado: drbunsen.org/vim-croquet
wchargin

Respuestas:


20

Siguiendo el enlace de @WChargin un poco más, encontré esto:

Puede iniciar vim con la opción -wo de la -Wsiguiente manera:

vim -w keys.txt my_file

Todos los caracteres que escribe se registran en el archivo {scriptout}, hasta que salga de Vim.

-wse agregará al archivo especificado si existe; -Wlo sobrescribirá

No te da lo que quieres, pero es la dirección correcta.

Actualización: Parece que vim realidad amortigua todas las pulsaciones de teclas hasta que salga de vim, pero hay un parche de una línea aquí que va a escribir las pulsaciones de teclas inmediatamente.


¡Gracias! Estoy usando esto como un punto de partida para hurgar en el código fuente. Parece que -w guarda cada pulsación de tecla, no solo los comandos en modo normal, sino que está en lo correcto: ¡es la dirección correcta!
John O'M.

@xthrd, ¿cómo están keys.txtformateados / estructurados estos archivos? Cuando uso -w, anexar siempre ocurre en una línea larga-larga-larga; y, se muestran caracteres extraños: en UTF-8, cada vez que abro un archivo en un nuevo búfer, obtendré €齛. Este es un buen marcador en sí mismo, pero sería genial si los registros pudieran analizarse opcionalmente.
llinfeng

@llinfeng No está formateado en absoluto. Literalmente es solo un archivo que contiene las pulsaciones de teclas en el orden en que fueron hechas. (Aunque tenga en cuenta que si algunas de las pulsaciones de teclas son <cr>, entonces el archivo contendrá saltos de línea). Esto se debe a que el objetivo principal es crear archivos que se puedan reproducir con la -sopción. ¡Pero por qué no probarlo por ti mismo!
Rico

@ Rich Gracias por aclarar. He utilizado este mecanismo de seguimiento de claves para depurar el problema que inició mi búsqueda. [Mi lección es que: nunca W
mapees

-4

Hay una q:que muestra un historial de comandos.

También me parece útil que pueda presionar hacia arriba en un comando parcialmente completado para recorrer las coincidencias. Por ejemplo, /abc presionar hacia arriba recorrerá su historial de búsquedas que comienzan con 'abc'


55
q: muestra el historial de comandos ex y es útil, pero no es un registro de comandos normales, como "ad2tn (eliminar en el registro a hasta el segundo n)
John O'M.

No olvides que mientras estás editando un comando puedes abrir la línea actual en el editor de historial y usar vi para editar la línea presionandoCtrl+f
Sukima
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.