linux下vim命令詳解

2021-06-20 08:55:05 字數 3519 閱讀 9121

:qx 

開始記錄巨集,並將結果存入暫存器x q 

退出記錄模式

@x 

稍微解釋一下,當在normal模式下輸入:qx後,你對文字的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模

式,然後輸入@x對剛才記錄下來的命令進行重複,此命令後可跟數字,表示要重複多少次,比如@x20,可以重複20次。這個在文字的批處理中是非常有用的。

同時編輯多個檔案

在vim眾多的外掛程式中,有乙個叫minibuffer的外掛程式,就是下面所說的標籤頁功能了,可以支援同時編輯多個檔案。

標籤命令

:tabefn 

在乙個新的標籤頁中編輯檔案fn

gt 切換到下乙個標籤頁

gt 切換到上乙個標籤頁

:tabr 

切換到第乙個標籤頁

:tabl 

切換到最後乙個標籤頁

:tabm[n] 

把當前tab移動到第n個tab之後

對,正如你所想象的那樣,跟eclipse, ue等的標籤頁是乙個意思!

視窗命令

ctrl+ws 

水平分割視窗

ctrl+ww 

切換視窗

ctrl+wq 

退出當前視窗(由於同時有多個檔案,此命令不會影響其他視窗)

ctrl+wv 

垂直分割視窗 其他

vim在儲存之前不會對檔案做實際的修改,只是載入到緩衝區中,對檔案的編輯其實是對緩衝區的編輯,直到:w時才會存入物理檔案。

:efile 

把file載入到新的緩衝區中

:bn 

跳轉到下乙個緩衝區

:bd 

刪除緩衝區(關閉檔案)

:spfn 

分割視窗,並將fn載入到新的視窗中

退出編輯器

:w 將緩衝區寫入檔案,即儲存修改

:wq 

儲存修改並退出

:x 儲存修改並退出

:q 退出,如果對緩衝區進行過修改,則會提示

:q! 

強制退出,放棄修改

查詢替換

/pattern 

向後搜尋字串pattern

?pattern 

向前搜尋字串pattern n 

下乙個匹配(如果是/搜尋,則是向下的下乙個,?搜尋則是向上的下乙個) n 

上乙個匹配(同上)

:%s/old/new/g 

搜尋整個檔案,將所有的old替換為new

:%s/old/new/gc 

搜尋整個檔案,將所有的old替換為new,每次都要你確認是否替換

複製貼上

dd 刪除游標所在行

dw 刪除乙個字(word) x 

刪除當前字元 x 

刪除前乙個字元 d 

刪除到行末

yy 複製一行,此命令前可跟數字,標識複製多行,如6yy,表示從當前行開始複製6行

yw 複製乙個字

y$ 複製到行末 p 

貼上貼上板的內容到當前行的下面 p 

貼上貼上板的內容到當前行的上面

]p 有縮排的貼上,vim會自動調節**的縮排

"a 將內容放入/存入a暫存器,可以支援多貼上板

附:比如常用的乙個暫存器就是系統暫存器,名稱為+,所以從系統貼上板貼上到vim中的命令為"+p,注意此處的+不表示操作符,二十乙個暫存器。

移動游標

在vim中移動游標跟其他的編輯器中有很大的區別,不過一旦學會了,就會飛速的在文字中移動了。

h,j,k,l 

上,下,左,右

ctrl-f 

上翻一頁

ctrl-b 

下翻一頁 % 

跳到與當前括號匹配的括號處,如當前在處 w 

跳到下乙個字首,按標點或單詞分割 w 

跳到下乙個字首,長跳,如end-of-line被認為是乙個字 e 

跳到下乙個字尾 e 

跳到下乙個字尾,長跳 b 

跳到上乙個字 b 

跳到上乙個字,長跳 0 

跳至行首,不管有無縮排,就是跳到第0個字元 ^ 

跳至行首的第乙個字元 $ 

跳至行尾

gg 跳至檔案的第一行

gd 跳至當前游標所在的變數的宣告處

[n]g 

跳到第n行,如0g,就等價於gg,100g就是第100行

fx 在當前行中找x字元,找到了就跳轉至 ; 

重複上乙個f命令,而不用重複的輸入fx

tx 與fx類似,但是只是跳轉到x的前乙個字元處

fx 跟fx的方向相反

),( 

跳轉到上/下乙個語句 * 

查詢游標所在處的單詞,向下查詢 # 

查詢游標所在處的單詞,向上查詢

`. 跳轉至上次編輯位置

在螢幕上移動 h 

移動游標到當前螢幕上最上邊的一行 m 

移動游標到當前螢幕上中間的一行 l 

移動游標到當前螢幕上最下邊的一行 書籤

ma 把當前位置存成標籤a

`a 跳轉到標籤a處 編輯

r 替換乙個字元 j 

將下一行和當前行連線為一行

cc 刪除當前行並進入編輯模式

cw 刪除當前字,並進入編輯模式

c$ 擦除從當前位置至行末的內容,並進入編輯模式 s 

刪除當前字元並進入編輯模式 s 

刪除游標所在行並進入編輯模式

xp 交換當前字元和下乙個字元 u 

撤銷ctrl+r  重做

~  切換大小寫,當前字元

g~iw 

切換當前字的大小寫

guiw 

將當前字變成大寫

guiw 

將當前字變成小寫

>> 

將當前行右移乙個單位

<< 

將當前行左移乙個單位(乙個tab符)

== 自動縮排當前行

插入模式 i 

從當前游標處進入插入模式 i 

進入插入模式,並置游標於行首 a 

追加模式,置游標於當前游標之後 a 

追加模式,置游標於行末 o 

在當前行之下新加一行,並進入插入模式 o 

在當前行之上新加一行,並進入插入模式

esc 

退出插入模式

可視模式

標記文字 v 

進入可視模式,單字元模式 v 

進入可視模式,行模式

ctrl+v 

進入可視模式,列模式,類似於ue的列模式 o 

跳轉游標到選中塊的另乙個端點 u 

將選中塊中的內容轉成大寫 o 

跳轉游標到塊的另乙個端點

aw 選中乙個字

ab 選中括號中的所有內容,包括括號本身

ab 選中{}括號中的所有內容

ib 選中括號中的內容,不含括號

ib 選中{}中的內容,不含{}

對標記進行動作

塊右移< 

塊左移 y 

複製塊 d 

刪除塊 ~ 

切換塊中內容的大小寫

linux下vim命令詳解

qx 開始記錄巨集,並將結果存入暫存器x q 退出記錄模式 稍微解釋一下,當在normal模式下輸入 qx後,你對文字的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模 式,然後輸入 x對剛才記錄下來的命令進行重複,此命令後可跟數字,表示要重複多少次,比如 x20,可以重複20次。這個在文字的批...

linux下vim命令詳解

qx 開始記錄巨集,並將結果存入暫存器x q 退出記錄模式 稍微解釋一下,當在normal模式下輸入 qx後,你對文字的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模 式,然後輸入 x對剛才記錄下來的命令進行重複,此命令後可跟數字,表示要重複多少次,比如 x20,可以重複20次。這個在文字的批...

linux下vim命令詳解

qx 開始記錄巨集,並將結果存入暫存器x q 退出記錄模式 稍微解釋一下,當在normal模式下輸入 qx後,你對文字的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模 式,然後輸入 x對剛才記錄下來的命令進 行重複,此命令後可跟數字,表示要重複多少次,比如 x20,可以重複20次。這個在文字的...