Czy mogę zobaczyć historię naciśnięć klawiszy w trybie normalnym?

32

Wiem, że Vim przechowuje historię dla byłych poleceń, wyszukiwań, lokalizacji skoków, zmian i ewentualnie innych.

Po showcmdustawieniu Vim pokazuje również, jakie klawisze zostały wprowadzone do tej pory dla polecenia trybu normalnego, dopóki polecenie to nie zostanie wykonane.

Czasami, gdy jestem w trybie normalnym, mylę się i występują działania. Mogę cofnąć te działania, ale czasami chcę wiedzieć, jak wyglądały zmiany podczas mojego błędu. Czasami edycja wygląda fajnie i chcę wiedzieć, jak ją powtórzyć w przyszłości.

Czy jest więc jakiś sposób, aby zobaczyć historię naciśnięć klawiszy w trybie normalnym, najlepiej ograniczonym, gdy nastąpiła faktyczna edycja lub działanie (jak ruch lub zmiana trybu)?

John O'M.
źródło
4
Możliwe powiązanie: drbunsen.org/vim-croquet
wchargin

Odpowiedzi:

20

Idąc dalej za linkiem z @WChargin, znalazłem to:

Możesz uruchomić vima z opcją -wlub -Ww następujący sposób:

vim -w keys.txt my_file

Wszystkie wpisane znaki są zapisywane w pliku {scriptout}, dopóki nie wyjdziesz z Vima.

-wdołącza do określonego pliku, jeśli istnieje; -Wnadpisze to.

Nie zapewnia ci to, czego chcesz, ale jest to właściwy kierunek.

Aktualizacja: Wygląda na to, że vim faktycznie buforuje wszystkie naciśnięcia klawiszy, dopóki nie wyjdziesz z vima, ale jest tu łatka jednowierszowa , która natychmiast zapisze naciśnięcia klawiszy.

Xth
źródło
Dzięki! Używam tego jako punktu wyjścia do wczytywania kodu źródłowego. Wygląda na to, że -w zapisuje każde naciśnięcie klawisza, nie tylko polecenia w trybie normalnym, ale masz rację: to właściwy kierunek!
John O'M.
@xthrd, jak te keys.txtpliki są sformatowane / ustrukturyzowane? Kiedy używam -w, dołączanie zawsze dzieje się w długiej, długiej linii; i są wyświetlane dziwne znaki: pod UTF-8, za każdym razem, gdy otworzę plik w nowym buforze, dostanę €齛. Jest to dobry marker sam w sobie, ale byłoby wspaniale, gdyby dzienniki można było parsować opcjonalnie.
llinfeng,
@llinfeng To wcale nie jest sformatowane. To dosłownie tylko plik zawierający naciśnięcia klawiszy w kolejności, w jakiej zostały wykonane. (Chociaż należy pamiętać, że jeśli niektóre klawisze są wciśnięte <cr>, plik będzie zawierał łamanie wierszy). Jest tak, ponieważ głównym celem jest tworzenie plików, które można odtwarzać za pomocą tej -sopcji. Ale może wypróbujesz to sam!
Bogaty
@Rich Dziękujemy za wyjaśnienie. Użyłem tego mechanizmu śledzenia kluczy do debugowania problemu, który rozpoczął moje wyszukiwanie. [Moja lekcja jest taka: nigdy nie W
mapuj
-4

Jest to, q:co pokazuje historię poleceń.

Przydaje mi się również to, że możesz naciskać w górę częściowo wykonane polecenie, aby przełączać mecze. Np. /abc Naciśnięcie przycisku spowoduje przejście do historii wyszukiwania zaczynającej się od „abc”

Collin Peters
źródło
5
q: pokazuje historię byłych poleceń i jest przydatny, ale nie jest dziennikiem zwykłych poleceń, takich jak „ad2tn (usuń do rejestru a do drugiego n)
John O'M.
Nie zapominaj, że podczas edytowania polecenia możesz wyświetlić bieżącą linię w edytorze historii i użyć vi do edycji linii, naciskającCtrl+f
Sukima