2012-01-19 14 views
37

Czy istnieje polecenie pokazujące, co było ostatnim poleceniem w trybie normalnym?Komenda Vim "pokaż moje ostatnie polecenie"?

Załóżmy, że przypadkowo uderzyłem losowy klucz i uzyskałem nieoczekiwany rezultat. Pewnie mogę to cofnąć, ale czy mogę ujawnić, który klawisz został naciśnięty i jak został zinterpretowany?

+1

Najlepsze, co mogę wymyślić, to: ': echo v: count. v: operator' – sehe

+0

Okres (.) powtarza ostatnie polecenie wprowadzone w trybie normalnym. Zobacz http://vim.runpaint.org/editing/repeating-commands/ –

+1

Tak, ale nie pokazałoby to powtarzania polecenia. – dvs

Odpowiedz

10

Tekst z ostatniego polecenia zapisany jest w rejestrze .. Możesz zobaczyć wszystkie rejestry przez : wyświetl. Niestety nie mówi, co zaczęło normalne polecenie.

Aby zobaczyć polecenia z : (tryb poleceń) można użyć : hist lub q: która jest ograniczona do ostatniego 20 (domyślnie).

Inną możliwością jest zapisanie bufora cofania : wundo undo.bin - ale bufor cofania jest binarny.

Ale żaden z nich nie odpowiada na twoje pytanie. Jestem ciekawy, czy da się to zrobić.

+0

Ten rejestr przechowuje ostatnio wstawiony tekst (po 'I, A, i, a, s, S, c, C') – Benoit

6

Trudno o tym wiedzieć. Można odtwarzać za pomocą zmiennych:

v:operator 
v:count (and v:prevcount) 
v:register 

Nie można jednak w pełni uzyskać ostatniego polecenia trybu normalnego.

Jeśli jednak chcesz systematycznie rejestrować wszystko, co wpisujesz, będąc w Vimie, możesz uruchomić vim -W ~/.vim-last-scriptout (wersja dla systemu Windows: vim -W "%HOMEPATH%\Vim\.last-scriptout) Możesz go aliasować w powłoce na komputerze z systemem UNIX. Każdy pojedynczy klawisz lub klawisz kontrolny zostanie zapisany w tym pliku. Pamiętaj, że jeśli używasz gvim lub vim -g (GUI), możesz encounter this bug.

Jeśli chcesz powtórzyć ten plik, możesz użyć opcji :source! (z wykrzyknikiem) lub opcji -s z wiersza poleceń.

W systemie Windows ustawiłem gvimportable.exe -W gvim_directory\last_scriptout jako domyślny edytor w programie Commander (FreeCommander). W ten sposób zawsze pamiętam, co napisałem, aby coś zrobić i powtórzyć sekwencję poleceń w innym pliku. Oczywiście mam inny skrót do otwierania Vima i odgrywania scenariusza.

Pamiętaj, że plik może być zapisany tylko po wyjściu Vima, więc musisz stracić sesję, aby wiedzieć, co zrobiłeś.

40

Uderz w dwukropek (:), a następnie użyj strzałki w górę, aby rozpocząć przeglądanie poprzednich poleceń. Możesz również użyć strzałek w górę/w dół, aby poruszać się po liście.

+0

Doskonała odpowiedź. To wymaga więcej upvotes! –

+1

To nie zadziałało dla mnie z jakiegoś powodu. Okazało się, że historia została ustawiona na 0. Rozwiązaniem było uruchomienie ': set history = 100', a następnie mogłem wyświetlić strzałkę w górę, aby zobaczyć poprzednie polecenia. – Jim

+0

Od lat próbuję dowiedzieć się, jak wydostać się z tego trybu. Esc nie działa. Wygląda na to, że czasami działa, ale nie zawsze. Zawsze utknąłem w tym trybie. – devios1

25

q: pokaże historię poleceń w Vimie. q/ pokaże historię wyszukiwania

+5

Więc to, dlaczego ta funkcja losowo pojawia się od czasu do czasu. (Jest odwrotnie od ': q'). Nie wiedziałbym, że istnieje, by szukać inaczej. – felwithe

+1

OMG. To mnie prześladuje od tak dawna. Nie mogłem ustalić, jakie było rzeczywiste polecenie (': w ', ': q ', itp.), Więc nie wiedziałem, do czego google. Ha ha. Dziękuję Ci! – rgin

+1

Ja * zawsze * utknę w tym trybie. Jak się z tego wydostać? Esc nie działa i to naprawdę mnie mobilizuje. – devios1