2013-03-04 141 views
2

好吧,我有相當簡單的問題:怎樣才能綁定vim命令/熱鍵來執行一些複雜的shell腳本?VIM shell命令集成

E.g.我想優化CSS文件內的base64內嵌圖像。我知道,在殼它會是這樣的:

echo `selection` > /tmp/img.png.b64 
base64 -d /tmp/img.png.b64 > /tmp/img.png 
optipng -o7 /tmp/img.png 
base64 -w 0 /tmp/img.png > `selection` 

我想把selection到腳本,然後讓腳本執行的結果和替換所選內容與結果。 我看到工作流如在視覺塊模式選擇的base64部分和例如鍵入:'<,'>optipng或按一些熱鍵。 的問題是如何設置VIM來做到這一點。

回答

1

Vim允許通過:[range]!{cmd}通過外部命令的過濾器行。如果您optipng命令可以從標準輸入接受輸入並打印到標準輸出,可以直接使用它;否則,在小型shell腳本包裝的幫助下。有關詳細信息,請參見:help :range!

一個限制是,這隻適用於整行,而不是零件,即使在視覺選擇。你可以通過vis plugin解決這個問題;它會然後是這樣的:

:'<,'>B !optipng -o7 
+0

我想,我更喜歡解析'base64'部分內css規則(對插件)。感謝您的解決方案。 – kirilloid 2013-03-11 13:39:13