vim中執行shell命令小結
vim中執行shell命令,有以下幾種形式
www.2cto.com
1):!command
不退出vim,並執行shell命令command,將命令輸出顯示在vim的命令區域,不會改變當前編輯的文件的內容
例如
:!ls -l
特別的可以運行:!bash來啟動一個bash shell並執行命令,不需要退出vim
2):r !command
將shell命令command的結果插入到當前行的下一行
例如
:r !date,讀取系統時間並插入到當前行的下一行。
3):起始行號,結束行號 !command
將起始行號和結束行號指定的范圍中的內容輸入到shell命令command處理,並將處理結果替換起始行號和結束行號指定的范圍中的內容
例如
:62,72 !sort,將62行到72行的內容進行排序
可以只指定起始行,例如:62 !tr [a-z] [A-Z],將62行的小寫字母轉為大寫字母
當前光標所在行,除可以指定行號外,也可以用.表示,例如:. !tr [a-z] [A-Z],將當前行的小寫轉為大寫
4):起始行號,結束行號 w !command
將起始行號和結束行號所指定的范圍的內容作為命令command的輸入。不會改變當前編輯的文件的內容
例如
:62,72 w !sort,將62行到72行的內容進行排序,但排序的結果並不會直接輸出到當前編輯的文件中,而是顯示在vim敲命令的區域
特殊的可以下面這麼用
:62 w !bash,將會把第62行的內容作為bash命令來執行並顯示結果,而且不會改變當前編輯的文件的內容
同樣的:. w !bash,將當前行的內容作為bash命令來執行
例如52行內容為ls -l
那麼輸入:52 w !bash就跟執行!ls -l是一樣的效果,如果你用的shell是bash shell
如果輸入的是:52 !bash,那麼會把第52行的內容也就是ls -l作為命令執行,同時命令的輸出結果會替換第52行的內容,注意其中的區別。