基本操作
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
Esc |
從當前模式轉換到“普通模式”。所有的鍵對應到命令。 |
i |
“插入模式”用于插入文字。回歸按鍵的本職工作。 |
: |
“命令行模式” Vim 希望你輸入類似于保存該文檔命令的地方。 |
方向鍵
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
h |
光標向左移動一個字符 |
j 或 Ctrl + J
|
光標向下移動一行 |
k 或 Ctrl + P
|
光標向上移動一行 |
l |
光標向右移動一個字符 |
0 |
(數(shù)字 0)移動光標至本行開頭 |
$ |
移動光標至本行末尾 |
^ |
移動光標至本行第一個非空字符處 |
w |
向前移動一個詞 (上一個字母和數(shù)字組成的詞之后) |
W |
向前移動一個詞 (以空格分隔的詞) |
5w |
向前移動五個詞 |
b |
向后移動一個詞 (下一個字母和數(shù)字組成的詞之前) |
B |
向后移動一個詞 (以空格分隔的詞) |
5b |
向后移動五個詞 |
G |
移動至文件末尾 |
gg |
移動至文件開頭 |
瀏覽文檔
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
( |
跳轉到上一句 |
) |
跳轉到下一句 |
{ |
跳轉到上一段 |
} |
跳轉到下一段 |
[[ |
跳轉到上一部分 |
]] |
跳轉到下一部分 |
[] |
跳轉到上一部分的末尾 |
][ |
跳轉到上一部分的開頭 |
插入文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
a |
在光標后插入文本 |
A |
在行末插入文本 |
i |
在光標前插入文本 |
o |
(小寫字母 o)在光標下方新開一行 |
O |
(大寫字母 O)在光標上方新開一行 |
特殊插入
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
:r [filename] |
在光標下方插入文件 [filename] 的內容 |
:r ![command] |
執(zhí)行命令 [command] ,并將輸出插入至光標下方 |
刪除文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
x |
刪除光標處字符 |
dw |
刪除一個詞 |
d0 |
刪至行首 |
d$ |
刪至行末 |
d) |
刪至句末 |
dgg |
刪至文件開頭 |
dG |
刪至文件末尾 |
dd |
刪除該行 |
3dd |
刪除三行 |
簡單替換文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
r{text} |
將光標處的字符替換成 {text} |
R |
進入覆寫模式,輸入的字符將替換原有的字符 |
復制/粘貼文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
yy |
復制當前行至存儲緩沖區(qū) |
["x]yy |
復制當前行至寄存器 x |
p |
在當前行之后粘貼存儲緩沖區(qū)中的內容 |
P |
在當前行之前粘貼存儲緩沖區(qū)中的內容 |
["x]p |
在當前行之后粘貼寄存器 x 中的內容 |
["x]P |
在當前行之前粘貼寄存器 x 中的內容 |
撤銷/重做操作
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
u |
撤銷最后的操作 |
Ctrl+r |
重做最后撤銷的操作 |
搜索和替換
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
/search_text |
檢索文檔,在文檔后面的部分搜索 search_text |
?search_text |
檢索文檔,在文檔前面的部分搜索 search_text |
n |
移動到后一個檢索結果 |
N |
移動到前一個檢索結果 |
:%s/original/replacement |
檢索第一個 “original” 字符串并將其替換成 “replacement” |
:%s/original/replacement/g |
檢索并將所有的 “original” 替換為 “replacement” |
:%s/original/replacement/gc |
檢索出所有的 “original” 字符串,但在替換成 “replacement” 前,先詢問是否替換 |
書簽
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
m {a-zA-Z} |
在當前光標位置設置書簽,書簽名可用一個大小寫字母({a-zA-Z}) |
:marks |
列出所有書簽 |
{a-zA-Z} |
跳轉到書簽 {a-zA-Z} |
選擇文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
v |
進入逐字可視模式 |
V |
進入逐行可視模式 |
Esc |
退出可視模式 |
改動選中文本
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
~ |
切換大小寫 |
d |
刪除一個詞 |
c |
變更 |
y |
復制 |
> |
右移 |
< |
左移 |
! |
通過外部命令進行過濾 |
保存并退出
< 如顯示不全,請左右滑動 >
| 快捷鍵 | 功能 |
|---|---|
:q |
退出 Vim,如果文件已被修改,將退出失敗 |
:w |
保存文件 |
:w new_name |
用 new_name 作為文件名保存文件 |
:wq |
保存文件并退出 Vim |
:q! |
退出 Vim,不保存文件改動 |
ZZ |
退出 Vim,如果文件被改動過,保存改動內容 |
ZQ |
與 :q! 相同,退出 Vim,不保存文件改動 |
vim分屏
- 以分屏的方式的打開多文件:vim -O main.cpp my-oj-toolkit.h
- 打開/關閉:在進入Vim后,可以使用這些命令來打開/關閉窗口:
:sp[lit] {file} 水平分屏
:new {file} 水平分屏
:sv[iew] {file} 水平分屏,以只讀方式打開
:vs[plit] {file} 垂直分屏
:clo[se] 關閉當前窗口
- 切換窗口
切換窗口的快捷鍵就是Ctrl+w + hjkl:
Ctrl+w h 切換到左邊窗口
Ctrl+w j 切換到下邊窗口
Ctrl+w k 切換到上邊窗口
Ctrl+w l 切換到右邊窗口
Ctrl+w w 遍歷切換窗口
- 交換上下左右兩個窗口的位置
ctrl_w+x
- 移動窗口
分屏后還可以把當前窗口向任何方向移動,只需要將上述快捷鍵中的hjkl大寫:
Ctrl+w H 向左移動當前窗口
Ctrl+w J 向下移動當前窗口
Ctrl+w K 向上移動當前窗口
Ctrl+w L 向右移動當前窗口
- 調整大小
調整窗口大小的快捷鍵仍然有Ctrl+W前綴:
Ctrl+w + 增加窗口高度
Ctrl+w - 減小窗口高度
Ctrl+w = 統(tǒng)一窗口高度
ps: 未成功,可用[vertical] res [N] 來設置寬度。若不加vertical 則設置高度
參考:https://blog.csdn.net/Devil_2009/article/details/7006113
窗口本身的位值的移動:
ctrl_w + r: 窗口本身, 不是鼠標指針順時針 (向下, 向右 移動), R : 則是逆時針反方向(向上, 向左)移動.
ctrl_w+x: 左右上下對應位置的窗口 對調. 要注意窗口必須是 對應的, 如果不對應將無法對換, 比如左邊一個大窗口, 右邊有兩個小的 子窗口, 則左右不能互換.
窗口本身 的位置移動, 而且大小也發(fā)生"最大化"變化
Ctrl_w+ HJKL( 注意是大寫的字母 H, J, K, L , 表示要按shift才能實現(xiàn)的)... 要注意, 可以通過 windows 窗口 "貼邊" 最大化來理解, H和 L 就是 向左或向右 最大化貼邊 顯示; 而 JK 則是 向上 或 向下 貼邊 最大化顯示. 最大化后 就不能 再次操作復原窗口了, 其實也沒有必要
另:vim分屏操作,參考http://harttle.land/2015/11/14/vim-window.html http://www.cnblogs.com/barrychiao/p/3446865.html
=======================================
一、基本操作
1.游標移動
按Esc進入普通模式,在該模式下使用方向鍵或者h,j,k,l鍵可以移動游標。
按鍵 說明
h 左
l 右(小寫L)
j 下
k 上
w 移動到下一個單詞
b 移動到上一個單詞
2.插入模式
在普通模式下使用下面的鍵將進入插入模式,并可以從相應的位置開始輸入
命令 說明
i 在當前光標處進行編輯
I 在行首插入
A 在行末插入
a 在光標后插入編輯
o 在當前行后插入一個新行
O 在當前行前插入一個新行
cw 替換從光標所在位置后到一個單詞結尾的字符
3.退出vim
從普通模式輸入:進入命令行模式,輸入wq回車,保存并退出編輯
以下為其它幾種退出方式:
命令 說明
:q! 強制退出,不保存
:q 退出
:wq! 強制保存并退出
:w <文件路徑> 另存為
:saveas 文件路徑 另存為
:x 保存并退出
:wq 保存并退出
普通模式下輸入Shift+zz即可保存退出vim
4.刪除文本
進入普通模式,使用下列命令可以進行文本快速刪除:
命令 說明
x 刪除游標所在的字符
X 刪除游標所在前一個字符
Delete 同x
dd 刪除整行
dw 刪除一個單詞(不適用中文)
d$或D 刪除至行尾
d^ 刪除至行首
dG 刪除到文檔結尾處
d1G 刪至文檔首部
除此之外,你還可以在命令之前加上數(shù)字,表示一次刪除多行,如:
2dd表示一次刪除2行
二、文檔編輯
5.vim重復命令
- 重復執(zhí)行上條命令: .
2.連續(xù)執(zhí)行命令n次:
n<command>,如: 3dd,連續(xù)刪3行,d3w,連續(xù)刪3個單詞
6.快速跳轉
1.行間
- nG : 游標移動到第 n 行(如果默認沒有顯示行號,請先進入命令模式,輸入:set nu以顯示行號)
- gg :游標移動到到第一行
- G 到最后一行
2. 行內跳轉
- w 到下一個單詞的開頭
- e 到下一個單詞的結尾
- b 到前一個單詞的開頭
- ge 到前一個單詞的結尾
- 0或^ 到行頭
- $ 到行尾
- f<字母> 向后搜索<字母>并跳轉到第一個匹配的位置(非常實用)
- F<字母> 向前搜索<字母>并跳轉到第一個匹配的位置
- t<字母> 向后搜索<字母>并跳轉到第一個匹配位置之前的一個字母(不常用)
- T<字母> 向前搜索<字母>并跳轉到第一個匹配位置之后的一個字母(不常用)
7.復制、剪切、粘貼
- 普通模式中使用y復制
yy復制游標所在的整行(3yy表示復制3行)
y^ 復制至行首,或y0。不含光標所在處字符。
y$ 復制至行尾。含光標所在處字符。
yw 復制一個單詞。
y2w 復制兩個單詞。
yG 復制至文本末。
y1G 復制至文本開頭。
- 普通模式中使用p粘貼
- p(小寫)代表粘貼至光標后(下)
- 普通模式中,P(大寫)代表粘貼至光標前(上)
- 剪切
dd即剪切===> ddp 交換光標所在行和下一行
三、查找、替換--普通模式下
- 替換、撤銷
普通模式下:
r+<待替換字母> :將游標所在字母替換為指定字母
R :連續(xù)替換,直到按下Esc
cc :替換整行,即刪除游標所在行,并進入插入模式
cw :替換一個單詞,即刪除一個單詞,并進入插入模式
C(大寫) :替換游標以后至行末
~ :反轉游標所在字母大小寫
u{n} :撤銷一次或n次操作
U(大寫) :撤銷當前行的所有修改
Ctrl+r :redo,即撤銷undo的操作
- 縮進
' >>、<<
shiftwidth:
- set shiftwidth? 查看當前設置
- set shiftwidth n 設置
調整文本位置:
命令行模式輸入:- ce 本行居中
- ri 右
- le 左
- 查找
/ icmp 向下查找icmp
?icmp 向上查找..
n 繼續(xù)查找,N 查找上一個出現(xiàn)的。
普通模式下輸入*尋找游標所在處的單詞
普通模式下輸入#同上,但 # 是向前(上)找,*則是向后(下)找
普通模式下輸入g*同* ,但部分符合該單詞即可
普通模式下輸入g#同# ,但部分符合該單詞即可
四、高級功能
- 多文件編輯
- 進入vim前使用的參數(shù)就是多個文件
默認進入1.txt文件的編輯界面
- 進入vim前使用的參數(shù)就是多個文件
- 命令行模式下輸入:n編輯2.txt文件,可以加!即:n!強制切換,之前一個文件的輸入沒有保存,僅僅切換到另一個文件
- 命令行模式下輸入:N編輯1.txt文件,可以加!即:N!強制切換,之前文件內的輸入沒有保存,僅僅是切換到另一個文件
- 進入vim后打開新文件
命令行模式下輸入:e 3.txt 打開新文件3.txt
命令行模式下輸入:e# 回到前一個文件
命令行模式下輸入:ls可以列出以前編輯過的文檔
命令行模式下輸入:b 2.txt(或者編號)可以直接進入文件2.txt編輯
命令行模式下輸入:bd 2.txt(或編號)可以刪除以前編輯過的列表中的文件項目
命令行模式下輸入:e! 4.txt,新打開文件4.txt,放棄正在編輯的文件
命令行模式下輸入:f 顯示正在編輯的文件名
命令行模式下輸入:f new.txt,改變正在編輯的文件名字為new.txt
- 恢復文件
如果因為斷電等原因造成文檔沒有保存,可以采用恢復方式,vim -r進入文檔后,輸入:ewcover 1.txt來恢復
- 可視模式命令
在普通模式下輸入v(小寫),進入字符選擇模式,就可以移動光標,光標走過的地方就會選取。再次按下v會后就會取消選取。
在普通模式下輸入Shift+v(小寫),進入行選擇模式,按下V之后就會把整行選取,您可以上下移動光標選更多的行,同樣,再按一次Shift+v就可以取消選取。
在普通模式下輸入 Ctrl+v(小寫),這是區(qū)域選擇模式,可以進行矩形區(qū)域選擇,再按一次Ctrl+v取消選取。
在可視模式下輸入d或x刪除選取區(qū)域內容
在可視模式下輸入y復制選取區(qū)域內容
批量插入
ctrl+v進入可視塊模式,再按G到文件最后一行。然后shift+i進入插入模式,輸入’123’,按esc,這樣就達到了在每行行首插入’123’的目的。
- 視窗操作
vim可以在一個界面里打開多個窗口進行編輯,這些編輯窗口稱為vim的視窗。
命令行模式下輸入:new 打開一個新的vim視窗,并進入視窗編輯一個新文件(普通模式下輸入Ctrl+w也可以,但是Ctrl+w在chrome下會與chrome關閉標簽頁的快捷鍵沖突,所以使用該快捷鍵你可以在IE或其它瀏覽器進行練習)
命令行模式下輸入:sp 1.txt 打開新的水平分屏視窗來編輯1.txt
命令行模式下輸入:vsp 2.txt 打開新的垂直分屏視窗來編輯2.txt
普通模式下Ctrl-w s 將當前窗口分割成兩個水平的窗口
普通模式下Ctrl-w v 將當前窗口分割成兩個垂直的窗口
普通模式下Ctrl-w q 即 :q 結束分割出來的視窗。如果在新視窗中有輸入需要使用強制符!即:q!
普通模式下Ctrl-w o 打開一個視窗并且隱藏之前的所有視窗
普通模式下Ctrl-w j 移至下面視窗
普通模式下Ctrl-w k 移至上面視窗
普通模式下Ctrl-w h 移至左邊視窗
普通模式下Ctrl-w l 移至右邊視窗
普通模式下Ctrl-w J 將當前視窗移至下面
普通模式下Ctrl-w K 將當前視窗移至上面
普通模式下Ctrl-w H 將當前視窗移至左邊
普通模式下Ctrl-w L 將當前視窗移至右邊
普通模式下Ctrl-w - 減小視窗的高度
普通模式下Ctrl-w + 增加視窗的高度
- 加密文檔
vim x file ,然后輸入密碼,下次打開會需密碼 - 執(zhí)行外部命令
在命令行模式中輸入!可以執(zhí)行外部的shell命令
:!ls 用于顯示當前目錄的內容
:!rm FILENAME用于刪除名為 FILENAME 的文件
:w FILENAME可將當前 VIM 中正在編輯的文件另存為 FILENAME 文件
- 幫助系統(tǒng)
普通模式下按F1打開vim自己預設的幫助文檔
命令行模式下輸入:h shiftwidth 打開名為shiftwidth的幫助文件
命令行模式下輸入:ver 顯示版本及參數(shù)
- 功能設定
set nu(顯示行數(shù)),設定值退出vim后不會保存。要永久保存配置需要修改vim配置文件。
- 獲取目前的設定
命令行模式下輸入:set或者:se顯示所有修改過的配置
命令行模式下輸入:set all 顯示所有的設定值
命令行模式下輸入:set option? 顯示option的設定值
命令行模式下輸入:set nooption 取消當期設定值
- set功能的說明
命令行模式下輸入:set autoindent(ai) 設置自動縮進
命令行模式下輸入:set autowrite(aw) 設置自動存檔,默認未打開
命令行模式下輸入:set background=dark或light,設置背景風格
命令行模式下輸入:set backup(bk) 設置自動備份,默認未打開
命令行模式下輸入: set cindent(cin) 設置C語言風格縮進