vim的使用說明
vim是一款功能豐富而強大的文本編輯器,vim是從 vi 發展出來的一個文本編輯器。其代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛的使用。
vim的使用非常方便,使用方法為:vim [options] [file ..]
1、vim可以對指定文件進行編輯,也可以直接啟動vim編輯器進行編輯,對于打開指定文件編輯時可以加選項進行更方便的操作,常用選項如下:
+#:#表示數字,打開文件時光標處于第#行的行首
+/pattern:打開文件時,光標處于第一個被pattern匹配到的行的行首
vim + file:直接打開file文件,并且光標處于最后一行的行首
vim -b file:以二進制方式打開file文件
vim -d file1 fiel2:可以同時打開file1和fiel2,并進行比較
vim -m file:以只讀的方式打開file文件
2、vim工作過程中有三種模式,分別為:
命令模式:該模式下鍵盤的操作常被理解為編輯命令
插入模式:該模式下可以輸入文本內容
末行模式:vim的內置命令行接口,該模式下可以執行vim的內置命令
三種模式之間的切換:
(1)默認情況下進入vim時是命令模式,從命令模式到插入模式的切換方式有多種,分別為
i:在光標所在處輸入
I:在光標所在行的行首輸入
a:在光標所在處的后面輸入
A:在光標所在行的行尾輸入
o:在光標所在行的下方打開一個新行輸入
O:在光標所在行的上方打開一個新行輸入
(2)命令模式到末行模式:直接輸入冒號(:)即可切入到末行模式
(3)末行模式到命令模式:按ESC鍵切換
(4)插入模式到命令模式:按ESC鍵切換
(5)插入模式不能直接切換到末行模式,需要先切換到命令模式然后在切換到末行模式
3、若要退出vim編輯,必須先切換到命令模式下才能退出,退出方式有命令退出和快捷鍵退出兩種,實現方式分別為:
命令退出:先輸入冒號進入末行模式,然后執行相關命令退出,命令有以下幾種:
q:退出
q!:不保存強制退出
wq:保存并退出
wq!:強制保存并退出
x:保存并退出
w /path/to/somefile:另存到指定文件中
快捷鍵退出:
ZZ:保存并退出
ZQ:不保存退出
4、命令模式下光標的移動
(1)字符間的跳轉
h鍵或左鍵:向左移動
l鍵或右鍵:向右移動
k鍵或上鍵:向上移動
j鍵或下鍵:向下移動
同時h、j、k、l還支持數字跳轉:
#{j|j|k|l}:#表示數字,跳轉#個字符,如5j表示向下移動5個字符
(2)單詞間的跳轉,支持數字跳轉
w:下一個單詞的詞首
e:當前或下一個單詞的詞尾
b:當前或前一個單詞的詞首
(3)行首行尾跳轉
^:跳轉到行首的第一個非空白字符
$:跳轉到行尾
0:跳轉到行首
(4)行間跳轉
#G:#代表數字,直接跳轉到第#行的行首
G:跳轉至最后一行的行首
1G或gg:跳轉至第一行的行首
(5)句子間跳轉(以點(.)作為分隔符),支持數字跳轉
(:跳轉到上一句
):跳轉到下一句
(6)段落間跳轉(以空白行作為分隔符),支持數字跳轉
{:跳轉到上一段
}:跳轉到下一段
(7)翻屏操作
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
5、命令模式的操作(以下#代表數字)
x:刪除光標所在處的字符
#x:刪除光標所在處起的#個字符
d:刪除命令,結合光標跳轉字符使用,刪除跳轉范圍內的字符,如w,b,e,$,0,^
D:從當前光標所在位置一直刪除到行尾,等于d$
dd:刪除光標所在行
#dd:刪除光標所在行開始向下的#行
p:粘貼
p(小寫):緩沖區存的如果是整行,則粘貼于當前光標所在行的下方,否則,粘貼至當前光標所在處的后面
P(大寫):緩沖區存的如果是整行,則粘貼于當前光標所在行的上方,否則,粘貼至當前光標所在處的前面
y:復制,結合光標跳轉字符使用,復制跳轉范圍內的字符,如w,b,e,$,0,^
Y或yy:復制光標所在行的整行
#yy:復制光標所在行開始向下的#行
c:修改,所謂修改就是先刪除,然后再轉換為插入模式。結合光標跳轉字符使用,刪除跳轉范圍內的字符,如w,b,e,$,0,^
cc或C:刪除光標所在行的整行并切換到插入模式
#cc:刪除光標所在行開始向下的#行并切換到插入模式
~:將光標所在處的小寫字符轉換成大寫字母
r:替換光標所在處的字符,一次只能替換一個字符
R:切換到REPLACE模式,可以替換多個字符,按esc退出該模式
u:撤銷此前的操作
#u:撤銷此前的#次操作
Ctrl+r:撤銷此前的撤銷操作
.:重復前一個操作
#.:重復前一個操作#次
6、末行模式的操作
(1)內容定界(以下#表示數字)
#:第幾行,如在末行模式輸入#,然后按回車光標會直接跳轉到第#行的行首
#,#:從左側第#行到右側第#行之間的內容
#,+#:從左側第#行開始,向下再加上右側#行之間的內容
.:當前行
$:最后一行
%:全文,相當于1,$
/pat1/,/pat2/:從第一次被pat1模式匹配到的行開始,到第一次被pat2模式匹配到的行之間所有內容
#,/pat1/:從第#行開始,到第一次被pat1模式匹配到的行之間所有內容
/pat1/,$:從第一次配pat1模式匹配到的行開始,到最后一行之間所有內容
內容界定的使用可以在后面跟上編輯命令,如c、d、y、s等,作用是對指定范圍的內容進行相關編輯操作,也有些編輯命令需要放在內容界定的前面,如w、r
w /path/to/somefile:將選定范圍內的內容保存至指定文件中
r /path/from/somefile:將指定文件中的內容讀取到指定位置
(2)查找
/PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
在查找過程中如果多個匹配項,可使用n或N來輔助查找
n:與命令同方向查找下一個
N:與命令反方向查找下一個
(3)查找并替換
s:在末行模式下完成查找替換操作,使用方法為:
內容界定s/查找模式/要替換成的內容/修飾符
查找模式可用正則表達式表示,要替換的內容不能用模式,但可以引用前面查找模式的內容,如\1,\2等向后引用,還可以使用&,表示引用查找的整個內容,修飾符有一下幾種:
i:忽略大小寫
g:全局替換,默認情況下,每一行只替換第一次出現的內容
gc:全局替換,每次替換前詢問
查找替換中的分隔符/可以用其他沒有在模式中出現過的字符代替,如s@@@gi、s###gj等
7、多文件模式操作(一次打開多個文件)
:next:切換到下一個文件
:prev:切換到前一個文件
:first:切換到第一個文件
:last:切換到最后一個文件
:wqall:保存所有文件并退出
:qall:退出所有文件
:wall:保存所有文件
8、多窗口操作
多個文件:
vim -o file1 file2…:水平分割多個文件
vim -O file1 file2…:垂直分割多個文件
單文件下:
Ctrl+w,s:水平分割單個文件
Ctrl+w,v:垂直分割單個文件
多窗口間的操作:
Ctrl+w,Arrow(上、下、左、右):窗口間切換
Ctrl+w,q:取消相鄰窗口
Ctrl+w,o:取消全部窗口
9、窗口屬性定義
:set nu:顯示行號
:set nonu:取消顯示行號
:set ai:啟用自動縮進功能
:set noai:取消自動縮進功能
:set ic:忽略字符的大小寫
:set noic:不忽略字符的大小寫
:set sm:括號匹配
:set nosm:取消括號匹配
;syntax on:語法高亮
:syntax off:取消語法高亮
:set hlsearch:搜索高亮
:set nohlsearch:取消搜索高亮
在末行模式中更改窗口屬性只對當前vim進程有效,可通過修改配置文件永久生效,配置文件如下:
全局配置文件:/etc/vimrc
單個用戶配置文件:~/.vimrc
10、可視化模式
在命令模式下輸入字母v可進入可視化模式,在該模式下可以與移動鍵結合使用(如w,(,{,$,箭頭等),對選定的內容可做刪除、復制、過濾、搜索替換等操作。
v:面向字符的可視化視圖
V:面向行的可視化視圖
Ctrl+v:面向塊的可視化視圖
原創文章,作者:苦澀咖啡,如若轉載,請注明出處:http://www.www58058.com/33004