linux下vim命令詳解


 

高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的:

:qx     開始記錄宏,並將結果存入寄存器x
q     退出記錄模式
@x     播放記錄在x寄存器中的宏命令
稍微解釋一下,當在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     刪除塊
~     切換塊中內容的大小寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM