Несколько foldmethods в энергии

Я использую складную опцию энергии довольно много и обычно устанавливал foldmethod на синтаксис. Недавно я обнаружил, что возможно добавить пользовательские сгибы, такие, что я могу вставить целые блоки /*{{{*/ и /*}}}*/ который очень полезен для того, чтобы собрать в группу большие разделы исходного файла. Однако для использования той функции я должен установить foldmethod на маркер, и я освобождаю сворачивание синтаксиса.

Действительно ли возможно иметь два активных foldmethods одновременно в энергии? set foldmethod=syntax,marker не работает.

9
задан 26.06.2012, 23:56

1 ответ

Нет, строго говоря не возможно иметь несколько foldmethods активный в Vim одновременно.

Можно эмулировать основанное на маркере сворачивание, если Вы готовы изучить, как записать правила подсветки синтаксиса и взломать выделяющийся файл для языка, к которому Вы хотите добавить эмуляцию сворачивания маркера. Выполнение так имеет несколько недостатков:

  1. Команды для создавания/удаления сгиба ("ZF", "zd" и так далее), которые работают с маркером и ручными методами сворачивания, не будут работать, когда foldmethod будет установлен на "синтаксис".

  2. Эмуляция маркеров, которые "вызывают" уровень сгиба (например,".{{{1"/"}}}1") в противоположность увеличению/уменьшению уровня сгиба одним (например,".{{{"/"}}}"), проблематично; или необходимо проигнорировать числа уровня сгиба полностью или взять шанс, что Вы вмешаетесь в — и возможно повредитесь — остальная часть основанных на синтаксисе складных метров.

Я предлагаю, чтобы, когда Вы находите, Вам было нужно основанное на маркере сворачивание, Вы используете тот метод полностью. Могут потребоваться некоторое дополнительное время и усилие, но если Вам действительно нужна гибкость, это может стоить того, особенно рассматривая трудности попытки объединить два.

4
ответ дан 07.12.2019, 13:33

Теги

Похожие вопросы