Как установить тип файла vim при редактировании файлов конфигурации nginx

17

Когда я открываю vim для файла вроде /etc/nginx/sites-available/default, подсветка синтаксиса работает нормально. Но тогда, если я создаю свой собственный файл /etc/nginx/sites-available/myapp, vim не выделяет его синтаксис. Я должен делать :setf confкаждый раз.

Что я могу добавить, ~/.vimrcчтобы сказать vim "если вы не знаете, какой синтаксис использовать, просто используйте conf"?

.vimrcШаблон для ВИМ нуб также приветствуется. Я не использую его как IDE, я использую vim в основном только для конфигурационных файлов.

Примечание: я использую Ubuntu 12, если это важно.

HappyDeveloper
источник
Я изменил ваш заголовок, чтобы более точно отразить то, что вы пытаетесь сделать, и повторно задал вопрос здесь, поскольку это может быть полезно в общем случае: serverfault.com/a/390801/2101
MikeyB
@MikeyB Я не знал и не заботился о «типах файлов», насколько я знал, что vim мог делать подсветку синтаксиса, просто просматривая код и угадывая язык. И основной частью проблемы было то, что я хотел, чтобы это было «по умолчанию». Я уже знал, как «установить язык / тип файла при редактировании». Кроме того, будь то для Nginx или что-то еще, не имеет значения. Делай, как хочешь, я никогда не понимал, почему люди из-за проблем с сервером решают закрыть или отредактировать вопросы (возможно, для SEO?). Если грамматически неверно, оригинальное название отражает мою проблему.
HappyDeveloper
3
возможно, интересно: vim.org/scripts/script.php?script_id=1886 (я использую его, и это довольно мило, добавьте # vim:syn=nginxвнизу конфиги)
SingleNegationElimination
@HappyDeveloper: причина, по которой я отредактировал это, в том, что ваш принятый ответ указывает: «О, я действительно пытался это сделать». Теперь будущие посетители смогут искать «тип файла vim по умолчанию» или «синтаксис vim по умолчанию» и получать правильный ответ на этот вопрос вместо того, чтобы расстраиваться, так как принятый ответ не говорит, как выполнить заголовок вопроса. Кроме того, теперь вы также знаете, как установить
тип файла
@MikeyB Новый заголовок даже не использует слово «по умолчанию». Оригинальный сделал.
HappyDeveloper

Ответы:

26

Следующая строка ~/.vimrcдолжна сделать это.

autocmd BufRead,BufNewFile /etc/nginx/sites-*/* setfiletype conf
mgorven
источник
Небольшая коррекция autocmd BufRead, BufNewFile / etc / nginx / sites- / setfiletype conf
1
vim.org/scripts/script.php?script_id=1886 обеспечивает лучшую подсветку синтаксиса, чем тип файлаconf . Если вы используете Vundle, попробуйте Plugin 'vim-scripts/nginx.vim'.
Адам Монсен
Для всех файлов .conf я поставил команду так:autocmd BufRead,BufNewFile *.conf setfiletype conf
Eren Yilmaz
26

На самом деле тип файла Nginx определен в официальном репозитории Nginx в каталоге contrib / vim . Он обеспечивает лучшую подсветку синтаксиса, чем conf .

Чтобы использовать его, скопируйте строки обнаружения в ваш .vimrc (и настройте по желанию):

au BufRead,BufNewFile *.nginx set ft=nginx
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
au BufRead,BufNewFile nginx.conf set ft=nginx

Затем скопируйте nginx.vim в каталог ~ / .vim / синтаксис .

Все файлы Nginx, соответствующие вышеприведенным правилам, теперь должны быть выделены.

Если вам также нужен отступ, вы можете также скопировать файл из каталога отступов в ваш .vimrc .

Колан
источник