從 vi 發(fā)展出來的文本編輯器
-
vim 鍵盤圖vim 鍵盤圖.png
-
vi/vim 共分為三種模式鬼譬,
3.1 命令模式(Command mode):- 進入輸入模式:
1) i 『從光標所在處輸入』, I 『在所在行的第一個非空格符處開始輸入』 (常用)
2)a 『從光標所在的下一個字符處開始輸入』稠曼, A 『從光標所在行的最后一個字符處開始輸入』(常用)
3)o 『在光標所在的下一行處輸入新的一行』, O 為在目前光標所在處的上一行輸入新的一行(常用)
4)進入取代模式(Replace mode),r 只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字氧骤,直到按下 ESC 為止(常用) - x:刪除當前光標所在處的字符
- : 切換到底線命令模式
3.2 輸入模式(Insert mode)
3.3 底線命令模式(Last line mode)
移動光標
- h j k l:左下上右
- n<space>:例如 20<space> 則光標會向右移動 20 個字符距離
- 0 或功能鍵[Home]:一行的最前面字符處 (常用)
- $ 或功能鍵[End]:一行的最后面字符處(常用)
- G:移動到最后一行(常用)
- nG:移動到這個檔案的第 n 行。
- gg:移動到這個檔案的第一行吃引,相當于 1G 筹陵! (常用)
- n<Enter>:光標向下移動 n 行(常用)
搜索替換:
- /word:向光標之下尋找一個名稱為 word 的字符串,
- ?word 向光標之上尋找
- n:英文按鍵际歼,代表重復之前的搜尋動作惶翻,向下則繼續(xù)向下
- N:與 n 相反姑蓝,向下變向上
- :1,40s/hi/Hello/g :在 1 到 40 行之間搜尋 hi 并取代為 Hello
- :1,$s/hi/Hello/g 或 :%s/hi/Hello/g鹅心,從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2
- :1,$s/word1/word2/gc 或 :%s/word1/word2/gc纺荧,在取代前顯示提示字符給用戶確認 (confirm) (常用)
刪除旭愧、復制、 粘貼
- x, X:x 為向后刪除一個字符 ( [del] )宙暇, X 為向前([backspace] ) (常用)
- nx:『10x』
- dd:刪除所在一整行(常用)
- ndd:n 行输枯,例如 20dd (常用)
- d1G:刪除光標所在到第一行的所有數(shù)據(jù)
- dG:刪除光標所在到最后一行的所有數(shù)據(jù)
- yy:復制游標所在的那一行(常用)
- nyy:n 為數(shù)字。復制光標所在的向下 n 行占贫,例如 20yy 復制 20 行(常用)
- u:復原前一個動作桃熄。(常用)
- [Ctrl]+r:重做上一個動作。(常用)
- . : 小數(shù)點型奥,重復前一個動作的意思瞳收。
退出、離開 ESC
- :w [filename]:將編輯的數(shù)據(jù)儲存成另一個文件(類似另存)
- :r [filename]:在編輯的數(shù)據(jù)中厢汹,讀入另一個文件的數(shù)據(jù)螟深。即將 『filename』 這個文件內(nèi)容加到游標所在行后面
- :n1,n2 w [filename]:將 n1 到 n2 的內(nèi)容儲存成 filename 這個檔案。
-:! command:暫時離開 vi 到指令行模式下執(zhí)行 command 的顯示結(jié)果烫葬!例如『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息界弧!
環(huán)境的變更
- :set nu:顯示行號,設(shè)定之后搭综,會在每一行的前綴顯示該行的行號
- :set nonu:與 set nu 相反垢箕,為取消行號!
- 進入輸入模式:
1兑巾、復制粘貼
- 單行復制
在命令模式下条获,將光標移動到將要復制的行處,按“yy”進行復制闪朱; - 多行復制
在命令模式下月匣,將光標移動到將要復制的首行處钻洒,按“nyy”復制n行;其中n為1锄开、2素标、3…… - 粘貼
在命令模式下,將光標移動到將要粘貼的行處萍悴,按“p”進行粘貼