vim 速查表

基本操作

< 如顯示不全,請左右滑動 >

快捷鍵 功能
Esc 從當前模式轉換到“普通模式”。所有的鍵對應到命令。
i “插入模式”用于插入文字。回歸按鍵的本職工作。
: “命令行模式” Vim 希望你輸入類似于保存該文檔命令的地方。

方向鍵

< 如顯示不全,請左右滑動 >

快捷鍵 功能
h 光標向左移動一個字符
jCtrl + J 光標向下移動一行
kCtrl + 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重復命令
  1. 重復執(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.復制、剪切、粘貼
  1. 普通模式中使用y復制

yy復制游標所在的整行(3yy表示復制3行)
y^ 復制至行首,或y0。不含光標所在處字符。
y$ 復制至行尾。含光標所在處字符。
yw 復制一個單詞。
y2w 復制兩個單詞。
yG 復制至文本末。
y1G 復制至文本開頭。

  1. 普通模式中使用p粘貼
  • p(小寫)代表粘貼至光標后(下)
  • 普通模式中,P(大寫)代表粘貼至光標前(上)
  1. 剪切
    dd即剪切===> ddp 交換光標所在行和下一行

三、查找、替換--普通模式下

  1. 替換、撤銷
    普通模式下:

r+<待替換字母> :將游標所在字母替換為指定字母
R :連續(xù)替換,直到按下Esc

cc :替換整行,即刪除游標所在行,并進入插入模式
cw :替換一個單詞,即刪除一個單詞,并進入插入模式
C(大寫) :替換游標以后至行末
~ :反轉游標所在字母大小寫
u{n} :撤銷一次或n次操作
U(大寫) :撤銷當前行的所有修改
Ctrl+r :redo,即撤銷undo的操作

  1. 縮進
    ' >>、<<
    shiftwidth:
  • set shiftwidth? 查看當前設置
  • set shiftwidth n 設置
    調整文本位置:
    命令行模式輸入:
    • ce 本行居中
    • ri 右
    • le 左
  1. 查找
    / icmp 向下查找icmp
    ?icmp 向上查找..
    n 繼續(xù)查找,N 查找上一個出現(xiàn)的。

普通模式下輸入*尋找游標所在處的單詞
普通模式下輸入#同上,但 # 是向前(上)找,*則是向后(下)找
普通模式下輸入g*同* ,但部分符合該單詞即可
普通模式下輸入g#同# ,但部分符合該單詞即可

四、高級功能

  1. 多文件編輯
    1. 進入vim前使用的參數(shù)就是多個文件
      默認進入1.txt文件的編輯界面
  • 命令行模式下輸入:n編輯2.txt文件,可以加!即:n!強制切換,之前一個文件的輸入沒有保存,僅僅切換到另一個文件
  • 命令行模式下輸入:N編輯1.txt文件,可以加!即:N!強制切換,之前文件內的輸入沒有保存,僅僅是切換到另一個文件
  1. 進入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

  1. 恢復文件

如果因為斷電等原因造成文檔沒有保存,可以采用恢復方式,vim -r進入文檔后,輸入:ewcover 1.txt來恢復

  1. 可視模式命令

在普通模式下輸入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’的目的。

  1. 視窗操作

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 + 增加視窗的高度

  1. 加密文檔
    vim x file ,然后輸入密碼,下次打開會需密碼
  2. 執(zhí)行外部命令
    在命令行模式中輸入!可以執(zhí)行外部的shell命令

:!ls 用于顯示當前目錄的內容
:!rm FILENAME用于刪除名為 FILENAME 的文件
:w FILENAME可將當前 VIM 中正在編輯的文件另存為 FILENAME 文件

  1. 幫助系統(tǒng)

普通模式下按F1打開vim自己預設的幫助文檔
命令行模式下輸入:h shiftwidth 打開名為shiftwidth的幫助文件
命令行模式下輸入:ver 顯示版本及參數(shù)

  1. 功能設定
    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語言風格縮進

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容