2009-11-06 47 views
0

我想在vim中打開的每個.c和.h文件上運行縮進。我已經看了設置equalprg,但我寧願它爲我做的,當我打開了緩衝,所以我嘗試:如何在bufferRead上用vim智能地運行縮進

autocmd BufReadPost *.[ch] '[,']!indent 

這工作,如果文件沒有語法錯誤罰款,但噴出的錯誤信息從縮進到文件,如果我錯過了大括號,說。我以前沒有做任何插件。我最好寫一個ftplugin嗎?我不介意沉默失敗,但在這種情況下,文件應該保持原始狀態。任何提示不勝感激。

回答

1

如果你想使用GNU縮進。這聽起來像你想要的東西,如:

autocmd BufReadPost *.[ch] silent !indent "%" 
set autoread 

(還未經測試):-)

+0

這會導致一個奇怪的現象:文件被格式化,但vim緩衝區爲空。我收到消息: W11:警告:文件「web_server.c」自編輯開始以來已更改 有關詳細信息,請參閱「:help W11」。 [O] K,(L)oad文件: 我選擇「L」並獲得空白緩衝區。 :-( 設置自動讀只是自動實現的過程:-( – Leonard 2009-11-06 18:50:36

+0

但這個工程:! 自動命令在BufReadPost * [CH]沉默縮進「%」 一套自動讀 – Leonard 2009-11-06 19:35:15

+0

好,因此編輯 – Benj 2009-11-07 11:47:16

0

怎麼樣(未經測試):

autocmd BufReadPost *.[ch] gg=G 
+0

的問題是,我想運行GNU縮進,而不是建立在縮進。我有許多配置vim的縮進不處理的首選項。 – Leonard 2009-11-06 06:53:00