vi vim 命令整理

2021-08-20 09:00:33 字數 4514 閱讀 1424

重複次數:可以通過在命令前鍵入乙個數字來重複執行命令,這個數字稱為重複次數。

如:10j 游標向下移動10個位置。

^ 代表

除非特殊宣告,以下命令均在命令模式下。

退出命令

效果:q

退出:q!

不檢查是否儲存了資料,直接退出

:x儲存並退出

zz按下並保持,按z兩次,儲存並退出

ps:!具有強制意味,忽略檢查和錯誤,強制執行。

如果修改了資料,並使用:q命令退出,則會顯示警告資訊,並不會直接退出。

移動游標

當前行:游標所在的行

命令效果

h將游標向左移動乙個位置

j將游標向下移動乙個位置

k將游標向上移動乙個位置

l將游標向右移動乙個位置

將游標向左移動乙個位置

將游標向下移動乙個位置

將游標向上移動乙個位置

將游標向右移動乙個位置

將游標向左移動乙個位置

將游標向右移動乙個位置

-將游標移動到上一行的開頭

+將游標移動到下一行的開頭

將游標移動到下一行的開頭

0將游標移動到當前行的開頭

$將游標移動到當前行的末尾

^將游標移動到當前行的第乙個非空白符的字元上

w將游標移動到下乙個單詞的詞首

e將游標移動到下乙個單詞的詞尾

b將游標移動到上乙個單詞的詞首

w同w,忽略標點符號

e同e,忽略標點符號

b同b,忽略標點符號

)移動到下乙個句子句首

(移動到上乙個句子句首

}移動到下乙個段落

