Сгибание кода не сохраняется в моем vimrc
Я добавил следующий код в мой .vimrc:
" save and restore folds when a file is closed and re-opened
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
HTML и CSS-документы сохраняют и восстанавливают свои складки, но сгибание кода не сохраняется в моем .vimrc
Любые предложения?
EDIT:
Следующий код решает проблему:
au BufWinLeave ?* mkview
au BufWinEnter ?* silent loadview
но если я его напишу, файлы MRU исчезнут из моего списка (и мне нужно открыть MRU дважды, чтобы увидеть список последних файлов, почему?)
Ответы
Ответ 1
Проблема в том, что ваши исходные строки autocmd
установлены в соответствии с шаблоном *.*
, то есть любым именем файла, которое содержит некоторые символы, за которым следует точка, а затем еще несколько символов.
Таким образом, файл test.html
или anothertest.css
будет сопоставлен, и ваша команда будет запущена, но .vimrc
, которая ничего не имеет до точки, не будет сопоставлена.
Решение состоит в том, чтобы настроить autocmd, который будет соответствовать .vimrc
. Ваша догадка ?*
соответствует этому (потому что он ищет любого персонажа, за которым следует любое количество других символов), но вы говорите, что это каким-то образом влияет на MRU. Я не знаю, какой плагин вы используете для своих MRU, но я предполагаю, что он открывает список MRU во временном окне с именем, которое соответствует шаблону? *, И последующая загрузка представления каким-то образом возиться с вашими MRU.
Следовательно, исправление заключается в использовании чего-то более конкретного для соответствия .vimrc:
autocmd BufWinLeave .vimrc mkview
autocmd BufWinEnter .vimrc silent loadview
Возможно, что это тоже сработает и будет более общим:
autocmd BufWinLeave .* mkview
autocmd BufWinEnter .* silent loadview
Ответ 2
Per Jays комментирует это самое элегантное решение, у меня есть много плагинов и запускайте его на нескольких операционных системах и только что протестировали его.
autocmd BufWrite * mkview
autocmd BufRead * silent loadview
Он не прерывает MRU и заставляет вас удвоить запрос MRU
Это не ошибка, когда вы: новый в пустой буфер
Он также не требует, чтобы вы создали FileType patern для каждого типа файла, который вы, возможно, используете.
ПРИМЕЧАНИЕ: использование "loadview" на "BufNewFile" похоже на то, что смущает MRU, а бессмысленная попытка визуализации сгибов в пустом буфере я бы подумал
Ответ 3
У меня была аналогичная проблема. возможно, вам нужно создать каталог, в котором хранятся данные.
mkdir -p ~/.vim/view
chmod 0750 ~/.vim ~/.vim/view
Ответ 4
Добавьте это в начало vimrc, чтобы убедиться, что viewdir присутствует.
let &viewdir=expand("$HOME") . "/.bk/.vim/viewdir"
if !isdirectory(expand(&viewdir))|call mkdir(expand(&viewdir), "p", 451)|endif
Затем это в разделе autocmds:
autocmd BufWrite * mkview
autocmd BufNewFile,BufRead * silent loadview
Ответ 5
С Neovim в Arch Linux я получал сообщения об ошибках, пока не добавил! после молчания (молчать!). Вот моя запись ~/.vimrc,
autocmd BufWrite * mkview
autocmd BufRead * silent! loadview
Подробности здесь:
https://github.com/neovim/neovim/issues/7442#issuecomment-339752054
Ответ 6
Детали просмотра будут сохранены в файле вида в каталоге vimfiles\view
. Для каждого файла, который вы редактируете, создается отдельный файл вида.