Czasami używam znaków poruszać się łatwo za pomocą różnych plików za pomocą mA
, mB
... i 'A
, 'B
...
I czasami (częściej niż chciałbym to przyznać) z powodu nieuwagi lub jakiegokolwiek innego powodu używam m[LETTER]
z już istniejącym znakiem, który usuwa swoją poprzednią wartość, gdy nie chcę. Przez większość czasu, gdy to robię, nie otwieram pliku pierwotnie wskazanego znakiem.
W takim przypadku, gdy natychmiast uświadomiłem sobie, że popełniłem błąd, czy możliwe jest uzyskanie poprzedniej wartości mojego znaku innego niż zapamiętanie, gdzie był wskazywany, nawigacja do tej lokalizacji i ustawienie jej ponownie?
W dokumencie nie znalazłem takiego polecenia, więc jeśli nie istnieje, czy istnieje sprytne obejście, którego niektórzy z was używają w tej sytuacji?
ctrl-o
,ctrl-i
i:jumps
) ze swojej własnej pamięci osobistej :)Odpowiedzi:
Oto podstawowy VimScript, który z grubsza robi to, co chcesz.
Zastępujemy mapowania
ma
przelotowe,mz
aby zapisać bieżącą wartośćg:previous_marks
przed wywołaniem oryginału wm
celu ustawienia znaku. Mamy również zdefiniować<Leader>ma
poprzez<Leader>mz
pokazanie historii dla wspomnianego znaku.Prawdopodobnie zechcesz przechowywać informacje w
g:previous_marks
bardziej uporządkowany sposób i dodać możliwość szybkiego przywrócenia znaku (zamiast tylko patrzeć na lokalizacje), ale ten przykład pokazuje, jak można to zrobić, kolejne poprawki są pozostawione jako ćwiczenie do czytelnika ;-)źródło
Niezupełnie to, czego chcesz, ale być może bardziej przydatne: wtyczka podpisu . Pokazuje bieżące znaki jako znaki na marginesie rynny i ma proste skróty do ich edycji. Może także umieścić listę znaków na liście lokalizacji w celu szybkiego dostępu.
źródło
Ponieważ faktycznym problemem wydaje się być nawigacja między wieloma plikami / pozycjami, sugerowałbym to proste rozwiązanie oparte na wtyczce Unite :
To polecenie (które można zamapować na coś takiego jak
<leader>j
na przykład) wyświetla listę przeskoków z podglądem: za każdym razem, gdy poruszasz się po liście za pomocąj
/k
, wyświetlanych jest kilka wierszy wokół pozycji kursora w tym pliku.Alternatywny:
Domyślne znaki są tak łatwe do zastąpienia: być może nazwane zakładki lepiej pasują do twojego przypadku użycia, np. Z wtyczką simple_bookmarks .
źródło