針對this question上的超級用戶,我寫了一個小的Vimscript將檢測的符號鏈接的文件類型,並更改語法高亮:.vimrc如何設置自己的文件類型?
AU BufNewFile,BufRead *等,如果&語法==「」 |無聲!執行(':set filetype ='。matchstr(resolve(@%),'。[^。] * $')[1:])| endif
所以如果我打開一個沒有擴展名的符號鏈接,它會查看它指向的文件的擴展名。
它可以工作,但意想不到的結果是現在我的.vimrc
文件的語法突出顯示消失了。默認情況下,我的.vimrc文件具有vim語法高亮顯示(:echo &syntax
返回vim
)。
但是,當我添加上面的行,:echo &syntax
返回vimrc
(一個無效的類型)。
我不知道爲什麼會發生這種情況。不應該&syntax==''
評估爲假,並因此保持&syntax==vim
?我懷疑我的代碼在語法突出顯示設置爲vim
之前正在執行。但是如何(以及何時)完全是是語法高亮設置爲vim
爲.vimrc
?另外,如何讓我的腳本按照它應該的方式行事?
我只是回答你的問題 - 如何設置.vimrc的文件類型。如果這不是你的問題,那麼你可能應該編輯它或者重新引用它。我懷疑你的autocmd首先運行,所以是的,語法是零。 – jszakmeister
啊,對不起,我誤解了 - 這確實回答了我的問題的第一部分。 – Jeff
我更新了我的答案。我認爲你需要把你的autocmd放在'〜/ .vim/after/filetype.vim'中,所以它會在Vim運行時之後被調用。 – jszakmeister