Como definir o tipo de arquivo vim ao editar arquivos de configuração nginx

17

Quando abro o vim para um arquivo como /etc/nginx/sites-available/default, o destaque da sintaxe funciona bem. Mas se eu criar meu próprio arquivo /etc/nginx/sites-available/myapp, o vim não destacará sua sintaxe. Eu tenho que fazer o :setf conftempo todo.

Existe algo que eu possa colocar ~/.vimrcpara dizer ao vim "se você não souber qual sintaxe usar, basta usar conf"?

Um .vimrcmodelo para um vim noob também é bem-vindo. Não o estou usando como um IDE, uso o vim principalmente para arquivos de configuração.

Nota: Estou usando o Ubuntu 12, caso isso importe.

HappyDeveloper
fonte
Alterei seu título para refletir com mais precisão o que você está tentando fazer e
refiz
@ MikeyB Eu não conhecia nem me importava com 'tipos de arquivos', até onde eu sabia que o vim poderia estar realçando a sintaxe apenas olhando o código e adivinhando o idioma. E a parte principal do problema era que eu queria que fosse "por padrão". Eu já sabia como 'definir o idioma / tipo de arquivo ao editar'. Além disso, seja para nginx ou qualquer outra coisa, é irrelevante. Faça como quiser, nunca entendi por que as pessoas com falha no servidor decidem fechar ou editar perguntas (talvez para SEO?). A menos que seja gramaticalmente incorreto, o título original reflete meu problema.
HappyDeveloper 20/05/12
3
possivelmente interessante: vim.org/scripts/script.php?script_id=1886 (I usá-lo e ele é muito bom, adicione um # vim:syn=nginxna parte inferior das configurações)
SingleNegationElimination
@ HappyDeveloper: a razão pela qual eu editei foi que sua resposta aceita indica "Ah, eu realmente estava tentando fazer isso". Agora, os futuros visitantes poderão procurar por 'tipo de arquivo vim padrão' ou 'sintaxe padrão do vim' e obter a resposta correta para isso, em vez de ficarem frustrados, pois a resposta aceita não diz como realizar o título da pergunta. Além disso, agora você também sabe como definir o tipo de arquivo padrão :)
MikeyB
@ MikeyB O novo título nem usa a palavra 'padrão'. O original fez.
HappyDeveloper

Respostas:

26

A seguinte linha ~/.vimrcdeve fazer isso.

autocmd BufRead,BufNewFile /etc/nginx/sites-*/* setfiletype conf
mgorven
fonte
correção leve autocmd BufRead, BufNewFile / etc / nginx / sites- / setfiletype conf
1
O vim.org/scripts/script.php?script_id=1886 fornece melhor destaque de sintaxe que o conftipo de arquivo. Se você usa o Vundle, tente Plugin 'vim-scripts/nginx.vim'.
111315 Adam Monsen
Para todos os arquivos .conf, eu coloquei o comando como este:autocmd BufRead,BufNewFile *.conf setfiletype conf
Eren Yilmaz
26

Na verdade, existe um tipo de arquivo Nginx definido no repositório oficial do Nginx no diretório contrib / vim . Ele fornece melhor destaque de sintaxe que conf .

Para usá-lo, copie as linhas de detecção para o seu .vimrc (e ajuste conforme desejado):

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

Em seguida, copie o nginx.vim para o diretório ~ / .vim / syntax .

Todos os arquivos Nginx que seguem as regras acima agora devem ser destacados.

Se você também desejar o recuo, também poderá copiar o arquivo do diretório recuo para o seu .vimrc .

colan
fonte