1. 程式人生 > >VIM中執行Shell命令(炫酷)

VIM中執行Shell命令(炫酷)

      我對VIM的認識僅僅是一款原始碼編輯器,在Linux下用來編輯程式原始碼或者某些服務的配置檔案。最近無意中看到vim中竟然可以執行shell命令。第一次見,說句實話感覺好炫酷!不多說,我查了一些資料,一個一個嘗試一下,留個筆記,備查。

      vim中執行shell命令,有以下幾種形式:

      第一種 :!command

      不退出vim,並執行shell命令command,將命令輸出顯示在vim的命令區域,不會改變當前編輯的檔案的內容。執行:!ls -al命令,如下圖所示:

vim1

      特別的可以執行:!bash來啟動一個bash shell並執行命令,不需要退出vim。這點在Linux滲透測試的時候很有用,關於日誌清除相關的內容,不想說的太明白,自己體會吧。(最後還要刪除VIM所產生的日誌檔案噢,kali裡面是.viminfo

,在vim中使用rm -rf強制清除)

      第二種 :r !command

      將shell命令command的結果插入到當前行的下一行。例如:r !date。讀取系統時間並插入到當前行的下一行。如下圖所示:

vim2

      第三種 :起始行號,結束行號!command

      將起始行號和結束行號指定的範圍內的內容讓shell命令command處理,並將處理結果替換起始行號和結束行號指定範圍中的內容。例如 :1,4 !sort,將第1行到第4行的內容進行排序。如下圖所示:

vim3

      可以只指定起始行,例如:1 !tr [a-z] [A-Z],將第1行的小寫字母轉為大寫字母。如下圖所示:

vim4

      除可以指定行號外,也可以用.表示當前游標所在行。例如:. !tr [a-z] [A-Z],將當前行的小寫轉為大寫。如下圖所示:

vim5

      第四種 :起始行號,結束行號 w !command

      將起始行號和結束行號所指定範圍的內容作為命令command的輸入,不會改變當前編輯的檔案的內容。

      例如:1,4 w !sort,將第1行到第4行的內容進行排序,但排序的結果並不會直接輸出到當前編輯的檔案中,而是顯示到vim敲命令的區域。如下圖所示:

vim6

      特殊的可以用下面的命令: 1 w !bash,將會把第1行的內容作為bash命令來執行並顯示結果,而且不會改變當前編輯的檔案的內容。同樣的 : . w !bash

將當前行的內容作為bash命令來執行。

      好了,參考人家的資料,試了一下,整理的內容。這個好炫酷。