標籤:
使用vim時無意間觸碰到q鍵,左下角出現“recording”這個標識,這是vim的一個強大功能。他可以錄 制一個宏(Macro),在開始記錄後,會記錄你所有的鍵盤輸入,包括在insert模式下的輸入、正常模式下使用的各種命令等。具體使用:第一步:在正常模式下(非insert模式、非visual模式)按下q鍵盤第二步:選擇a-z或0-9中任意一個作為緩衝器的名字,準備開始錄製宏第三步:正常的操作,此次所有的操作都會被記錄在上一步中定義的緩衝器中第四步:在非insert模式下輸入q停止宏的錄製第五步:使用@ + 第二步中定義的緩衝器的名字即可。例如想把下面的文字line1line-2line3-1l4變成如下的文字System.out.println(line1);System.out.println(line1);System.out.println(line-2);System.out.println(line3-1);System.out.println(L4);觀察可以發現他們的規律,在每行文字的開頭添加“System.out.println(”,結尾添加“);”就變成下面的資訊了。下面簡單介紹一下如何使用recording來完成這樣的操作。首先把游標移動line1上,輸入qt,準備開始錄製,緩衝器的名字為t,錄製的動作為:shift + ^ 回到行首、按下i鍵進入insert模式、輸入“System.out.println(”、按下esc鍵回到正常模式、shift + $ 回到行尾部、按下i鍵進入insert模式、輸入“);”按下esc鍵回到正常模式,按下q停止錄製。然後把游標移動到下面一行的任意位置輸入 @ + t 即可。recording還可以和查詢結合起來使用,例如想把一個檔案中含有特定字串的行注釋,可以通過這樣的宏來實現。在正常模式下輸入/search string + enter、shift + ^、i、#、esc、shift + $。讓定製的宏自動執行多次的方法是先輸入一個數字,然後在輸入@ + 緩衝器的名字。 例如 [email protected],表示執行100次。
vim-recording命令的使用