Posso vedere la cronologia delle pressioni dei tasti in modalità normale?


32

So che Vim mantiene la cronologia di ex comandi, ricerche, posizioni di salto, modifiche e forse altri.

Con showcmdset, Vim ti mostra anche quali chiavi hai inserito finora per un comando in modalità normale, fino a quando quel comando non viene eseguito.

A volte, quando si è in modalità normale, si digitano male e si verificano azioni. Posso annullare queste azioni, ma a volte voglio sapere come sono avvenute le modifiche durante l'errore. A volte la modifica sembra interessante e voglio sapere come ripeterla in futuro.

Quindi, c'è un modo per vedere la cronologia delle pressioni dei tasti in modalità normale, preferibilmente delimitata quando si è verificata una modifica o un'azione (come movimento o cambio di modalità)?


4
Forse correlato: drbunsen.org/vim-croquet
wchargin

Risposte:


20

Seguendo un po 'di più il link da @WChargin, ho trovato questo:

Puoi avviare vim con l' opzione -wo -Wcome segue:

vim -w keys.txt my_file

Tutti i caratteri digitati vengono registrati nel file {scriptout}, fino all'uscita da Vim.

-wverrà aggiunto al file specificato se esiste; -Wlo sovrascriverà.

Non ti dà esattamente quello che vuoi, ma è la giusta direzione.

Aggiornamento: Sembra che in realtà vim buffer tutte le sequenze di tasti fino a quando si esce vim, ma c'è una sola riga di patch qui che scriverà immediatamente le sequenze di tasti.


Grazie! Sto usando questo come punto di partenza per frugare nel codice sorgente. Sembra che -w salva ogni singolo tasto premuto, non solo i comandi in modalità normale, ma hai ragione: è la direzione giusta!
John O'M.

@xthrd, come sono keys.txtformattati / strutturati questi file? Quando uso -w, l'aggiunta avviene sempre in una linea lunga-lunga-lunga; e, ci sono caratteri strani visualizzati: sotto UTF-8, ogni volta che apro un file in un nuovo buffer, lo otterrò €齛. Questo è un buon indicatore da solo, ma sarebbe bello se i log potessero essere analizzati opzionalmente.
llinfeng,

@llinfeng Non è affatto formattato. È letteralmente solo un file contenente i tasti nell'ordine in cui sono stati creati. (Sebbene si noti che se alcuni dei tasti premuti <cr>, il file conterrà interruzioni di riga.) Questo perché lo scopo principale è quello di creare file che possono essere riprodotti con l' -sopzione. Ma perché non provarlo tu stesso!
Ricco

@Rich Grazie per il chiarimento. Ho usato questo meccanismo di tracciamento delle chiavi per eseguire il debug del problema che ha avviato la mia ricerca. [La mia lezione è che: mai mappare Wper la riga di comando.]
llinfeng,

-4

C'è q:che mostra una cronologia dei comandi.

Trovo anche utile che tu possa premere verso l'alto in un comando parzialmente completato per scorrere le partite. Ad esempio, /abc premendo verso l'alto scorrerai la cronologia delle ricerche che iniziano con 'abc'


5
q: mostra la cronologia degli ex comandi ed è utile, ma non è un registro dei comandi normali, come "ad2tn (elimina nel registro a fino alla seconda n)
John O'M.

Non dimenticare che durante la modifica di un comando puoi visualizzare la riga corrente nell'editor della cronologia e usare vi per modificare la riga premendoCtrl+f
Sukima
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.