Я слышал, что Vim имеет встроенную поддержку сворачивания для файлов, написанных на разных языках программирования. Особенно меня интересуют файлы cpp, h, hpp. Я хотел бы добиться такого поведения Vim, когда все определения функций по умолчанию свернуты в каждом вновь открытом исходном файле. Я не хочу создавать каждый фолд вручную с zF
,
Я добавил следующие строки в конец ~/.vimrc
файл (который был унаследован от распределение spf13-vim):
set foldenable
autocmd FileType c,cpp,h,hpp setlocal foldmethod=syntax
К сожалению, это не привело к желаемому поведению. Все файлы выглядят одинаково, и моя попытка скрыть функцию с zc
комбо приводит к ошибке:
E490: складка не найдена
Я был бы рад, если бы кто-то мог объяснить, как включить фолдинг по умолчанию в Vim 7.4.
UPD: Приведенный выше код работает хорошо, но есть проблема с недавно открытыми файлами. Допустим, мы работаем над проектом под названием «sc-client-server», и мы только что добавили эти две строки в ~ / .vimrc и теперь готовы вернуться к последнему отредактированному файлу:
$ vim ~/.vimrc //Modify config
$ reboot
$ vim ~/progs/sc-client-server/src/st.cpp //No fold found. BUT:
$ cp ~/progs/sc-client-server/src/st.cpp /tmp
$ vim /tmp/st.cpp //Auto fold works fine. OR:
$ cd ~/progs/sc-client-server/src/ && mv src source
$ vim ~/progs/sc-client-server/source/st.cpp //Auto fold works fine.
Есть ли какой-либо вид кеша или памяти внутри Vim, который мешает желаемому представлению файла?
Ответ
Удалить все (или специально для вас) файлы из ~/.vimviews
папка.
Для не по теме избирателей https://meta.stackexchange.com/questions/25925/vim-questions-do-they-belong-to-stack-overflow-or-super-user/25930#25930?newreg=00a4918bba924cfa8b1d6a3e82061672
Задача ещё не решена.
Других решений пока нет …