Если единственным типом фальцовки, который вам нужен, являются секции #ifdef
, самый простой способ - создать файл ~/.vim/after/ftplugin/c.vim
(вам также может понадобиться сделать это в cpp.vim
, я не уверен) сследующий контент:
set foldmarker=#ifdef,#endif
set foldmethod=marker
Если вы действительно хотите поместить его в .vimrc
вместо использования структуры ~/.vim/after/
, вы можете сделать что-то вроде этого:
autocmd FileType *.[ch]{,pp} call FoldPreprocessor()
function! FoldPreprocessor()
set foldmarker=#ifdef,#endif
set foldmethod=marker
endfunction
ВыВозможно, вы захотите использовать:
set foldmarker=#if,#endif
, так как это поймает #if defined(...)
, #ifdef
, #ifndef
, #if 0
и т. д., а также #ifdef
.
Doingэто со сложением синтаксиса является более сложной задачей, так как вам придется изменить спецификацию синтаксиса, поскольку она не поддерживает это как стандарт.