標籤:strong 檔案 for ar 代碼 new c++ ad
1切換插入模式:
命令模式下
a 游標之後進行插入
A 游標所在行尾進行插入
i 游標前開始進行插入
I 游標所在行首進行插入
o 游標所在行後新插入一空行進行插入
O 游標所在行前新插入一空行進行插入
插入模式下按ESC鍵返回命令模式
2儲存檔案
命令模式下
:w 儲存檔案
:wq 儲存並退出vim
:w 檔案名稱1 將檔案另存新檔檔案名稱1
:ZZ 儲存檔案並退出,相當於:wq
:X 儲存檔案並退出,相當於:wq
:wq! 檔案所有者強制儲存唯讀檔案,如果不是檔案所有者進行此操作,不能成功
:q! 退出不儲存檔案
3 複製(yank)
命令模式下
yy或 Y 複製游標所在整行
y^ 複製到游標所在行行首,不包括游標位置字元(複製的只是字串,沒有分行符號,所以粘貼時是在游標所在行粘貼)
y$ 複製到游標所在行行尾,包括游標位置字元
yw 複製一個單詞,游標必須在單詞首部(若沒在單詞首部,則複製游標所在字元到該單詞結束,如what,游標定在h, 則是複製hat)
yG 複製到檔案尾(游標所在行至檔案最後一行,包含游標所在行)
y1G 複製到檔案首(游標所在行至檔案最後首行,包含游標所在行)
nyy 複製游標所在行開始的n行
4 粘貼
命令模式下
p (小寫)粘貼到游標後
P (大寫)粘貼到游標前
5 刪除
命令模式下
x (小寫)刪除游標當前字元,即游標所在行
X (大寫)刪除游標前一個字元
dd (小寫)刪除游標所在整行
dw (小寫)刪除游標所在處一個單詞,刪除游標所在及之後的單詞剩餘部分,下一個單詞會自動向前移,佔用刪除部分的位置
dG 刪除游標所在整行到檔案尾
dgg 刪除游標所在整行到檔案首
D (大寫)刪除到行尾,包含游標處的字元
d$ 與D效果相同
d0 刪除到行首,不包含游標處的字元
d^ 與d0效果相同
:n1,n2d 命令模式下,刪除n1-n2行
6撤銷
命令模式下
u (小寫)無限次儲存前撤銷(大概500多次)
ctrl+r redo
7 字元替換
命令模式下
r (小寫)替換游標所在處一個字元
R (大寫)開始替換,直到按ESC鍵退出替換,相當於按下鍵盤上到insert鍵
cc (小寫)取代游標所在整行
S (大寫)與ss(小寫)效果相同
C (大寫)取代到行尾,包括游標處字元
c0 (小寫,數字0)取代到行首,不包括游標處字元
c^ (小寫)與c0(小寫,數字0)效果相同
8 字串尋找和替換
命令模式下
/string 從游標處開始向下開始尋找字串string
/尋找模式下按n(小寫)尋找下一個,按N(大寫)尋找上一個
?string 從游標處開始向上開始尋找字元從string
?尋找模式下按n(小寫)尋找上一個,按N(大寫)尋找下一個
* 向下完整匹配游標下的單詞
# 向上完整匹配游標下的單詞
g* 向下部分匹配游標下的單詞
g# 向上部分匹配游標下到單詞
:set ic 尋找時,忽略大小寫
:set noic 取消尋找時忽略大小寫
:f string (小寫f與string有空格)搜尋一行中匹配到的string
:%s/old/new/g 全文將old替換為new,不提示
:%s/old/new/c 全文將old替換為new,提示是否替換
:s/old/new/g 游標當前行將old替換為new,不提示
:s/old/new/c 游標當前行將old替換為new,提示是否替換
:n1,n2s/old/new/g n1-n2行中,將old替換為new,不提示
:n1,n2s/old/new/c n1-n2行中,將old替換為new,提示是否替換
在替換文本old或new中有/字元時,需要用\進行轉義
9 顯示行號
命令模式下
:set nu(mber) 顯示行號
:set nonu 取消顯示行號
:set nu! 取消顯示行號
10 簡單排版
命令模式下
:ce(nter) 置中顯示光線標所在行
:ri(ght) 靠右顯示光線標所在行
:le(ft) 靠左顯示光線標所在行
命令模式下
J 將游標所在下一行合并到游標所在行
>> 游標所在行增加縮排(一個tab)
<< 游標所在行減少縮排(一個tab)
n>> 游標所在行開始的n行增加縮排
n<< 游標所在行開始的n行減少縮排
11 游標移動方式
命令模式下
H (大寫,Head)移動到螢幕頂第一個非空白字元
M (大寫,Mid)移動到螢幕中間第一個非空白字元
L (大寫,Last)移動到螢幕底部第一個非空白字元
( (左小括弧)移動到上一個句子首
) (右小括弧)移動到下一個句子首
{ (左大括弧)移動到上一個段落首
} (右大括弧)移動到下一個段落首
% 游標跳轉到匹配到括弧處,支援{}()
[[ 游標跳轉到代碼塊開頭即{處,要求{獨佔一行
gD 游標跳轉到局部變數定義處
’’ (兩個單引號)游標跳轉到上次停靠處
h (小寫)游標左移一個字元,相當於左方向鍵
l (小寫)游標右移一個字元,相當於右方向鍵
k (小寫)游標垂直上移一行,相當於上方向鍵
j (小寫)游標垂直下移一行,相當於下方向鍵
ctrl+f (forword)向下整頁翻頁
ctrl+b (backward)向上整頁翻頁
ctrl+u (up)向上翻半頁
ctrl+d (down)向下翻半頁
zz (小寫)讓游標所在行居於螢幕中央
zt (小寫)讓游標所在行居於螢幕最頂部
zb (小寫)讓游標所在行居於螢幕底部
命令模式下
:n 指定移動到第n行
12數字首碼與重複
命令模式下
將數字加在命令前,標示該命令處理幾次,如5dd標示執行5次dd(刪除游標所在整行)操作。
. (英文句號)為命令重複命令,按下一次執行一次上一次執行過的命令。
13 瀏覽目錄
命令模式下
:e 目錄 列出指定目錄下的檔案和目錄
14 vim技巧
技巧1 匯入檔案或shell命令執行結果
命令模式下
:r 檔案名稱1 將檔案1內容引入到本檔案中(插入到游標所在行後面)
:!shell命令 在vim中執行shell命令,執行完後按斷行符號會到vim介面
:r !shell命令 (r與!之間有空格)將shell命令執行的結果匯入到本檔案中
技巧2 自訂快速鍵操作
編輯模式下
:map ^x 命令 (map與^之間、x與命令之間有空格,此處到^並非鍵盤上的^,而是按下ctrl+v出現到快速鍵,表示ctrl鍵,後面到x為任意字母)按下ctrl+x後會執行對應到命令
例:
:map ^p I#<ESC> 當按下ctrl+p快捷按鍵組合時,在游標所在行行首添加一個#號,並回到命令模式
技巧3 連續行注釋
編輯模式下
:n1,n2/^/#/g (#號為注釋符號,在shell中注釋符號為#,C++中為//)
:n1,n2/^/\/\//g C++源檔案多行連續注釋
技巧4 替換
:ab string1 string2 在vim中輸入string1按空格或斷行符號後,string1會自動替換為string2
:unab string1 取消string1的替換
vim設定檔
~/.vimrc
可將編輯模式下的命令寫在裡面,每個命令單獨一行,這樣每次啟動時,會自動執行裡面的命令。