Подтвердить что ты не робот

Сохранить последнюю позицию редактирования в VIM

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

4b9b3361

Ответ 1

"Из коробки" .vimrc разрешает это с помощью инструкции:

source $VIMRUNTIME/vimrc_example.vim

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

Ответ 2

Взято из 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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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