Как мне сделать так, чтобы vim использовал подсветку синтаксиса для другого расположения файла?

981
Kevin M

Я никогда не использую sudo vim /path/to/some.file; Я всегда использую sudoedit. Однако это означает, что vim не видит правильный путь. Например, когда я открываю /etc/http/conf/httpd.conf, sudoedit создает копию httpd.conf, а затем использует vim, чтобы открыть ее. Поэтому вместо того, чтобы vim увидел этот файл, он видит "/var/tmp/httpdXX3H43AK.conf"(например). Это означает, что система подсветки синтаксиса vim не видит правильный тип файла. Если бы я просто открыл файл без использования sudo (и, следовательно, без доступа для записи), vim увидит местоположение файла и решит, что тип файла с подсветкой синтаксиса должен быть apache. Однако, поскольку он не находится в этом месте, он не получает синтаксический тип apache и получает тип файла conf.

Я ищу какой-то способ (параметр командной строки?), Чтобы сказать vim (а точнее, подсветку синтаксиса) «этот файл должен обрабатываться так, как если бы он находился в этом другом месте». Я могу запустить вручную, :se syntax=apacheи подсветка вернется к тому, что должно быть. Однако это требует от меня правильного синтаксиса и является еще одним дополнительным шагом, который, я думаю, мне не нужно предпринимать. Кто-нибудь знает какой-нибудь способ использовать sudoedit и заставить его использовать правильное расположение файла?

Контекст: CentOS 7.1, версия vim: vim-extended-7.4.160-1.el7.x86_64

0

1 ответ на вопрос

2
Sato Katsura

Add set modeline to your vimrc, then add a line like this to the end of your httpd.conf:

# vim: filetype=apache 

Of course, you can also do that with other files. See :help auto-setting for more information.