2015-03-03 51 views
1

的文件類型我可以使用autocmd使我的cmd運行,如果文件的特定文件類型加載。例如對於python:vimrc autocmd:不等於在

autocmd FileType python make me happy with python 

但是有沒有什麼辦法讓我的cmd運行,如果加載文件不是特定類型?例如:

autocmd FileType !python make me happy without python 

上面的示例不起作用,autocmd!將刪除autocmd。

有什麼建議嗎?謝謝。

回答

4

有幾種可能性:

  • 簡單的方法是調用一個函數,使你的函數檢查文件類型(並中止,如果文件類型是蟒蛇)。
  • 另一種方法是爲python文件類型設置一個標誌並讓你檢查標誌。
  • 使用*模式並調用您的代碼只內的,如果條件檢查的文件類型(與此類似): autocmd Filetype * if &ft!="python"|put your code here|endif
  • 難的方法是創建一個模式,不符合蟒蛇。像這樣的東西應該這樣做: :autocmd FileType [^p],[^p][^y],[^p][^y][^t],[^p][^y][^t][^h],[^p][^y][^t][^h][^o],[^p][^y][^t][^h][^o][^n] :put your code here

(最後一部分是未經檢驗的,應該說明,爲什麼平時任何其他可能性都使用)。

+0

謝謝。我用第三個選項作爲最簡單的方法。 – shved 2015-03-04 10:42:37

3

您可以製作一個由所有(*)文件類型觸發的autocmd,然後調用一個函數。

在該功能中,您可以檢查ft選項(&ft)以決定對某些文件類型應該做些什麼。在那裏你可以做任何匹配邏輯值&ft