Programując w vimie Często szukam czegoś, szarpię go, a następnie wracam do miejsca, w którym byłem, wstawiam go, modyfikuję.
Problem polega na tym, że po przeszukaniu i znalezieniu muszę RĘCZNIE znaleźć drogę powrotną do miejsca, w którym byłem.
Czy istnieje automatyczny sposób powrotu do miejsca, w którym byłem, kiedy rozpocząłem moje ostatnie wyszukiwanie?
Odpowiedzi:
Ctrl+ Ozabiera mnie do poprzedniej lokalizacji. Nie wiem o lokalizacji przed wyszukiwaniem.
Edycja: `.zabierze Cię również do ostatniej wprowadzonej zmiany.
źródło
:70
a następnie:100
naciśnięciectrl+o
raz wróci do pierwotnej lokalizacji, a nie wiersza 70. :(Użyj,
``
aby wskoczyć z powrotem do dokładnej pozycji, w której byłeś przed przeszukaniem /''
skakaniem , lub z powrotem na początek linii, na której byłeś przed przeszukaniem / skakaniem.źródło
n
ponieważ kolejne mecze oznaczają, że nie wrócisz do miejsca, w którym zacząłeś.g;
ig,
, przechodzi do pozycji poprzedniej / następnej zmiany.Zawsze robiłem to, ustanawiając znak.
W trybie poleceń naciśnij m[litera] . Na przykład maustawia znak w bieżącej linii za pomocą a jako identyfikatora znaku.
Aby wrócić do znaku, naciśnij '[litera] . Na przykład 'azabierze Cię z powrotem do znacznika linii ustawionego w kroku 1. Aby wrócić do pozycji kolumny wiersza, w którym zaznaczyłeś linię, użyj `a( zaznacz tyłem [litera] ).
Aby zobaczyć wszystkie ustawione znaki, wpisz
:marks
.Z nieco niepowiązanej notatki, właśnie odkryłem kolejną fajną rzecz dotyczącą znaków.
Powiedzmy, że wykonujesz skok do oznaczenia bmb . Vim automatycznie ustawia znak '(to pojedynczy cytat) na dowolną linię, na której byłeś, zanim skoczyłeś do znaku b .
Oznacza to, że możesz zrobić 'bskok do tego znaku, a następnie zrobić ''(2 pojedyncze cudzysłowy), aby wrócić do miejsca, w którym byłeś wcześniej.
Odkryłem to przypadkowo za pomocą
:marks
polecenia, które pokazuje listę wszystkich znaków.źródło
Naprawdę powinieneś przeczytać
:help jumplist
to wszystko wyjaśnia bardzo dobrze.źródło
CTRL+Oi CTRL+Ido skakania w przód i w tył.
źródło
Najprostszym sposobem jest ustawienie znaku za pomocą
m[letter]
, a następnie powrót do niego za pomocą'[letter]
źródło
Używam tego:
Następnie, jeśli szukam czegoś za pomocą
/
lub?
, mogę szybko wrócić`s
. Możesz zamienić lists
na dowolny, który ci się podoba.źródło
m
jest zdefiniowane jako coś innego niż znak, w przypadku NerdTree jest to menu.