vim не помнит последнюю позицию

Тип обычно, но положите a \ после слова и перед пространством.

i.e. [F1]

1
задан 14 May 2015 в 21:35

5 ответов

У меня была такая же проблема, и оказалось, что файл .viminfo в моем домашнем каталоге имел неправильное право собственности. Он принадлежал root: root.

Как только я исправил право собственности на файл, изменив его на себя, вспомнив, что позиция файла снова начала работать для меня

53
ответ дан 25 May 2018 в 03:53
  • 1
    В моем случае это работало. У меня была такая же проблема. Я изменил право собственности на .viminfo (присутствует в домашнем каталоге), который исправляет проблемы vim. Но почему это было создано с помощью root: root? – Brijesh Valera 19 May 2015 в 10:22
  • 2
    @BrijeshValera, вероятно, потому, что вы начали vim как root, когда файл еще не существовал. – Ruslan 10 July 2015 в 15:08
  • 3
    @Ruslan Но не должен ли файл быть создан в домашнем каталоге пользователя root? – dotslash 1 October 2015 в 21:10
  • 4
    @dotslash, это сложно с sudo. Он не меняет среду (по крайней мере в основном): попробуйте запустить sudo bash -c 'echo $HOME', вы получите свой домашний каталог вместо корневого. – Ruslan 1 October 2015 в 21:46

Я думаю, что эта публикация в вики может предоставить решение. Я не верю, что восстановление позиции - это ожидаемое поведение. http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session

5
ответ дан 25 May 2018 в 03:53

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

1
ответ дан 25 May 2018 в 03:53
  • 1
    почему downvote? vim-lastplace делает именно то, что задает OP, и делает это даже лучше, чем принятый ответ (в котором есть множество ошибок). – Greg Dietsche 15 May 2017 в 18:03

В моем случае vi была символической ссылкой: /usr/bin/vi -> /etc/alternatives/vi -> /usr/bin/vim.tiny. У последнего нет реальных особенностей vim. Установка пакета «vim» (с использованием synaptic или apt-get) сделала эту символическую ссылку на /usr/bin/vim.basic, и это устранило проблему.

0
ответ дан 25 May 2018 в 03:53

Ошибка в решении Lunar Mushrooms. Здесь исправление:

if has("autocmd")
  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

endif
-1
ответ дан 25 May 2018 в 03:53
  • 1
    Почему вы считаете, что ваше решение будет правильным? Это похоже на много, но на обратную косую черту в начале линии. Если таковые имеются, не должны ли они быть в конце строки, указывающей, что команда продолжается на следующей строке ...? Кроме того, принятый ответ просто говорит о раскомментировании раздела в глобальном файле конфигурации, который устанавливается вместе с vim. По-видимому, это решило проблему. Где ошибка? – Nephente 29 September 2015 в 12:28
  • 2
    Потому что, если я копирую / вставляю первое решение, у меня есть ошибка. И я разместил содержимое моего /usr/share/vim/vim74/vimrc_example.vim (которое включало обратную косую черту в начале). – Arnaud 6 October 2015 в 09:01
  • 3
    @Amaud область линий уже предоставлена ​​в файле, но прокомментирована. Вам просто нужно удалить символ " в начале строк, чтобы расколоть их. Нет необходимости «копировать / вставлять первое решение». – ADTC 11 December 2016 в 11:59

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

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