{移動到上乙個段落

h將游標移動到螢幕頂部

m將游標移動到螢幕中間

l將游標移動到螢幕最後一行

ps:句子:乙個字串,以句號,逗號,問號,或感嘆號結尾,後面至少跟兩個空格或乙個新行字元。

段落:以乙個空白行開頭,並以乙個空白行結束的一塊文字區域。

在編輯緩衝區移動

命令效果

^f向下移動一屏

^b向上移動一屏

^d向下移動半屏

^u向上移動半屏

ps:在對^d和^u前鍵入數字時,設定的是應該跳轉的行數,並且會一直保持這個設定到改變量字。

跳轉到前一位置

命令效果

``回到前一位置

m後加乙個字母,如ma,即用這個字母標記該行

`後跟指定行的標記名稱,如`a,跳轉到標記該行的準確位置

'後跟指定行的標記名稱,如'a,跳轉到標記行的行首

搜尋命令

效果/pattern

pattren為希望搜尋的模式,游標將跳轉到接下來包含該模式的行上

/重複上一模式向前搜尋

?pattern

pattern為希望搜尋的模式,游標將跳轉到之前包含該模式的行上

?重複上一模式向後搜尋

n沿和之前相同的方向進行搜尋

n沿和之前相反的方向進行搜尋

ps:搜尋結果高亮顯式

取消高亮:noh

使用行號

命令效果

:set number

顯示行號

^g顯示檔名稱,位置(行,百分比)

行號g跳轉到指定行

:行號跳轉到指定行

gg跳轉到第一行

插入文字

命令效果

i改變到輸入模式:在當前游標位置前插入資料

a改變到輸入模式:在當前游標位置後插入資料

i改變到輸入模式:在當前行開頭插入資料

a改變到輸入模式:在當前行末尾插入資料

o改變到輸入模式:在當前行下插入一行

o改變到輸入模式:在當前行行插入一行

^v控制字元

在輸入模式下,插入控制字元(如^v^h  插入乙個退格)

修改文字

命令效果

r後跟新字元,將當前字元更換為新字元

r改變到replace模式,隨後鍵入的每個字元都將替換當前行上游標後(包括游標)的乙個字元

s改變到輸入模式,多個字元替代乙個字元

c替換從當前游標位置到這一行末尾的所有字元

s替換一整行

cc替換一整行

c後跟游標移動命令,替換從游標當前位置到移動命令所指定位置的所有字元。如c5w,替換5個單詞

:s/pattern/replace

替換當前行上pattern的第乙個匹配項為replace,可在;和s中指定行號,以 , 分隔兩個行號,可表示範圍

:s/pattern/replace/g

替換當前行上所有的匹配項

:s/pattern/replace/c

替換前需確認

ps:.  代表當前行

$  代表編輯緩衝區的最後一行

%  代表編輯緩衝區所有的行

刪除文字

命令效果

x刪除當前游標處的字元

x刪除當前游標左邊的字元

d刪除從當前游標到本行末尾的字元

d後跟游標移動命令,刪除從當前游標到游標移動命令指定位置的字元

dd刪除當前行,游標移動到下一行行首

:行號d

刪除指定行

:行號1,行號2d

刪除行號1,到行號2的行

^w輸入模式下,刪除游標之前的乙個單詞

^u輸入模式下,刪除游標之前的一行

ps:10dd,刪除從當前行開始10行的文字

撤銷或重複改變

命令效果uu

恢復當前行.p

複製上一次刪除的內容,插入到游標之後

p複製上一次刪除的內容,插入到游標之前

編號p將編號緩衝區中相應編號的內容插入當前行的下面

編號p將編號緩衝區中相應編號的內容插入當前行的上面

ps:編號緩衝區:vi將刪除內容儲存在編號緩衝區中,並從1~9編號。

組合命令:

xp  調換兩個字元

deep  調換兩個單詞

ddp  調換兩行

複製文字

命令效果

y後接游標移動命令,複製從當前游標到游標指定位置的字元

yy複製整行

y複製整行

:行號1co行號2

複製行號1的行到行號2的行下面

:行號1,行號2co行號3

複製行號1到行號2之間的行到行號的行3下面

ps:複製的文字儲存在無名緩衝區中。可以使用p取出。

10yy,複製從當前行開始10行的內容。

移動文字

命令效果

:行號1m行號2

移動行號1的行到行號2的行下面

:行號1,行號2m行號3

移動行號1到行號2之間的行到行號3的行下面

改變字母大小寫

命令效果

~改變游標所在字元的大小寫

ps:若游標所在字元是非字母,游標像前移動乙個位置,不進行改變。

10~  改變從游標所在字元開始10個字元的大小寫。

連線行命令效果j

把當前行和下一行合併成乙個長行

ps:當vi在連線行時,會在合適的位置自動地插入空格,即,在句子末尾插入兩個空格。

3j  連線當前行開始3行為乙個長行。

輸入shell命令

命令效果

:!命令

將命令傳送給shell執行,當命令結束後,控制返回vi

;!!重複執行最近一條shell命令

:sh暫停vi,並啟動乙個新的預設shell副本

插入檔案資料

命令效果

:行號r 檔案

將檔案內容插入到行號的行下面

插入shell命令輸出

命令效果

:行號r !命令

將命令的輸出插入到行號的行下面

ps:行號未指定,則為當前行

將資料寫入檔案

命令效果

:w將資料寫入原始檔案

;w 檔案

將資料寫入新檔案

:w! 檔案

覆蓋乙個已有的檔案

:w>>檔案

將資料追加到指定的檔案

切換到乙個新檔案

命令效果

:e 檔案

切換到新檔案進行編輯

:e!重新編劇當前檔案,忽略自動檢查

:e! 檔案

編輯指定檔案,忽略自動檢查

使用縮寫

命令效果

:ab 縮寫 縮寫的原文

在位於輸入模式時,每當輸入縮寫(作為單獨的單詞),就會替換為縮寫原文

ps:可以為經常使用的單詞或表示式建立縮寫,縮寫必須為乙個單詞(中間無空格),縮寫原文可任意。

如::ab eg exceptionally gifted巨集命令

效果:map 單字元 命令

建立命令模式中使用的單字元命令,自己定製的單字元命令

:map

顯示所有巨集

:map #數字 命令

#數字代指f1~f10(#1指f1,#0指f10),用來建立乙個巨集,並賦給功能鍵

ps:如果巨集的名稱是乙個已經擁有其他含義的字元(如:x刪除游標所在字元),那麼巨集將替換掉這個字元的含義。

vi vim常用命令整理

文字目標 修改刪除 複製1個單詞 cwdw yw2個單詞 c2w or 2cw 2dw or d2w 2yw or y2w 向後3個單詞 3cw or c3w 3dw or 3wd 3cy or c3y 一整行cc ddyy or y 游標位置到行尾 c or c d or d y 游標位置到行首 ...

vi vim 命令手冊

本手冊介紹了 vi vim 編輯器的主要功能。為了便於查詢,這裡一併給出了命令和它們的定製引數。在使用這個手冊之前,必須注意以下幾點 很多命令可以與重複因子一起使用 vi vim 不是vi 把乙個區域 region 定義為乙個連續的文字塊,許多命令與文字塊有關 乙個區域可以用v定義,後面跟乙個游標移...

vi vim 刪除命令

刪除一行 dd 刪除乙個單詞 游標之後的單詞剩餘部分 dw 刪除當前字元 x 游標之後的該行部分 d 文字刪除 dd 刪除一行 d 刪除以當前字元開始的一行字元 ndd 刪除以當前行開始的n行 dw 刪除以當前字元開始的乙個字 ndw 刪除以當前字元開始的n個字 d 與d 同義 d 刪除到下一句的開...