一、Vim的三種模式
Vim中有三種模式:編輯模式、輸入模式、末行模式
使用vim命令打開文件之後默認處於編輯模式下。
1.編輯模式-->輸入模式
i:在當前光標所在字符的前面,轉換成爲輸入模式
a:在當前光標所在字符的後面,轉換爲輸入模式
o:在當前光標所在行的下方新建一行,並轉換爲輸入模式
I:在當前光標所在行的行首,轉換爲輸入模式
A:在當前光標所在行的行尾,轉換爲輸入模式
O:在當前光標所在行的上方新建一行,並轉換成爲輸入模式
2.輸入模式-->編輯模式
ESC
3.編輯模式-->末行模式
:
4.末行模式-->編輯模式
ESC,ESC
輸入模式不能直接轉換到末行模式,必須先轉換成爲編輯模式再轉換到末行模式
二、打開文件
1.vim +# FILENAME:打開文件,並定位到文件的第N行
2.vim + FILENAME:打開文件,並定位到最後一行
3.vim +/PATTERN :打開文件,並定位到第一次被PATTERN匹配到的行的行首
打開文件之後默認處於編輯模式
三、關閉文件
1.末行模式下關閉文件
:q |
退出 |
:q! | 不保存並退出 |
:wq或者:x |
保存並退出 |
:w |
保存 |
:w! |
強行保存 |
2.編輯模式下退出
ZZ:保存並退出
3.強行退出
Ctrl+C,使用這種方式的結果就是會產生.swp文件,這種文件會保存未保存的內容以便於下一次編輯文件的時候進行恢復,所以比較麻煩,強烈不建議直接Ctrl+C退出,按照正常流程退出的話就不會產生這種文件了。
四、光標移動(編輯模式)
1.逐字符移動光標
h | 向左移動一個字符 |
j | 向下移動一個字符 |
k | 向上移動一個字符 |
l | 向右移動一個字符 |
#h | j | k | l | 向 左|下|上|右 移動一個字符 |
2.逐單詞移動光標
w | 跳轉到下一個單詞的首部 |
b | 跳轉到上一個單詞的首部 |
e | 跳轉到下一個單詞的尾部 |
#w | 跳轉到下#個單詞的首部 |
#b | 跳轉到上#個單詞的首部 |
#e |
跳轉到下#個單詞的尾部 |
3.行內跳轉
0 | 跳轉到絕對行首 |
$ | 跳轉到絕對行尾 |
^ | 跳轉到行首第一個非空白字符處 |
4.行間跳轉
gg | 跳轉到第一行 |
G | :$ | 跳轉到最後一行 |
#G | :# |
跳轉到第#行 |
五、翻屏
Ctrl+f |
向下翻一屏 |
Ctrl+b | 向上翻一屏 |
Ctrl+d | 向下翻半屏 |
Ctrl+u | 向上翻半屏 |
六、刪除
1.刪除字符
x | 刪除光標所在處的字符 |
#x | 刪除光標所在處及向後的共#個字符 |
2.刪除單詞
[#]dw | 刪除光標所在處的單詞 |
[#]db | 刪除光標所在處之前的一個單詞 |
[#]de | 刪除光標所在處之後的一個單詞,注意和dw之間的區別 |
3.刪除行
dd | 刪除光標所在處的行 |
#dd | 刪除當前光標所在行以及向下共#行 |
七、複製和粘貼
1.複製,使用y命令,和d命令的使用方法完全相同。
2.粘貼
使用d命令刪除的內容和使用y命令複製的內容都保存到了系統粘貼板上,使用p或者P命令能夠粘貼到指定的位置上。
(1). p命令:如果複製或刪除的是非整行則粘貼至當前光標所在字符的後面,如果複製或刪除的是整行,則會粘貼到當前光標所在行的下方。
(2). P命令:如果複製或刪除的是非整行則粘貼至當前光標所在字符的前面,如果複製或刪除的是整行,則會粘貼到當前光標所在行的上方。
八、修改內容
使用c命令能夠在編輯模式下刪除指定內容並切換到輸入模式,使用方法和d命令完全相同。
九、替換
r | 替換光標所在處的字符 |
R | 開啓替換模式,適用於大量的替換操作 |
十、撤銷和反撤銷
u | 撤銷上一次操作 |
#u | 撤銷最近#次操作 |
Ctrl+r | 反撤銷最近一次操作 |
十一、可視化
v | 按照字符選取 |
V | 按照行選取 |
十二、查找
/ | 向下查找 |
? | 向上查找 |
十三、替換
替換的命令語法和sed命令語法完全相同
ADDR1,ADDR2 s/PATTERN/string/gi
可以使用1,$指定全文範圍,但是可以使用%代替之。
十四、使用vim編輯多個文件
1.單屏顯示一個文件
vim FILE1 FILE2 FILE3...
:next | 切換到下一個文件 |
:prev | 切換到上一個文件 |
:last | 切換到最後一個文件 |
:first | 切換到第一個文件 |
:qa | 全部 |
2.分窗口編輯多個文件
vim -o | 水平分割顯示 |
vim -O | 垂直分割顯示 |
Ctrl+w,j | 光標移動到下面的窗口 |
Ctrl+w,k | 光標移動到上面的窗口 |
qa | 關閉所有窗口 |
十五、拆分窗口
Ctrl+w,s | 水平分割窗口 |
Ctrl+w,v | 垂直拆分窗口 |
Ctrl+w,j | 光標移動到下面的窗口 |
Ctrl+w,k | 光標移動到上面的窗口 |
qa | 關閉所有窗口 |
十六、將文件中部分內容保存到另外一個文件
:ADDR1,ADDR2 w FILEPATH
十七、將另外一個文件的內容填充到當前文件中
:r FILENAME
十八、和Shell交互
!COMMAND
十九、高級話題
1.顯示或者取消顯示行號
:set number | set nu | 顯示行號 |
:set nonumber | set nonu | 不顯示行號 |
2.顯示忽略或者區分字符大小寫
:set ignorecase | set ic | 忽略大小寫 |
:set noignorecase | set noic | 區分大小寫 |
3.設定自動縮進
:set autoindent | set ai | 設置自動縮進 |
:set noautoindent | set noai | 取消自動縮進 |
4.查找到的文本高亮顯示或者取消
:set hlsearch | 查找到的文本高亮顯示 |
:set nohlsearch | 取消查找到的文本高亮顯示 |
5.語法高亮
:syntax on |
語法高亮 |
:syntax off | 取消語法高亮 |
二十、配置文件
/etc/vimrc | 全局配置文件 |
~/.vimrc | 個人配置文件 |