Вы были очень близки к тому, чтобы это работало. Есть несколько фанковых факторов, которые мы должны учитывать.
- установка
foldmethod
в syntax
(кстати это не документировано на узнать Vimscript Hardway..so :help foldmethod
был ключом, чтобы понять это)
СИНТАКСИСА складного синтаксис
Сложность определяется элементами синтаксиса, которые имеют аргумент «fold». |: syn-fold |
Уровень сгиба определяется вложенными складками. Вложенность складок ограничена «foldnestmax».
Соблюдайте правильную синтаксическую синхронизацию. Если это не сделано вправо, складки могут отличаться от отображаемой подсветки. Это особенно актуально при использовании шаблонов, которые соответствуют более одной строке. В случае сомнений, попробуйте использовать перебор синхронизацию:
:syn sync fromstart
Главное внимания является sync fromstart
это полезный помощник, если у вас есть регулярное выражение, которое будет соответствовать всему файлу и только хотите, чтобы поймать заголовок. В вашем случае вы должны быть в состоянии игнорировать это, а только что-то, о чем нужно знать.
- сверху вниз регулярное выражение сканирования
Поскольку блок импорта достаточно предсказуем, мы можем упростить start
и end
выглядеть примерно так:
syn region foldImports start="import" end=/import.*\n^$/ fold keepend
Поскольку region
просто ищет некоторые строки, чтобы начать сопоставление, мы можем просто использовать "import"
(или /import/
), а затем для конечного значения мы хотим использовать немного больше автомобилей продуманное заявление. Главное то, что мы хотим иметь конца быть последней линии импорта с пустой строкой после него (/import.*\n^$/
)
Надеется, что делает трюк для вас (я не работаю с Скале, так что вы, возможно, придешься отрегулируйте регулярное выражение по мере необходимости)
Стоит отметить, что если вы отключите опцию 'syntax on' в вашей'.vimrc' приведенный выше код будет работать. Однако, если он включен, он не будет складываться правильно. – Petesta
Вышеуказанное утверждение неверно. Проблема заключается в плагине под названием [vim-autoclose] (https://github.com/Townk/vim-autoclose). Если вы удалите его из среды выполнения Vim, складки работают так, как ожидалось. – Petesta