這是我自己csdn博客上的整理,拿出來給大家分享一下。

一、大範圍的移動:

* 當遊標停留在一個單詞上,* 鍵會在文件內搜索該單詞,並跳轉到下一處;

當遊標停留在一個單詞上,# 在文件內搜索該單詞,並跳轉到上一處;

(/) 移動到 前/後 句 的開始;

{/} 跳轉到 當前/下一個 段落 的開始。

g_ 到本行最後一個不是 blank 字元的位置。

fa 到下一個為 a 的字元處,你也可以fs到下一個為s的字元。

t, 到逗號前的第一個字元。逗號可以變成其它字元。

3fa 在當前行查找第三個出現的 a。

F/T 和 f 和 t 一樣,只不過是相反方向;

gg 將遊標定位到文件第一行起始位置;

G 將遊標定位到文件最後一行起始位置;

NG或Ngg 將遊標定位到第 N 行的起始位置。

在屏幕中找到需要的 一頁 時,可以用下面的命令快速移動遊標:

H 將遊標移到屏幕上的起始行(或最上行);

M 將遊標移到屏幕中間;

L 將遊標移到屏幕最後一行。

同樣需要注意字母的大小寫。H 和 L 命令還可以加數字。如 2H 表示將遊標移到屏幕的第2行,3L 表示將遊標移到屏幕的倒數第3行。

當將遊標移到所要的行是,行內移動 遊標可以用下面的命令來實現:

w 右移遊標到下一個字的開頭;

e 右移遊標到一個字的末尾;

b 左移遊標到前一個字的開頭;

0 數字0,左移遊標到本行的開始;

$ 右移遊標,到本行的末尾;

^ 移動遊標,到本行的第一個非空字元。

二、搜索匹配

和許多先進的編輯器一樣,Vim 提供了強大的字元串搜索功能。要查找文件中指定字或短語出現的位置,可以用Vim直接進行搜索,而不必以手工方式進行。搜索方法是:鍵入字元 / ,後面跟以要搜索的字元串,然後按回車鍵。編輯程序執行正向搜索(即朝文件末尾方向),並在找到指定字元串後,將遊標停到該字元串的開頭;鍵入 n 命令可以繼續執行搜索,找出這一字元串下次出現的位置。用字元 ? 取代 / ,可以實現反向搜索(朝文件開頭方向)。例如:

/str1 正向搜索字元串 str1;

n 繼續搜索,找出 str1 字元串下次出現的位置;

N 繼續搜索,找出 str1 字元串上一次出現的位置;

str2 反向搜索字元串 str2 。

三、替換和刪除

Vim常規的刪除命令是 d、 x (前者刪除 行 ,後者刪除 字元 ),結合Vim的其他特性可以實現基礎的刪除功能。將遊標定位於文件內指定位置後,可以用其他字元來替換遊標所指向的字元,或從當前遊標位置刪除一個或多個字元或一行、多行。例如:

rc 用 c 替換遊標所指向的當前字元;

nrc 用 c 替換遊標所指向的前 n 個字元;

5rA 用 A 替換遊標所指向的前 5 個字元;

x 刪除遊標所指向的當前字元;

nx 刪除遊標所指向的前 n 個字元;

3x 刪除遊標所指向的前 3 個字元;

dw 刪除遊標右側的字;

ndw 刪除遊標右側的 n 個字;

3dw 刪除遊標右側的 3 個字;

db 刪除遊標左側的字;

ndb 刪除遊標左側的 n 個字;

5db 刪除遊標左側的 5 個字;

dd 刪除遊標所在行,並去除空隙;

ndd 刪除(剪切) n 行內容,並去除空隙;

3dd 刪除(剪切) 3 行內容,並去除空隙;

其他常用的刪除命令有:

d$ 從當前遊標起刪除字元直到行的結束;

d0 從當前遊標起刪除字元直到行的開始;

J 刪除本行的回車符(CR),並和下一行合併。

四、字元串搜索

在 編輯模式 講過字元串的搜索,此處的 命令模式 也可以進行字元串搜索,給出一個字元串,可以通過搜索該字元串到達指定行。如果希望進行正向搜索,將待搜索的字元串置於兩個/ 之間;如果希望反向搜索,則將字元串放在兩個 ? 之間。例如:

