1. 程式人生 > >vi / vim 命令集合

vi / vim 命令集合

屏幕 內容 文本 clas 處理 ctr 中間 .... gpo

  vim的命令太多了,不常用就會忘記,所以我決定把vim的各種命令整理下來,包括vim的插入刪除、光標移動、多窗口編輯、復制粘貼、查找替換、以及一些常用命令

刪除操作

dd  刪除當前行

ndd 刪除以當前行開始的n行(包括當前行)

dw  刪除到單詞尾

ndw 從光標處刪除到第三個單詞尾(不嚴格區分字段)

ndW 從光標處刪除到第三個單詞尾(嚴格區分字段)

    也可以dnw或dnW

x   刪除光標處的一個字符

d0  刪除到行首

d^   刪除到行首(保留行首的空格和Tab)

d$  刪除到行尾

D    刪除到行尾(與d$命令相同)

d回車 刪除2行

Ctrl+u   刪除輸入方式下所輸入的文本。

D     刪除到行尾

dl    刪除當前字符(與x命令功能相同)

db    刪除到某個單詞的開始位置

dW   刪除到某個以空格作為分隔符的單詞的結尾位置

dB    刪除到某個以空格作為分隔符的單詞的開始位置

d7B   刪除到前面7個以空格作為分隔符的單詞的開始位置

d4) 刪除到第四個語句的結尾位置

d(    刪除到某個語句的開始位置

d)   刪除到某個語句的結尾位置

d{    刪除到某個段落的開始位置

nd{    刪除到當前段落起始位置之前的第n個段落位置

d/text   刪除從文本中出現“text”中所指定字樣的位置,一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容

dfc    刪除從文本中出現字符“c”的位置,一直向前直到下一個該字符所出現的位置(包括該字符)之間的內容

dtc    刪除當前行直到下一個字符“c”所出現位置之間的內容

dL    刪除直到屏幕上最後一行的內容

dH   刪除直到屏幕上第一行的內容

dG    刪除直到工作緩存區結尾的內容

d1G   刪除直到工作緩存區開始的內容

c    刪除,然後進入INSERT MODE

cc    刪除當前行,然後進入INSERT MODE

移動光標

j  向下移動光標

k  向上移動光標

h  向左移動光標

l   向右移動光標

^   移動到該行第一個非空格的字符處

w   向前移動一個單詞,將符號或標點當作單詞處理

W    向前移動一個單詞,不把符號或標點當作單詞處理

b    向後移動一個單詞,把符號或標點當作單詞處理

B   向後移動一個單詞,不把符號或標點當作單詞處理

(    光標移至句首

)   光標移至句尾

{    光標移至段落開頭

}    光標移至段落結尾

H   光標移至屏幕頂行

M    光標移至屏幕中間行

L    光標移至屏幕最後行

0    到行首

$    到行尾

gg    到頁首

G    到頁末

行號+G 跳轉到指定行

n+    光標下移n行

n-    光標上移n行

fx    向右跳到本行字符x處(x可以是任何字符)

Fx    向左跳到本行字符x處(x可以是任何字符)

tx    和fx相同,區別是跳到字符x前 Tx 和Fx相同,區別是跳到字符x後

Ctrl-b   向上滾動一屏

Ctrl-f    向下滾動一屏

Ctrl-u    向上滾動半屏

Ctrl-d    向下滾動半屏

Ctrl-y    向上滾動一行

Ctrl-e    向下滾動一行

移動代碼

J    把下一行合並到當前行尾

選擇

V    選擇一行(繼續移動光標可以選擇多行)

Ctrl+v  進行矩形區域的選擇

進入和退出

vi filename    打開或新建文件,並將光標置於第一行首

vi +n filename       打開文件,並將光標置於第n行首

vi + filename      打開文件,並將光標置於最後一行首

vi +/pattern filename    打開文件,並將光標置於第一個與pattern匹配的串處

vi -r filename     在上次正用vi編輯時發生系統崩潰,恢復filename

vi filename ... filename    打開多個文件,依次進行編輯

ZZ    退出vi並保存

:q!    退出vi,不保存

:wq    退出vi並保存

插入

i   進入插入模式

o    在下一行插入新的一行

O    在上一行插入新的一行

a   在光標之後進入插入模式

A    在光標之前進入插入模式

查找及替換命令

r      替換一個字符

R      進入替換模式,直到Esc退出

/pattern    從光標開始處向文件尾搜索pattern

?pattern    從光標開始處向文件首搜索pattern

n    在同一方向重復上一次搜索命令

N    在反方向上重復上一次搜索命令

%    查找配對的括號

:s/p1/p2/g    將當前行中所有p1均用p2替代,若要每個替換都向用戶詢問則應該用gc選項

:n1,n2s/p1/p2/g    將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g    將文件中所有p1均用p2替換

:%s/p1/p2/g    將文件中所有p1用p2替換

rx      將當前光標下的字符更改為x(x為任意字符)

~      更改當前光標下的字符的大小寫

.*[]^%~$ 在Vi中具有特殊含義,若需要查找則應該加上轉義字符"\"

撤回與恢復

u  撤銷命令

U    修正之前對該行的操作

Ctrl+r  恢復( u的反操作)

多窗口編輯

:split xxx   上下分窗口打開xxx文件

:vsplit xxx   左右分窗口打開xxx文件

Ctrl+ww    光標跳轉到下一個窗口

復制與粘貼

y    復制選中內容

p     粘貼

yy    復制當前整行

nyy    復制當前行開始的n行內容

“+y   復制到系統剪切版

”+P   從系統剪切版粘貼

“+yG  從光標處復制到文件尾,復制到系統剪切版

一些命令

.      重復上一個命令

:set hlsearch    設置高亮

:set nohlsearch    關閉高亮

:set nu!     打開行號

不定期更新、希望有所幫助....

vi / vim 命令集合