vim的使用說明

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:面向塊的可視化視圖







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章