Często edytuję plik - myślę, że moja praca jest skończona - następnie zamykam plik i przechodzę do następnej rzeczy. Ale potem zdaję sobie sprawę, że muszę wrócić do tego kodu i nieco go ulepszyć.
Jeśli ponownie otworzę plik, mogę użyć .
znacznika i przejść do pozycji ostatniej edycji za pomocą '.
.
Teraz próbuję znaleźć sposób użycia znaków vima do przeskakiwania do lokalizacji w plikach, które ostatnio odwiedziłem, ale nie zmieniłem.
Wiem, że mogę ustawić znak ręcznie, ale przez większość czasu nie oczekuję, że wrócę, więc nie ustawiam znaku i muszę użyć znaku, który vim generuje automatycznie. Znak Wygląda na to może być drogą do osiągnięcia tego celu, z . "
:h motion
"
Do pozycji kursora przy ostatnim wyjściu z bieżącego bufora. Domyślnie pierwszy znak pierwszego wiersza. Zobacz | skok z ostatniej pozycji | jak używać tego dla każdego otwartego pliku. Zapamiętana jest tylko jedna pozycja na bufor, a nie jedna dla każdego okna. Dopóki bufor jest widoczny w oknie, pozycja nie zostanie zmieniona. {nie w Vi}.
Jeśli jednak ja
- zamknij wszystkie okna pokazujące bufor (ale bufor jest nadal obecny na liście buforów). lub:
- zabij wszystkie instancje bufora
znak nie wydaje się aktualizować, jak mogę użyć znaku, aby przejść do położenia ostatniej pozycji kursora w buforze / pliku?
źródło
Ctrl+o
iCtrl+i
...:h jump-motions
aby uzyskać więcej informacjiviminfo
"
znaku po otwarciu pliku. Naprawdę chciałem tylko ręcznie przeskoczyć do ostatniej pozycji kursora. Poza tym po prostu nie mogłem zrozumieć, kiedy"
znak zostanie ustawiony i zaktualizowany, więc dla mnie"
znak jest bezużyteczny.Odpowiedzi:
Oto klasyczne rozwiązanie: użyj
przejść do ostatniego pliku HTML i tak dalej…
źródło
WinLeave
ponieważ zauważyłem,BufLeave
że nie wydaje się strzelać po zamknięciu podziału, a bufor jest nadal otwarty gdzie indziej. Wiem, że to trochę skrajna sprawa, aleWinLeave
wydaje się, że działa w szerszym zakresie sytuacji typu „zamykanie plików”, ale wciążNapisałem to oświadczenie vimscript, które wydaje się działać
Wyjaśnienie
BufLeave
automatyczne polecenie: wydaje się to wyzwalać, gdy tybd
:normal
- domyślnie wydaje się, żecommand
część autocmd jest poleceniem ex. Aby więc powiedzieć vimowi, aby uruchomił polecenie trybu normalnego, musisz dodać:normal
ml
- ustaw znakl
(mnemoniczny: ostatni )Stosowanie
aby przywołać pozycję kursora od ostatniego pobytu w buforze, po prostu naciśnij
lub
źródło
Jeśli chcesz, aby kursor przywrócił ostatnią pozycję znaną z viminfo , możesz użyć
Odpowiedź romainla była dla mnie szczególnie użyteczna i często z niej korzystam (ponieważ jestem web dev):
Ostatnią potencjalnie przydatną rzeczą jest opcja
:help 'nostartofline
:źródło