Вопрос

Sudo Edit (sudo -e) allows unprivileged users to edit files securely. To achieve this, it makes a temporary copy of a file to edit and then copies it over when editing is done.

When I'm editing an apache file (eg, /etc/apache2/sites-enabled/mysite.com), sudoedit vim can't figure out that it should use Apache syntax highlighting, so I have to manually :set syntax=apache. I suspect that Vim's rule for syntax highlighting relies on the full path of the file, and since sudoedit changes the file to something like /var/tmp/mysiteRANDOMCHARS.com, it loses that path information.

Is there any way for me to automatically tell Vim that it should use apache syntax highlighting?

Thanks!

Это было полезно?

Решение

This sounds like one of the rare use-cases for the vi modeline feature:

In your .vimrc:

set modeline

And in your Apache config file, somewhere at the top or the bottom:

# vi: syntax=apache

Другие советы

See /usr/share/vim/vim7x/filetype.vim for how Vim determines that a file is an apache file.

In my config, using $ vim or $ sudo -e makes no difference as the .com extension is treated as dcl anyway.

I don't see a smart and solid way to workaround that beside overriding the .com autocommand in your ~/.vimrc:

au BufNewFile,BufRead *.com set ft=apache
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top