4

Sudo編輯(sudo -e)允許非特權用戶安全地編輯文件。爲了達到這個目的,它編輯一個文件的臨時副本,然後在編輯完成後複製它。Vim:Sudo編輯突破Apache語法突出顯示

當我編輯apache文件(例如/etc/apache2/sites-enabled/mysite.com)時,sudoedit vim無法弄清楚它應該使用Apache語法突出顯示,所以我必須手動:設置語法= apache。我懷疑Vim的語法高亮規則依賴於文件的完整路徑,並且由於sudoedit將文件更改爲類似/var/tmp/mysiteRANDOMCHARS.com的文件,因此會丟失該路徑信息。

有什麼辦法讓我自動告訴Vim它應該使用apache語法高亮顯示嗎?

謝謝!

回答

2

這聽起來像是罕見的用例爲VI模式行功能之一:

在你.vimrc

set modeline 

並在您的Apache的配置文件,地方在頂部或底部:

# vi: syntax=apache 
+0

我喜歡這一點,但我擔心轉動模式線的安全隱患。 –

+0

好點。直到現在,我對模式化功能的唯一體會是閱讀它。那麼https://github.com/ciaranm/securemodelines呢? – innaM

+0

嗯...沒有意見的來源。在我對此感到滿意之前,我需要閱讀它。但我懷疑它會做到這一點。 –

2

請參閱/usr/share/vim/vim7x/filetype.vim瞭解Vim如何確定文件是apache文件。

在我的配置中,使用$ vim$ sudo -e沒有什麼區別,因爲無論如何.com擴展名被視爲dcl

我沒有看到一個聰明和可靠的方法來解決辦法是旁邊重寫.com自動命令你~/.vimrc

au BufNewFile,BufRead *.com set ft=apache