Como faço para o vim usar o destaque de sintaxe de outro local de arquivo?

0

Eu nunca uso sudo vim /path/to/some.file; Eu sempre uso sudoedit. No entanto, isso significa que o vim não vê o caminho correto. Como exemplo, quando abro /etc/http/conf/httpd.conf, o sudoedit faz uma cópia do httpd.conf e depois usa o vim para abri-lo. Então, em vez de o vim ver esse arquivo, ele vê "/var/tmp/httpdXX3H43AK.conf"(por exemplo). Isso significa que o sistema de destaque de sintaxe do vim não vê o tipo de arquivo apropriado. Se eu simplesmente abrisse o arquivo sem usar o sudo (e, portanto, sem acesso de gravação), o vim veria o local do arquivo e decidira que a sintaxe que destaca o tipo de arquivo precisa ser apache. No entanto, como não está nesse local, ele não obtém o tipo de sintaxe apache e obtém um tipo de arquivo conf.

Estou procurando uma maneira (uma opção de linha de comando?) Para informar ao vim (e mais especificamente, o destaque da sintaxe) "esse arquivo deve ser tratado como se estivesse nesse outro local". Posso executar manualmente :se syntax=apachee o destaque está de volta ao que deveria ser. No entanto, isso exige que eu conheça a sintaxe correta e é uma etapa extra que acho que não devo dar. Alguém sabe alguma maneira de usar o sudoedit e fazê-lo usar o local correto do arquivo?

Contexto: CentOS 7.1, versão vim: vim-Enhanced-7.4.160-1.el7.x86_64

Kevin M
fonte

Respostas:

3

Adicione set modelineao seu vimrce adicione uma linha como esta ao final do seu httpd.conf:

# vim: filetype=apache

Obviamente, você também pode fazer isso com outros arquivos. Veja :help auto-settingpara mais informações.

Sato Katsura
fonte