Я хочу настроить vim для открытия файла в том же месте, где я остановился.
Как в vim открыть файл с тем же номером строки, с которым я его закрыл в прошлый раз?
Ответы (7)
В файле Ubuntu /etc/vim/vimrc
этот пример закомментирован:
" 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
Если это не работает, распространенная проблема заключается в том, что вы не являетесь владельцем файла ~/.viminfo
. Если это так, то запустите:
sudo chown user:group ~/.viminfo
где пользователь — это ваш username
, а group
часто совпадает с вашим именем пользователя.
\| exe "normal! g`\"" | endif
- person u2622; 03.06.2013
chown
устранила проблему для меня. Снимаю шляпу!
- person slowpoison; 27.08.2013
chown user ~/.viminfo
дополнению. Я пытался понять это уже час, и вы только что спасли мой день.
- person Christopher Reid; 26.01.2016
chown
у меня не сработало, поэтому я просто раскомментировал строки в /etc/vim/vimrc
- person Matt; 22.06.2017
/etc/vim/vimrc
или /etc/vimrc
(в моем случае Arch Linux), вы также можете добавить это в свой ~/.vimrc
и будет работать таким же образом (я имею в виду, что я предпочитаю делать эту конфигурацию на стороне пользователя, а не в системе). широкий).
- person jfernandz; 01.11.2019
let skip_defaults_vim=1
и set viminfo="
из ~/.vimrc
.
- person Herpes Free Engineer; 11.09.2020
Если вы не возражаете против автоматизации торговли для простоты, просто нажмите клавишу '" (апостроф, за которым следуют двойные кавычки) при открытии файла, и вы перейдете туда, где вы были Это, по сути, то, что делает ответ @marcog.
:h views-sessions
Вы можете поместить это в свой .vimrc :
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
представления будут помещены в .vim/view. Вероятно, вам нужно создать эти каталоги.
Вы можете запустить vim без указания имени файла, используя
vim
Затем дважды нажмите CTRL+O, чтобы перейти к последнему месту в любом файле, над которым вы работали.
Ctrl-c
. Кроме того, нажатие Ctrl-c
больше возвращает меня назад в историю положения курсора (даже при открытии соответствующих неоткрытых файлов). Я использую Neovim 0.4.2, но я так понимаю, что это относится и к vim
.
- person T_T; 02.10.2019
Существует плагин под названием vim-lastplace (я автор), который откроет ваши файлы там, где вы остановился. Это улучшает приведенные выше предложения, игнорируя сообщения фиксации, потому что вы обычно редактируете новое сообщение и хотите начать с верхней части файла сообщения фиксации.
Если у вас включена функция viminfo, перейти к последней редактируемой позиции в файле можно с помощью `0
. Вы заметите, что это всего лишь команда «перейти к отметке»;
Действительно, вы можете позже сделать '3, чтобы перейти к третьему предыдущему отредактированному месту (возможно, в другом файле), а затем снова вернуться к последнему с помощью `0
Посмотри на
:marks
чтобы увидеть запомненные места. Обратите также внимание, что viminfo хранит множество других вещей (например, содержимое регистров, метки для каждого файла, историю команд и поиска). У большинства людей это включено по понятным причинам.
`
, или выполните :verbose map `
- person sehe; 17.10.2017
Иногда ~/.viminfo
становится доступным только для чтения или ваш пользователь не имеет доступа к файлу. Это также может быть причиной того, что vim не сохраняет позицию курсора, когда вы закрываете файл.