:/str/ 正向搜索,將遊標移到下一個包含字元串 str 的行

:?str? 反向搜索,將遊標移到上一個包含字元串 str 的行

:/str/w file 正向搜索,並將第一個包含字元串 str 的行寫入 file 文件

:/str1/,/str2/w file 正向搜索,並將包含字元串 str1 的行至包含字元串 str2 的行寫

五、正文替換

利用 :s 命令可以實現字元串的替換。具體的用法包括:

:%s/str1/str2/ 用字元串 str2 替換行中首次出現的字元串 str1

:s/str1/str2/g 用字元串 str2 替換行中所有出現的字元串 str1

:.,$ s/str1/str2/g 用字元串 str2 替換正文當前行到末尾所有出現的字元串 str1

:1,$ s/str1/str2/g 用字元串 str2 替換正文中所有出現的字元串 str1

:g/str1/s//str2/g 功能同上

:m,ns/str1/str2/g 將從m行到n行的str1替換成str2

六、分屏

普通的Vim模式,打開一個Vim程序只能查看一個文件,如果想同時查看多個文件,就需要用到Vim分屏與標籤頁功能。

Vim的分屏,主要有兩種方式:上下分屏(水平分屏)和左右分屏(垂直分屏),在命令模式分別敲入以下命令即可:

:split(可用縮寫 :sp) 上下分屏;

:vsplit(可用縮寫 :vsp) 左右分屏。

另外,也可以在終端裏啟動vim時就開啟分屏操作:

vim -On file1 file2... 打開 file1 和 file2 ,垂直分屏

vim -on file1 file2... 打開 file1 和 file2 ,水平分屏

理論上,一個Vim窗口,可以分為多個Vim屏幕,切換屏幕需要用鍵盤快捷鍵,命令分別有:

Ctrl+w+h 切換到當前分屏的左邊一屏;

Ctrl+w+l 切換到當前分屏的右邊一屏;

Ctrl+w+j 切換到當前分屏的下方一屏;

Ctrl+w+k 切換到當前分屏的上方一屏。

即鍵盤上的h,j,k,l 四個Vim專用方向鍵,配合Ctrl鍵和w鍵(window的縮寫),就能跳轉到目標分屏。另外,也可以直接按 Ctrl+w+w 來跳轉分屏,不過跳轉方向則是在當前Vim窗口所有分屏中,按照逆時針方向跳轉。

下面是改變尺寸的一些操作,主要是高度,對於寬度你可以使用 [Ctrl+W <] 或是 [Ctrl+W>] ,但這可能需要最新的版本才支持。

Ctrl+W = 讓所有的屏都有一樣的高度;

Ctrl+W + 增加高度;

Ctrl+W - 減少高度。

七、標籤頁

Vim的標籤(Tab)頁,類似瀏覽器的標籤頁,一個標籤頁打開一個Vim的窗口,一個Vim的窗口可以支持N個分屏。

在Vim中新建一個標籤的命令是:

:tabnew

如果要在新建標籤頁的同時打開一個文件,則可以在命令後面直接附帶文件路徑:

:tabnew filename

Vim中的每個標籤頁有一個唯一的數字序號,第一個標籤頁的序號是0,從左向右依次加一。關於標籤頁有一系列操作命令,簡介如下:

:tN[ext] 跳轉到上一個匹配的標籤

:tabN[ext] 跳到上一個標籤頁

:tabc[lose] 關閉當前標籤頁

:tabdo 為每個標籤頁執行命令

:tabe[dit] 在新標籤頁裏編輯文件

:tabf[ind] 尋找 "path" 裏的文件,在新標籤頁裏編輯之

:tabfir[st] 轉到第一個標籤頁

:tabl[ast] 轉到最後一個標籤頁

:tabm[ove] N 把標籤頁移到序號為N位置

:tabnew [filename] 在新標籤頁裏編輯文件

:tabn[ext] 轉到下一個標籤頁

:tabo[nly] 關閉所有除了當前標籤頁以外的所有標籤頁

:tabp[revious] 轉到前一個標籤頁

:tabr[ewind] 轉到第一個標籤頁


推薦閱讀:
相關文章