ноября 23, 2010

Разные файлы — разные настройки

По мере того, как я плотнее программирую на нескольких языках, всё больше становится необходимо задавать под разные типы файлов совершенно разные настройки. Например, сворачивание текста (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'я).


Комментариев нет:

Отправить комментарий

Постоянные читатели

Обо мне

Моя фотография
Мой e-mail: vitek_03(at)mail(dot)ru