高級(jí)一些的編輯器,都會(huì)包含宏功能,,vim當(dāng)然不能缺少了,,在vim中使用宏是非常方便的: :qx 開始記錄宏,并將結(jié)果存入寄存器x q 退出記錄模式 @x 播放記錄在x寄存器中的宏命令 稍微解釋一下,,當(dāng)在normal模式下輸入:qx后,,你對(duì)文本的所有編輯動(dòng)作將會(huì)被記錄下來,再次輸入q即退出了記錄模 式,,然后輸入@x對(duì)剛才記錄下來的命令進(jìn)行重復(fù),,此命令后可跟數(shù)字,表示要重復(fù)多少次,比如@x20,,可以重復(fù)20次,。這個(gè)在文本的批處理中是非常有用的。 同時(shí)編輯多個(gè)文件 在vim眾多的插件中,,有一個(gè)叫minibuffer的插件,,就是下面所說的標(biāo)簽頁(yè)功能了,可以支持同時(shí)編輯多個(gè)文件,。 標(biāo)簽命令 :tabe fn 在一個(gè)新的標(biāo)簽頁(yè)中編輯文件fn gt 切換到下一個(gè)標(biāo)簽頁(yè) gT 切換到上一個(gè)標(biāo)簽頁(yè) :tabr 切換到第一個(gè)標(biāo)簽頁(yè) :tabl 切換到最后一個(gè)標(biāo)簽頁(yè) :tabm [N] 把當(dāng)前tab移動(dòng)到第N個(gè)tab之后 對(duì),,正如你所想象的那樣,跟eclipse, ue等的標(biāo)簽頁(yè)是一個(gè)意思,! 窗口命令 ctrl+w s 水平分割窗口 ctrl+w w 切換窗口 ctrl+w q 退出當(dāng)前窗口(由于同時(shí)有多個(gè)文件,,此命令不會(huì)影響其他窗口) ctrl+w v 垂直分割窗口 其他 vim在保存之前不會(huì)對(duì)文件做實(shí)際的修改,只是加載到緩沖區(qū)中,,對(duì)文件的編輯其實(shí)是對(duì)緩沖區(qū)的編輯,,直到:w時(shí)才會(huì)存入物理文件。 :e file 把file加載到新的緩沖區(qū)中 :bn 跳轉(zhuǎn)到下一個(gè)緩沖區(qū) :bd 刪除緩沖區(qū)(關(guān)閉文件) :sp fn 分割窗口,,并將fn加載到新的窗口中 退出編輯器 :w 將緩沖區(qū)寫入文件,,即保存修改 :wq 保存修改并退出 :x 保存修改并退出 :q 退出,如果對(duì)緩沖區(qū)進(jìn)行過修改,,則會(huì)提示 :q! 強(qiáng)制退出,,放棄修改 查找替換 /pattern 向后搜索字符串pattern ?pattern 向前搜索字符串pattern n 下一個(gè)匹配(如果是/搜索,則是向下的下一個(gè),,?搜索則是向上的下一個(gè)) N 上一個(gè)匹配(同上) :%s/old/new/g 搜索整個(gè)文件,,將所有的old替換為new :%s/old/new/gc 搜索整個(gè)文件,將所有的old替換為new,,每次都要你確認(rèn)是否替換 復(fù)制粘貼 dd 刪除光標(biāo)所在行 dw 刪除一個(gè)字(word) x 刪除當(dāng)前字符 X 刪除前一個(gè)字符 D 刪除到行末 yy 復(fù)制一行,,此命令前可跟數(shù)字,標(biāo)識(shí)復(fù)制多行,,如6yy,,表示從當(dāng)前行開始復(fù)制6行 yw 復(fù)制一個(gè)字 y$ 復(fù)制到行末 p 粘貼粘貼板的內(nèi)容到當(dāng)前行的下面 P 粘貼粘貼板的內(nèi)容到當(dāng)前行的上面 ]p 有縮進(jìn)的粘貼,vim會(huì)自動(dòng)調(diào)節(jié)代碼的縮進(jìn) "a 將內(nèi)容放入/存入a寄存器,,可以支持多粘貼板 附:比如常用的一個(gè)寄存器就是系統(tǒng)寄存器,,名稱為+,所以從系統(tǒng)粘貼板粘貼到vim中的命令為"+p,注意此處的+不表示操作符,,二十一個(gè)寄存器,。 移動(dòng)光標(biāo) 在vim中移動(dòng)光標(biāo)跟其他的編輯器中有很大的區(qū)別,不過一旦學(xué)會(huì)了,,就會(huì)飛速的在文本中移動(dòng)了,。 h,j,k,l 左,,下,上,,右 ctrl-f 上翻一頁(yè) ctrl-b 下翻一頁(yè) % 跳到與當(dāng)前括號(hào)匹配的括號(hào)處,,如當(dāng)前在{,則跳轉(zhuǎn)到與之匹配的}處 w 跳到下一個(gè)字首,,按標(biāo)點(diǎn)或單詞分割 W 跳到下一個(gè)字首,長(zhǎng)跳,,如end-of-line被認(rèn)為是一個(gè)字 e 跳到下一個(gè)字尾 E 跳到下一個(gè)字尾,,長(zhǎng)跳 b 跳到上一個(gè)字 B 跳到上一個(gè)字,長(zhǎng)跳 0 跳至行首,,不管有無(wú)縮進(jìn),,就是跳到第0個(gè)字符 ^ 跳至行首的第一個(gè)字符 $ 跳至行尾 gg 跳至文件的第一行 gd 跳至當(dāng)前光標(biāo)所在的變量的聲明處 [N]G 跳到第N行,如0G,,就等價(jià)于gg,,100G就是第100行 fx 在當(dāng)前行中找x字符,找到了就跳轉(zhuǎn)至 ; 重復(fù)上一個(gè)f命令,,而不用重復(fù)的輸入fx tx 與fx類似,,但是只是跳轉(zhuǎn)到x的前一個(gè)字符處 Fx 跟fx的方向相反 ),( 跳轉(zhuǎn)到上/下一個(gè)語(yǔ)句 * 查找光標(biāo)所在處的單詞,向下查找 # 查找光標(biāo)所在處的單詞,,向上查找 `. 跳轉(zhuǎn)至上次編輯位置 在屏幕上移動(dòng) H 移動(dòng)光標(biāo)到當(dāng)前屏幕上最上邊的一行 M 移動(dòng)光標(biāo)到當(dāng)前屏幕上中間的一行 L 移動(dòng)光標(biāo)到當(dāng)前屏幕上最下邊的一行 書簽 ma 把當(dāng)前位置存成標(biāo)簽a `a 跳轉(zhuǎn)到標(biāo)簽a處 編輯 r 替換一個(gè)字符 J 將下一行和當(dāng)前行連接為一行 cc 刪除當(dāng)前行并進(jìn)入編輯模式 cw 刪除當(dāng)前字,,并進(jìn)入編輯模式 c$ 擦除從當(dāng)前位置至行末的內(nèi)容,并進(jìn)入編輯模式 s 刪除當(dāng)前字符并進(jìn)入編輯模式 S 刪除光標(biāo)所在行并進(jìn)入編輯模式 xp 交換當(dāng)前字符和下一個(gè)字符 u 撤銷 ctrl+r 重做 . 重復(fù)上一個(gè)編輯命令 ~ 切換大小寫,,當(dāng)前字符 g~iw 切換當(dāng)前字的大小寫 gUiw 將當(dāng)前字變成大寫 guiw 將當(dāng)前字變成小寫 >> 將當(dāng)前行右移一個(gè)單位 << 將當(dāng)前行左移一個(gè)單位(一個(gè)tab符) == 自動(dòng)縮進(jìn)當(dāng)前行 插入模式 i 從當(dāng)前光標(biāo)處進(jìn)入插入模式 I 進(jìn)入插入模式,,并置光標(biāo)于行首 a 追加模式,置光標(biāo)于當(dāng)前光標(biāo)之后 A 追加模式,,置光標(biāo)于行末 o 在當(dāng)前行之下新加一行,,并進(jìn)入插入模式 O 在當(dāng)前行之上新加一行,并進(jìn)入插入模式 Esc 退出插入模式 可視模式 標(biāo)記文本 v 進(jìn)入可視模式,,單字符模式 V 進(jìn)入可視模式,,行模式 ctrl+v 進(jìn)入可視模式,列模式,,類似于UE的列模式 o 跳轉(zhuǎn)光標(biāo)到選中塊的另一個(gè)端點(diǎn) U 將選中塊中的內(nèi)容轉(zhuǎn)成大寫 O 跳轉(zhuǎn)光標(biāo)到塊的另一個(gè)端點(diǎn) aw 選中一個(gè)字 ab 選中括號(hào)中的所有內(nèi)容,,包括括號(hào)本身 aB 選中{}括號(hào)中的所有內(nèi)容 ib 選中括號(hào)中的內(nèi)容,不含括號(hào) iB 選中{}中的內(nèi)容,,不含{} 對(duì)標(biāo)記進(jìn)行動(dòng)作 > 塊右移 < 塊左移 y 復(fù)制塊 d 刪除塊 ~ 切換塊中內(nèi)容的大小寫 |
|