標籤:
我對VIM的認識僅僅是一款源碼編輯器,在Linux下用來編輯程式源碼或者某些服務的設定檔。最近無意中看到vim中竟然可以執行shell命令。第一次見,說句實話感覺好炫酷!不多說,我查了一些資料,一個一個嘗試一下,留個筆記,備查。
vim中執行shell命令,有以下幾種形式:
第一種 :!command
不退出vim,並執行shell命令command,將命令輸出顯示在vim的命令地區,不會改變當前編輯的檔案的內容。執行:!ls -al命令,如所示:
特別的可以運行:!bash來啟動一個bash shell並執行命令,不需要退出vim。這點在Linux滲透測試的時候很有用,關於日誌清除相關的內容,不想說的太明白,自己體會吧。(最後還要刪除VIM所產生的記錄檔噢,kali裡面是.viminfo,在vim中使用rm -rf強制清除)
第二種 :r !command
將shell命令command的結果插入到當前行的下一行。例如:r !date。讀取系統時間並插入到當前行的下一行。如所示:
第三種 :起始行號,結束行號!command
將起始行號和結束行號指定的範圍內的內容讓shell命令command處理,並將處理結果替換起始行號和結束行號指定範圍中的內容。例如 :1,4 !sort,將第1行到第4行的內容進行排序。如所示:
可以只指定起始行,例如:1 !tr [a-z] [A-Z],將第1行的小寫字母轉為大寫字母。如所示:
除可以指定行號外,也可以用.表示當前游標所在行。例如:. !tr [a-z] [A-Z],將當前行的小寫轉為大寫。如所示:
第四種 :起始行號,結束行號 w !command
將起始行號和結束行號所指定範圍的內容作為命令command的輸入,不會改變當前編輯的檔案的內容。
例如:1,4 w !sort,將第1行到第4行的內容進行排序,但排序的結果並不會直接輸出到當前編輯的檔案中,而是顯示到vim敲命令的地區。如所示:
特殊的可以用下面的命令: 1 w !bash,將會把第1行的內容作為bash命令來執行並顯示結果,而且不會改變當前編輯的檔案的內容。同樣的 : . w !bash將當前行的內容作為bash命令來執行。
好了,參考人家的資料,試了一下,整理的內容。這個好炫酷。
VIM中執行Shell命令(炫酷)