2010-03-13 35 views
11

我想弄清楚如何定義影響特定路徑下所有文件的autocmd。在vim中,如何使用autocmd來處理特定路徑的子目錄中的文件?

我已經嘗試了自動命令是一樣的東西

autocmd BufNewFile,BufRead /specificPath/** imap <buffer> .... 

現在,我希望如果我修改,比如要使用此自動命令,/foo/bar/specificPath/baz/something/bla.txt ,但不是如果我編輯/foo/bar/here/and/there/moreBla.txt

如果我啓動vim在「specificPath」上方的目錄中,這可以按我的需要運行。但是,如果我在那個目錄下面,它不會。很明顯,autocmd的模式與相對的文件名相匹配,而不是絕對的。

回答

11

所以,我在我的代碼中使用特定路徑下的路徑來完成此操作。你需要做的:

autocmd BufRead,BufNewFile */somepath/* set filetype=sometype 

至少,這是我使用設置的東西給定文件類型下的特定庫路徑是什麼。希望這將有助於你的榜樣。

+0

那是愚蠢的我,我應該在模式的前想過asterik ... – 2010-03-13 10:20:40

+0

如果我想給絕對路徑,而不是路徑的一部分? 像'/ home/user/work /'會有前面的星號嗎? – 2010-03-13 18:12:11

+0

我認爲還有一種方法 - 只是錯過列表中的主要*。不過,您可能需要領先/如果您想匹配/ home這樣的somethng。 – AlBlue 2010-03-14 06:10:46

12

這將回答你所有的問題。 :)

:h autocmd-patterns 
+3

說實話,我發現這比接受的答案更有用,所以我投了你的贊成票。下次嘗試從文檔中提供示例或引用的文本! – 2014-09-16 16:18:52

相關問題