Сохранить последнюю позицию редактирования в VIM - PullRequest
25 голосов
/ 25 октября 2011

Когда я выхожу из VIM и снова открываю тот же файл, я позиционируюсь в начале файла.Как я могу сохранить последнюю позицию курсора?

Ответы [ 6 ]

20 голосов
/ 25 октября 2011

«Из коробки» .vimrc позволяет это с помощью оператора:

source $VIMRUNTIME/vimrc_example.vim

Возможно, вам просто нужно восстановить этот оператор в вашем .vimrc.В любом случае см. vimrc_example.vim, а также см. Функцию line() в руководстве по Vim для обсуждения того, как она работает.

18 голосов
/ 22 января 2013

взято с http://amix.dk/vim/vimrc.html

" Return to last edit position when opening files (You want this!)
autocmd BufReadPost *
     \ if line("'\"") > 0 && line("'\"") <= line("$") |
     \   exe "normal! g`\"" |
     \ endif
9 голосов
/ 02 февраля 2015

Последняя позиция редактирования автоматически сохраняется Vim и доступна в виде «специальной» метки перехода .. Другие специальные отметки включают " (позиция, с которой вы сохранили) и ' (позиция, с которой вы прыгнули с ).

Вы можете перейти к отметке, набрав '<mark>, поэтому '. перенесет вас к месту последнего редактирования, '' вернет вас туда, где вы были, и '" доставит вас к положение, в котором вы сохранили файл.

Это и многое другое о знаках Vim на Vim.Wikia .

5 голосов
/ 12 января 2015

Существует плагин (я - автор) под названием vim-lastplace , который интеллектуально вернет вас к последнему внесенному вами редактированию.

Он также имеет параметр конфигурации, который можно игнорироватьопределенные типы файлов.По умолчанию он игнорирует сообщения коммитов для git, svn и mercurial.Для этих типов файлов курсор будет начинаться с первой строки.Приведенные выше фрагменты кода перейдут в середину файла сообщения о коммите (на котором вы остановились в предыдущем коммите), даже если это, вероятно, не то, что вам нужно.vim-lastplace решает эту проблему.

0 голосов
/ 25 января 2019

Убедитесь, что ~/.viminfo доступен для чтения и записи пользователю, запустившему vim. Каким-то образом я получил копию, доступную только для root, в моем стандартном домашнем каталоге пользователя, что означало, что последняя позиция курсора не может быть сохранена.

0 голосов
/ 25 октября 2011

Вы можете попробовать команду :mks (создать сеанс).Он хранит файл сценария, который при запуске через vim восстанавливает текущий сеанс редактирования, включая все открытые файлы и позицию курсора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...