6
我希望將源代碼格式化程序Uncrustify與Vim集成。以下兩個選項中的任何一個都足夠了。Vim autocmd(保存文件,運行代碼格式化程序,重新加載文件)
- 格式化我正在編輯的代碼(即當按下了
gq
時)。 - 保存文件時格式化代碼,然後將格式化後的文件重新加載到當前的Vim窗口中。
選項1是優選的。我試過
set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup
即我用命令行選項調用Uncrustify。 這不起作用。 Vi給出了E518: Unknown option: ~/misc/uncrustify.cfg
錯誤。
對於第二種情況,我想在以後保存該文件格式的vimrc文件
autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>
以下,但我必須手動重新加載該文件到Vim中。
即刪除VI錯誤
更多信息。我還必須添加-l選項來將語言指定爲CPP,因爲uncrustify的輸入來自stdin。但是,在vi中按gq不會格式化文件。如果再按一次,則只格式化當前行,並將以下行添加到正在編輯的文件 - 「解析:來自標準輸入的57個字節(57個字符)作爲語言CPP」。我想我缺少的是如何配置formatprg命令來讀取整個文件,其次,防止上面的行輸出到正在編輯的文件。 – user1280213 2012-03-21 04:36:28
@ user1280213我已更新答案,希望有幫助 – galymzhan 2012-03-21 09:00:14
謝謝。這有幫助。 – user1280213 2012-03-26 10:29:15