: '"apostrof, po którym następują podwójne cudzysłowy, przekierowuje ostatnią linię zmian
Dhiren Hamal
Odpowiedzi:
195
Z /etc/vim/vimrcpliku Ubuntu ten przykład jest wykomentowany:
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal! g'\"" | endif
endif
Jeśli to nie zadziała, typowym problemem jest brak prawa własności do ~/.viminfopliku. Jeśli tak jest, uruchom:
sudo chown user:group ~/.viminfo
gdzie użytkownik to Twój usernamei groupczęsto jest taki sam jak Twoja nazwa użytkownika.
Autocmd pochodzi prosto z dokumentu vim. Zobacz: help last-position-jump
user55400
19
Jeśli pojedynczy cudzysłów w przedostatnim wierszu zostanie zmieniony na lewy przycisk, przeskoczy do rzeczywistej pozycji kursora, a nie tylko do początku tego wiersza:\| exe "normal! g`\"" | endif
u2622
4
Ta chownczęść rozwiązała problem za mnie. Czapki z głów!
slowpoison
2
Wreszcie ktoś wskazuje, że z jakiegoś powodu moje .viminfo należy do roota! Musi to znaleźć się w pozostałych 100 dokumentach, które przeczytałem.
Jack
2
Chcę tylko dać +1 chown user ~/.viminfododatkowi. Próbuję to rozgryźć już od godziny, a ty właśnie uratowałeś mi dzień.
Christopher Reid
48
Jeśli nie masz nic przeciwko handlowaniu automatyzacją dla prostoty, po prostu naciśnij klawisz '"(apostrof, a następnie podwójne cudzysłowy) przy otwieraniu pliku, a przejdziesz do miejsca, w którym byłeś. Zasadniczo to właśnie robi odpowiedź @ marcog.
Jeśli masz zainstalowany NERDTree, dwukrotne naciśnięcie Co może otworzyć NERDTree w bieżącym buforze. W moim przypadku czasami muszę wcisnąć Co do pięciu razy, ale w końcu otrzymuję efekt opisany przez @MatAff.
ashrasmun
Ctrl-cWystarczy jedno naciśnięcie . Ponadto naciśnięcie Ctrl-cwięcej przenosi mnie dalej z powrotem do pozycji kursora (nawet otwieranie odpowiednich nieotwartych plików). Używam Neovim 0.4.2, ale rozumiem, że ma to vimrównież zastosowanie.
T_T
7
Jeśli masz włączone viminfo, jest to tak proste, jak `0przejście do ostatniej edytowanej pozycji pliku. Zauważysz, że jest to po prostu polecenie „przejdź do oznaczenia”;
Rzeczywiście, możesz później zrobić '3, aby przejść do trzeciej poprzednio edytowanej lokalizacji (być może w innym pliku), a następnie powrócić do ostatniej z `0ponownie
Spójrz na
:marks
aby zobaczyć zapamiętane lokalizacje. Zauważ również, że viminfo przechowuje wszelkiego rodzaju inne rzeczy (takie jak zawartość rejestrów, znaki na plik, historia poleceń i wyszukiwania). Większość ludzi ma to włączone z oczywistych powodów
`0 nie działa dla mnie na vimie w wersji 7.4.1689 na mac. Ale „0 załatwia sprawę”. Czy to pomyłka w odpowiedzi?
alamoot
@alamoot no nie, patrz vimdoc motion.txt - Sprawdź, co znak twój `klucz faktycznie generuje, czy:verbose map `
sehe
masz rację. Według vimdoc oba mają rację!
alamoot
6
Istnieje wtyczka o nazwie vim-lastplace (jestem autorem), która otworzy twoje pliki tam, gdzie przerwałeś. Poprawia powyższe sugestie poprzez ignorowanie komunikatów o zatwierdzeniach, ponieważ zazwyczaj edytujesz nową wiadomość i chcesz rozpocząć od góry pliku wiadomości o zmianach.
wszystko, co możesz zrobić bez wtyczek, jest najlepsze. celuj w .vimrc: im mniejszy kod, tym lżejszy i szybszy
nilon
1
Czasami ~/.viminfostaje się tylko do odczytu lub użytkownik nie ma dostępu do pliku. Może to być również powód, dla którego vim nie przechowuje pozycji kursora po zamknięciu pliku.
Odpowiedzi:
Z
/etc/vim/vimrc
pliku Ubuntu ten przykład jest wykomentowany:Jeśli to nie zadziała, typowym problemem jest brak prawa własności do
~/.viminfo
pliku. Jeśli tak jest, uruchom:gdzie użytkownik to Twój
username
igroup
często jest taki sam jak Twoja nazwa użytkownika.źródło
\| exe "normal! g`\"" | endif
chown
część rozwiązała problem za mnie. Czapki z głów!chown user ~/.viminfo
dodatkowi. Próbuję to rozgryźć już od godziny, a ty właśnie uratowałeś mi dzień.Jeśli nie masz nic przeciwko handlowaniu automatyzacją dla prostoty, po prostu naciśnij klawisz '"(apostrof, a następnie podwójne cudzysłowy) przy otwieraniu pliku, a przejdziesz do miejsca, w którym byłeś. Zasadniczo to właśnie robi odpowiedź @ marcog.
źródło
Możesz to umieścić w swoim .vimrc :
widoki zostaną umieszczone w $ HOME / .vim / view. Prawdopodobnie musisz utworzyć te katalogi.
źródło
Możesz uruchomić vima bez określania nazwy pliku za pomocą
Następnie naciśnij dwukrotnie CTRL + O, aby przejść do ostatniej lokalizacji w dowolnym pliku, nad którym pracowałeś.
źródło
Ctrl-c
Wystarczy jedno naciśnięcie . Ponadto naciśnięcieCtrl-c
więcej przenosi mnie dalej z powrotem do pozycji kursora (nawet otwieranie odpowiednich nieotwartych plików). Używam Neovim 0.4.2, ale rozumiem, że ma tovim
również zastosowanie.Jeśli masz włączone viminfo, jest to tak proste, jak
`0
przejście do ostatniej edytowanej pozycji pliku. Zauważysz, że jest to po prostu polecenie „przejdź do oznaczenia”;Rzeczywiście, możesz później zrobić '3, aby przejść do trzeciej poprzednio edytowanej lokalizacji (być może w innym pliku), a następnie powrócić do ostatniej z
`0
ponownieSpójrz na
aby zobaczyć zapamiętane lokalizacje. Zauważ również, że viminfo przechowuje wszelkiego rodzaju inne rzeczy (takie jak zawartość rejestrów, znaki na plik, historia poleceń i wyszukiwania). Większość ludzi ma to włączone z oczywistych powodów
źródło
`
klucz faktycznie generuje, czy:verbose map `
Istnieje wtyczka o nazwie vim-lastplace (jestem autorem), która otworzy twoje pliki tam, gdzie przerwałeś. Poprawia powyższe sugestie poprzez ignorowanie komunikatów o zatwierdzeniach, ponieważ zazwyczaj edytujesz nową wiadomość i chcesz rozpocząć od góry pliku wiadomości o zmianach.
źródło
Czasami
~/.viminfo
staje się tylko do odczytu lub użytkownik nie ma dostępu do pliku. Może to być również powód, dla którego vim nie przechowuje pozycji kursora po zamknięciu pliku.źródło