Как мне заставить VIM запоминать строку, на которой я был, при повторном открытии файла? [дубликат]

На этот вопрос уже есть ответ:

Я только что перешел с RH / Fedora на Ubuntu 12.04 . В RedHat, когда я повторно открываю файл с помощью VIM, он открывается с курсором на строке, в которой он находился, когда я закрыл файл. Однако сейчас я вижу, что когда я снова открываю файл, курсор всегда находится наверху, каждый раз. Поскольку некоторые файлы, с которыми я работаю, имеют длину 20 тыс. Строк, это быстро устаревает.

Я установил полную версию VIM через apt-get на моем новом Ubuntu, чтобы я мог использовать клавиши со стрелками в режиме вставки. Распечатанная версия - VIM - Vi IMproved 7.3.

Любая помощь будет принята с благодарностью.

19
задан 17 October 2012 в 17:58

2 ответа

Добавьте следующие строки в ваш ~/.vimrc или глобальный /etc/vim/vimrc

if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
endif

. Это позволит перейти к последней известной позиции курсора, если:

  • позиция недействительна
  • позиция находится внутри обработчика событий
0
ответ дан 17 October 2012 в 17:58

Это конфигурация по умолчанию в / etc / vim / vimrc, как уже упоминалось vim не запоминает последнюю позицию

Уже содержит необходимую функцию. Просто нужно раскомментировать:

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Это автоматическая команда, которая ищет номера строк оцененных выражений. Команда g переходит на последнюю позицию, если она была записана. Использование команд help для BufReadPost, line () и g` объяснит детали того, как это работает.

0
ответ дан 17 October 2012 в 17:58

Другие вопросы по тегам:

Похожие вопросы: