По мере того, как я плотнее программирую на нескольких языках, всё больше становится необходимо задавать под разные типы файлов совершенно разные настройки. Например, сворачивание текста (folding) в исходниках для Free Pascal я оформляю конструкцией REGION (для совместимости с IDE Delphi), а в DEmbro обычным вимовским образом.
Штатный вариант это сделать: поправить файлы filetype-настроек (синтаксиса, компилятора или другие подобные) — но почему-то не хочется в них разбираться, хочется всё просто описать в «.vimrc».
А в «.vimrc» это сделать так просто нельзя: опция filetype будет вычислена уже после выполнения «.vimrc», т.е. в «.vimrc» будет не доступна. А нам нужно внутри «.vimrc» сделать в случае одного filetype одни настройки, а в случае другого filetype — другие.
Один из трюков заключается в следующем: описываем настройки в виде функции:
function DEmbroMarker()
set fdm=marker
set commentstring=//%s
set foldmarker={{{,}}}
endfunction
А потом, в самом конце, прописываем условное действие при запуске всех файлов:
au BufRead,BufNewFile * if &ft == 'dembro' | call DEmbroMarker() | endif
Аналогично для другого типа файла (в моём случае, для pascal'я).
Комментариев нет:
Отправить комментарий