Учитывая следующий код C ++:
//
// Some comments at the begin of the code.
// For instance, license, author name, date.
// Referred as "Comment A"//
namespace one {
namespace two {
// Here you have some code.
// And this comment explain what the code is doing.
void exampleFunction();
}
}
и следующие настройки в моем .vimrc
set foldmethod=syntax
autocmd Syntax c,cpp syntax region cCommentLicense start="^\s*//" end="\n\s*\(\S[^/]\|\_$\)"me=s,re=s,he=s fold
Эти настройки позволяют мне свернуть абзац, где строки начинаются с //
,
когда foldlevel
модифицируется (используя zr
а также zm
), первый комментарий (Комментарий А) автоматически складывается.
Можно ли изменить уровень фолда (например, установить 9)?
Уровень сгиба других комментариев для меня не имеет значения.
При свертывании на основе синтаксиса уровень сгиба определяется структурой синтаксиса. Чтобы получить кратность уровня 9, вам нужно определить 9 вложенных синтаксических областей.
С :set foldmethod=expr
вы имеете более точный контроль над уровнями сгиба и можете явно вернуть 9
, Пока ты только сворачивая комментарии, вы, вероятно, можете написать простое эквивалентное выражение, но если есть и другие свёрнутые конструкции, они тоже быстро станут сложными.