2016-08-25 5 views
2

Можно ли использовать функцию folding to fold C++ в vim?Fold Функции C++ (и только функции) в vim

Я бы хотел сбросить только функции и методы класса. Я не хочу сбрасывать классы, пространства имен, «если» и «для» операторов и т. Д., Как это делает стандартный «set foldmethod = syntax».

Возможно ли это?

ответ

2

Встроенный синтаксис Vim для сложения C/C++ { ... } блоки, независимо от того, какой элемент синтаксиса они представляют. Единственная конфигурация, которая встроена, - c_no_comment_fold и c_no_if0_fold. Для чего потребуется расширение синтаксиса. Поскольку синтаксис C/C++ довольно гибкий, распознавание пространств имен и классов по сравнению с другими материалами может быть сложным, если вы не принимаете определенные ограничения (например, что определения пространства имен не отступаются, классы с отступом один раз, функции отступают дважды).

У Vim есть альтернативные методы сложения (cp. :help 'foldmethod'), но я не знаю альтернативной реализации fold для C/C++, поэтому вам, возможно, придется написать свой собственный.

Другим подходом было бы принять дополнительную фальцовку и просто настроить то, что сбрасывается по умолчанию, например. через :setlocal foldlevel=1.

 Смежные вопросы

  • Нет связанных вопросов^_^