我想在我的.vimrc
的autocmd BufWrite
上執行一個shell命令,然後在vim中回顯一條消息,告訴它已完成,而不顯示shell。靜默地執行vim命令,然後在vim中回顯
(基本上是touch *.less
),然後回顯一個信息消息說「文件被觸摸!」。
第一部分工作,但第二個命令在shell而不是vim中執行。
的命令應該是這樣的:
autocmd BufWritePost *.less silent! !touch '%:p:h'/*.less | echo 'file '.expand('%:p:h').' touched !'
我想我需要「結束」的命令,並允許其他命令的方式。
我想這個沒有更多的成功:
:silent !touch '%:p:h'/*.less && exit 0 | unsilent! | echo "file touched"
任何想法?
這工作幾乎就像我想要的(在一個小的語法修復後)。當我這樣做時,我有消息'按ENTER鍵或輸入命令繼續'這有點煩人。任何想法? (順便說一句,歡迎在stackoverflow :)) – Asenar
謝謝! :) 有一些技巧來禁用它:[鏈接](http://vim.wikia.com/wiki/Avoiding_the_%22Hit_ENTER_to_continue%22_prompts) 但是,當你想打印和讀取觸發器的東西時,這是必要的。 – cchauviere
是的,我找到了,並在兩行之間添加了'redraw!',並且在execute命令中移動了'silent!'。 – Asenar