高階一些的編輯器,都會包含巨集功能,vim當然不能缺少了,在vim中使用巨集是非常方便的:
:qx 開始記錄巨集,並將結果存入暫存器x
q 退出記錄模式
稍微解釋一下,當在normal模式下輸入:qx後,你對文字的所有編輯動作將會被記錄下來,再次輸入q即退出了記錄模
式,然後輸入@x對剛才記錄下來的命令進行重複,此命令後可跟數字,表示要重複多少次,比如@x20,可以重複20次。這個在文字的批處理中是非常有用的。
同時編輯多個檔案
在vim眾多的外掛程式中,有乙個叫minibuffer的外掛程式,就是下面所說的標籤頁功能了,可以支援同時編輯多個檔案。
標籤命令
:tabe fn 在乙個新的標籤頁中編輯檔案fn
gt 切換到下乙個標籤頁
gt 切換到上乙個標籤頁
:tabr 切換到第乙個標籤頁
:tabl 切換到最後乙個標籤頁
:tabm [n] 把當前tab移動到第n個tab之後
對,正如你所想象的那樣,跟eclipse, ue等的標籤頁是乙個意思!
視窗命令
ctrl+w s 水平分割視窗
ctrl+w w 切換視窗
ctrl+w q 退出當前視窗(由於同時有多個檔案,此命令不會影響其他視窗)
ctrl+w v 垂直分割視窗
其他vim在儲存之前不會對檔案做實際的修改,只是載入到緩衝區中,對檔案的編輯其實是對緩衝區的編輯,直到:w時才會存入物理檔案。
:e file 把file載入到新的緩衝區中
:bn 跳轉到下乙個緩衝區
:bd 刪除緩衝區(關閉檔案)
:sp fn 分割視窗,並將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 刪除塊
~ 切換塊中內容的大小寫
Vim命令詳解
所謂的命令列或命令模式,就是在最下面一行沒有顯示 insert 或者 replace 字樣的時候。通常在命令列中的指令有下面幾種 注意,當按下 時,游標會自動移動到螢幕的最下面一行!一般模式 移動游標 h或向左方向鍵 游標向左移動乙個字元 j或向下方向鍵 游標向下移動乙個字元 k或向上方向鍵 游標向...
vim 命令詳解
命令 簡單說明 w 儲存編輯後的檔案內容,但不退出vim編輯器。這個命令的作用是把記憶體緩衝區中的資料寫到啟動vim時指定的檔案中。w 強制寫檔案,即強制覆蓋原有檔案。如果原有檔案的訪問許可權不允許寫入檔案,例如,原有的檔案為唯讀檔案,則可使用這個命令強制寫入。但是,這種命令用法僅當使用者是檔案的屬...
vim 命令詳解
vi visual inte ce 視覺化介面 vim vi improved vi增強版 全屏編輯器,模式化編輯器 vim模式 模式轉換 i 在當前游標所在字元的前面,轉為輸入模式 a 在當前游標所在字元的後面,轉為輸入模式 o 在當前游標所在行的下方,新建一行,並轉為輸入模式 i 在當前游標所在...