vi:全名 Visual Interface; vim:全名VI iMproved. 它們都是全屏化、模式化編輯器。
vim有三種使用模式:命令模式、輸入模式(編輯模式)、末行模式。
命令模式:使用鍵盤命令的模式,進行文本內容的編輯。
輸入模式(編輯模式):在文本狀態下,進行文本內容的編輯。
末行模式:在末行狀態下,進行文本內容的編輯。
模式轉換:
命令模式——>輸入模式:
i:在當前光標字符的前面,轉換爲輸入模式
a:在當前光標字符的後面,轉換爲輸入模式
o:在當前光標字符的下方,新建一行,並進入輸入模式
I:當前光標跳轉至行首,轉換爲輸入模式
A:當前光標跳轉至行尾,轉換爲輸入模式
O:在當前光標字符的上方,新建一行,並進入輸入模式
輸入模式——>命令模式:
ESC
命令模式——>末行模式:
:
末行模式——>命令模式:
ESC,ESC
vim基本操作技巧:
一、打開單個文件
vim file: 直接打開文件
vim + file:打開文件並跳至最後一行
vim +# file:打開文件並跳至第#行
vim +/PATTERN:打開文件並跳轉至第一次被模式PATTERN匹配到的行的行首
二、關閉文件
末行模式下:
:q 關閉文件但不保存
:w 保存文件
:wq 保存並關閉文件
:x 保存並關閉文件
:q! 強制關閉文件但不保存
:wq! 強制保存並關閉文件
:x! 強制保存並關閉文件
命令模式下:
ZZ :保存並退出
三、移動光標
1.逐字符移動
h:左移一個字符
l:右移一個字符
j:向下移一行
k:向上移一行
2.以單詞爲單位移動
w:移動到下一個單詞的行首
e:移動到下一個單詞的行尾
b:移動到上一個單詞的行首
3.行內跳轉
0:跳轉至絕對行首
^:跳轉至相對行首,即行首的第一個字符所在處
$:跳轉到行尾
4.行間跳轉
命令模式下:
G:跳轉到最後一行
#G:跳轉到第#行
末行模式下:
:$ 跳轉至最後一行
:# 跳轉到第#行
四、翻屏顯示
Ctrl+f:向下翻一屏 ## f:front
Ctrl+b:向上翻一屏 ## b:back
Ctrl+d:向下翻半屏 ## d:down
Ctrl+u:向上翻半屏 ## u:up
五、刪除
命令模式:
刪除字符:
x:刪除光標所在處的字符
#x:刪除光標所在處及之後的#個字符
刪除單詞: ## d:delete
#dw:刪除從當前光標字符開始到#個單詞之後的行首處之間的單詞
#de:刪除從當前光標字符開始到#個單詞之後的行尾處之間的單詞
#db:刪除從當前光標字符開始到#個單詞之前的行首處之間的單詞
刪除行:
dd:刪除當前光標字符所在行
#dd:刪除當前行在內向後的#行
末行模式:
:StartADD,EndADDd
.: 表示當前行
$: 最後一行
+#: 向下的#行
-#: 向上的#行
六、複製
複製單詞: ## y:copy
y:用法同d命令
複製行:
yy:複製當前行
#yy:複製當前行在內向後的#行
七、黏貼
## p/P:paste
小p:黏貼到當前光標所在處之後,或者下方
大P:黏貼到當前光標所在處之前,或者上方
八、修改
實質是在要修改的位置先刪除,後插入
## c:change
c:用法同d命令
九、替換
## r/R:replace
r:用法同d命令,在命令模式下直接替換
R:進入輸入模式,並替換
十、撤銷命令模式下的操作
u:撤銷上一次的操作
#u:撤銷前#次的操作
Ctrl+r:恢復最近一次撤銷操作
十一、重複上一次命令模式下的操作
命令模式下:.
十二、可視化模式
v:按字符選取
V:按矩形選取
十三、查找
查找:
末行模式下:
/PATTERN:順序查找,從前往後查找
?PATTERN:逆序查找,從後往前查找
n:向後移動到下一個PATTERN處
N:向前移動到上一個PATTERN處
查找並替換:
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
1,$
%:表示全文
十四、同時編輯多個文件
vim file1 file2 file3
切換:
:next 跳轉到下一個文件
:prev 跳轉到上一個文件
:first 跳轉到第一個文件
:last 跳轉到最後一個文件
分屏顯示: ## w:windows
Ctrl+w,s 水平顯示多個文件 ## s:Simultaneous 平行的
Ctrl+w,v 垂直顯示多個文件 ## v:Vertical 垂直的
Ctrl+w,c 關閉分屏顯示 ## c:Close
分窗口編輯:
vim -o:水平分割顯示
vim -O:垂直分割顯示
另存爲:
:w /path/to/anotherfile
:StartLine EndLinew /path/to/anotherfile
在當前文件中引入另一文件內容:
:r /path/to/file
十五、與shell交互
:!COMMAND
十六、顯示設置
顯示/隱藏行號:
:set number 或 :set nu
:set nonu
忽略/區分字符大小寫:
:set ignorecase 或 :set ic
:set noic
打開/關閉自動縮進:
:setautoindent 或 :set ai
:set noai
打開/關閉查找到的單詞高亮顯示:
:set hlsearch
:set nohlsearch
打開/關閉語法高亮:
:syntax on
:syntax off
十七、配置文件
/etc/vimrc
~/.vimrc