Я использую складную опцию энергии довольно много и обычно устанавливал foldmethod на синтаксис. Недавно я обнаружил, что возможно добавить пользовательские сгибы, такие, что я могу вставить целые блоки /*{{{*/
и /*}}}*/
который очень полезен для того, чтобы собрать в группу большие разделы исходного файла. Однако для использования той функции я должен установить foldmethod на маркер, и я освобождаю сворачивание синтаксиса.
Действительно ли возможно иметь два активных foldmethods одновременно в энергии? set foldmethod=syntax,marker
не работает.
Нет, строго говоря не возможно иметь несколько foldmethods активный в Vim одновременно.
Можно эмулировать основанное на маркере сворачивание, если Вы готовы изучить, как записать правила подсветки синтаксиса и взломать выделяющийся файл для языка, к которому Вы хотите добавить эмуляцию сворачивания маркера. Выполнение так имеет несколько недостатков:
Команды для создавания/удаления сгиба ("ZF", "zd" и так далее), которые работают с маркером и ручными методами сворачивания, не будут работать, когда foldmethod будет установлен на "синтаксис".
Эмуляция маркеров, которые "вызывают" уровень сгиба (например,".{{{1
"/"}}}1
") в противоположность увеличению/уменьшению уровня сгиба одним (например,".{{{
"/"}}}
"), проблематично; или необходимо проигнорировать числа уровня сгиба полностью или взять шанс, что Вы вмешаетесь в — и возможно повредитесь — остальная часть основанных на синтаксисе складных метров.
Я предлагаю, чтобы, когда Вы находите, Вам было нужно основанное на маркере сворачивание, Вы используете тот метод полностью. Могут потребоваться некоторое дополнительное время и усилие, но если Вам действительно нужна гибкость, это может стоить того, особенно рассматривая трудности попытки объединить два.