學習筆記15:Linux終端中的Vi-Vim編輯器常用命令

Vi(Visual interface):使用ssh遠程登錄服務器時,在沒有圖形界面時編輯文件,常見的需要修改的文件包括源程序,配置文件。
特點:1.沒有圖形界面的功能強大的編輯器;2.只能是編輯文本內容,不能對字體,段落進行排版;3.不支持鼠標操作;4.沒有菜單;5.只有命令。
Vim = Vi improve :由Vi發展出來的一個文本編輯器,支持代碼補全,編譯及錯誤跳轉等方便編程的功能,在linux很多發行版中,直接把vi做成vim的軟連接。

(1)Vi三種基本工作模式
1.命令模式:通過命令實現常規編輯操作,如定位,翻頁,複製,粘貼等。
Vi入口 {
vi 文件名:打開已存在文件或新建一個文件。
vi 文件名 +行數:打開一個文件並定位到指定行(若只寫了+而沒有行數,則直接跳到末尾)。
d:當vi編輯時異常退出,可能會存在交換文件,當重新打開文件時會提示發現交換文件,保證輸入法處於英文狀態並按下d刪除,不保存異常退出前對文件的修改。}
2.編輯模式:正常文件編輯。
3.末行模式:保存,退出操作,Vi出口。
:w :保存(write) :q :退出,不保存不允許退出(quit) : q! :強制退出,不保存退出(quit) : wq :保存並退出(write&quit) : x :保存並退出。
:e . :打開內置文件瀏覽器,瀏覽當前目錄下的所有文件。
:e 文件名:瀏覽已保存的文件。
:n 文件名:新建文件。
:w 文件名:文件另存爲,且仍能繼續編輯當前文件,不切換到另存的文件,可階段性備份文件。

三種模式切換圖:
在這裏插入圖片描述
(2)常用命令
命令學習線路:1.重複次數(數字加命令,重複執行指定次數);2.移動和選擇(快速移動到編輯代碼塊);3:編輯操作(刪除,複製,粘貼,替換,縮排);4:撤銷和重複;5:查找替換;6:編輯。
1)移動
上下左右{ h:向左(食指) j:向下(食指) k:向上(中指) l:向右(無名指)}
行內移動{ w:向後移動一個單詞; b:向前移動一個單詞; 0:行首; ^:行首第一個不是空白字符的位置;$:行尾 }
行數移動{ gg:文件頂部;G:文件尾部;數字gg或數字G或:數字:移動到數字對應行數}
屏幕移動{ Ctrl+b:向上翻頁;Ctrl+f:向下翻頁;H:屏幕頂部;M:屏幕中間;L:屏幕底部 }
段落移動{ {:左小括號代表上一段;}:右小括號代表下一段;%:用於成對括號的匹配和切換 }
標記:某一塊代碼可能需要稍後處理,這時可添加標記,在需要時快速跳轉,若在其他行添加相同名稱的標記,之前的標記會被替換。{ mx:添加標記x,x是任意大小寫字母 ; 'x:直接定位到標記x所在位置 }
選中文本{ v:可視模式,從光標位置開始到光標結束位置按照正常模式選擇文本;V:可視行模式,選中光標經過的所有行;Ctrl+v:可視塊模式,垂直方向選中文本;Esc:退出可視模式 }
注意:選中文本命令進入可視模式可與上述移動命令連用。
舉例:利用可視塊給多行代碼增加註釋{ 1.移動到要添加註釋的第1行代碼,按^來到行首;2.按Ctrl+v進入可視化模式;3.使用j向下連續選中要添加的代碼行;4.輸入I進入編輯模式,並在行首插入;4.輸入註釋符號#;5.按下esc返回到命令模式,在選中行每行代碼前已插入註釋符號# }
2)編輯
撤銷{ u:撤銷上次命令;Ctrl+r:回覆撤銷的命令 }
刪除{ x:刪除光標所在字符或者選中文字;d(+移動命令使用):刪除移動命令對應的內容(常見搭配:dw從光標位置刪除到單詞末尾,d0從光標位置刪除到一行的起始位置,d}從光標位置刪除到段落結尾,d代碼行G從光標所在行刪除到指定代碼行之間的所有代碼,d’a從光標所在行刪除到標記a之間的所有代碼);dd:刪除光標所在行,可以ndd刪除n行;D:刪除至行尾 }
複製{ y:複製;yy:複製一行,nyy複製n行;p:粘貼 注意:在其他軟件的Ctrl+c複製的內容不能直接p粘貼,需先進入編輯模式(i),然後右鍵粘貼,返回命令模式(esc)。}
替換{ r:替換當前字符;R:替換當前行光標後的字符(不用進入編輯模式,替換完成後按ESC返回命令模式 }
縮排{ >> :向右增加縮進四個空格;<<:向左減少縮進四個空格(在可視模式下,同時對多行進行縮排只需要一個>或<即可); .:用一個點操作可重複執行縮排。}
插入(進入編輯模式){ i:在當前字符前插入文本;I:在行首插入文本;a:在當前字符後插入文本;A:在行末添加文本;o:在當前行後面插入一空行;O:在當前行前面插入一空行 }

3)查找替換
常規查找{ *:向後查找到當前光標所在單詞; #:向前查找到當前光標所在單詞(單詞快速匹配); /str:查找str;n:查找下一個;N:查找上一個 }
查找並替換(需在末行模式下執行){ :%s/舊文本/新文本/g:一次性替換文件中的所有出現的舊文本 }
可視區域替換(需在末行模式下執行){ :s/舊文本/新文本/g:先選中要替換文字的範圍(V),進行可視區域替換 }
確認替換(需在末行模式下執行){ :%s/舊文本/新文本/gc:是否替換會有提示(y替換,n不提換,a替換所有,q退出替換,l最後一個並把光標移到行首,^E/Y向下/上滾屏}
4)分屏
分屏{ :sp 文件名:橫向分屏; :vsp 文件名:縱向增加分屏 }
窗口切換(下面窗口命令需先按Ctrl+w){ w:切換到下一個窗口; r:互換窗口; c:關閉當前窗口,但不能關閉最後一個; q:退出當前窗口,如果是最後一個窗口,則關閉vi; o:關閉其他窗口 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章