天天看點

vi編輯器按esc不能退出_linux中退出vi編輯器,按下esc沒反應怎麼辦?

linux中退出vi編輯器,按下esc沒反應的解決辦法:1、在正常模式下按下q鍵盤;2、選擇【a-z】或【0-9】中任意一個作為緩沖器的名字,準備開始錄制宏;3、在非insert模式下輸入q停止宏的錄制;4、使用@和定義的緩沖器名字即可。

vi編輯器按esc不能退出_linux中退出vi編輯器,按下esc沒反應怎麼辦?

linux中退出vi編輯器,按下esc沒反應的解決辦法:

vim recording功能介紹

使用vim時無意間觸碰到q鍵,左下角出現“recording”這個辨別,覺得好奇,遂在網上查了一下,然後這是vim的一個強大功能。他可以錄制一個宏(Macro),在開始記錄後,會記錄你所有的鍵盤輸入,包括在insert模式下的輸入、正常模式下使用的各種指令等。

具體使用:

第一步:在正常模式下(非insert模式、非visual模式)按下q鍵盤

第二步:選擇a-z或0-9中任意一個作為緩沖器的名字,準備開始錄制宏

第三步:正常的操作,此次所有的操作都會被記錄在上一步中定義的緩沖器中

第四步:在非insert模式下輸入q停止宏的錄制

第五步:使用@ + 第二步中定義的緩沖器的名字即可。

例如想把下面的文字

line1

line-2

line3-1

l4

變成如下的文字

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次。