模式介紹:
Vim具有6種基本模式和5中派生模式。vim
普通模式
啓動後的默認模式,用於:移動光標、刪除文本等待,經常使用命令:app
- dd:刪除當前行。
- [number]dd:連續執行number對應次數的dd命令,如:2dd等於連續執行兩次dd。
- d[移動命令]:刪除當前行到移動命令移動範圍之間的全部行,如:dj等於2dd。
按a(append)或i(insert)進入插入模式。文檔
插入模式
鍵盤的輸入會向文本緩衝區中插入文本。按ESC鍵回到普通模式。file
可視模式
爲了便於選擇文本,Vim引入了可視模式。在普通模式下按v進入可視模式。該模式下移動命 令會擴大高亮的文本區域。當執行一個非移動命令時,命令會被做用到這塊高亮的文本區域 上,而後Vim回到普通模式。搜索
選擇模式
命令模式
執行命令(:鍵)、搜索(/和?鍵)、過濾(!),執行命令後,Vim返回命令模式以前的模 式,一般是普通模式。command
Ex模式
進入Vim
vim note.txtim
若是先使用vim,而後進入命令模式輸入:: note.txt,一樣能夠打開相應的文件。命名
光標移動
- h 左
- l 右
- j 下
- k 上
- w 下一個單詞
- b 上一個單詞
進入插入模式
- i 在光標處進行編輯
- I 在行首進行編輯
- a 在光標後進行編輯
- A 在行尾進行編輯
- o 在當前行後插入一個新行
- O 在當前行前插入一個新行
- cw 替換從光標到一個單詞結尾的字符
退出Vim
- q!:強制退出,不保存。
- q:退出
- wq!:強制保存並退出
- w [文件路徑]: 另存爲
- saveas 文件路徑:另存爲
- x:保存並退出
- wq:保存並退出
- SHIFT+zz:保存並退出
普通模式下刪除文本
- x:刪除遊標所在字符
- X:刪除遊標所在前一個字符
Delete:同x
dd:刪除正行
dw:刪除一個單詞(不適用中文)
d$或D:刪除至行尾
d^:刪除至行首
dG:刪除至文檔結尾處
dgg:刪除至文檔首部
Vim重複命令
- 在普通模式下,.表示重複上一次的命令操做。
- 在普通模式下,N[command],N表示重複後面的命令的次數。
遊標的快速跳轉
- gg:跳轉到第一行
- G:跳轉到最後一行
- nG:跳轉到第n行,若是沒有顯示行號,先使用:set nu顯示行號。
- CTRL+o:跳轉到以前的位置
- w:跳轉到下一個單詞的開頭
- e:跳轉到下一個單詞的結尾
- b:跳轉到前一個單詞的開頭
- ge:跳轉到前一個單詞的結尾
- ^:跳轉到行頭
- $:跳轉到行尾
- f[字母]:向後搜索字母並跳轉到第一個匹配的位置
- F[字母]:向前搜素字母並跳轉到第一個匹配的位置
複製、粘貼、剪切
普通模式中使用y複製,yy表示複製所在的行,3yy表示複製3行,y後面能夠跟隨光標移動命 令,表明複製的範圍,如:y^、yw、y2w、yG等。移動
普通模式中p粘貼,p表明粘貼在吧、光標後,P表明粘貼在光標前。文件
dd刪除命令就是剪切。
替換
- r + [待替換字符]:將遊標所在字符替換爲指定字符
- R:連續替換,直到按下ESC。
- cc:替換整行,即:刪除遊標所在行,進入插入模式。
- C:替換遊標之後至行尾
- c + [移動命令]:替換移動命令包含的文本,即:刪除移動命令包含的文本,進入插入模 式。
- ~:翻轉游標所在字符的大小寫
撤銷
- u + n:撤銷一次或n次
- U:撤銷當前行的全部修改
- CTRL + r:撤銷undo的操做
調整文本位置
-
:向右縮進
- <<:向左縮進
- 進入命令模式輸入shiftwidth值能夠控制縮進字符數
搜索
- / + 搜索內容:正向搜索
- ? + 搜索內容:反向搜索
- n:繼續查找
- N:反向繼續查找
- *:正向搜索光標處的單詞
- #:反向搜索光標處的單詞
多文件編輯
能夠使用vim同時打開多個文件,在使用:n編輯下一個文件,使用:n!強制切換下一個文件。 使用:N編輯前一個文件,使用:N!強制編輯前一個文件。
打開新文件的方式有:
- :e file:打開指定文件
- :e#:回到前一個文件
- :e! file:打卡指定的文件,放棄正在編輯的文件的修改。
- :ls:列出以前編輯過的文件
- :f:顯示正在編輯的文件名
- :f file:重命名在編輯的文件名字
- :b file:能夠直接進入文件編輯
可視模式
在普通模式下輸入v、SHIFT+v、CTRL+v進入選擇模式,再按一樣的鍵退出選擇模式。輸入d 刪除選擇區的內容,輸入y複製選擇區的內容。
多視窗
- sp file 新建橫向視圖
- vsp file 新建縱向視圖
- ctrl+w+s 將當前視圖分割成兩個橫向的視圖
- ctrl+w+v 將當前視圖分割成兩個縱向的視圖
- ctrl+w+q 關閉當前視圖
- ctrl+w+o 打開一個視圖並關閉以前的全部視圖