vimtutor
命令可以打開教程文檔
原文特別提示 ???
特別提示:切記您要在使用中學習,而不是在記憶中學習
Vim模式
- 正常模式(Normal Mode):默認模式,可以使用基礎命令進行操作
- 命令模式(Command Mode):
:
起手,可以使用比正常模式更加復雜的命令進行操作 - 插入模式(Insert Mode):主要用于編寫文檔
- 可視模式(Visual Mode):模擬鼠標選中內容
- 替換模式(Replace Mode):用于替換字符
默認規則
Crtl組合鍵
無需區分大小寫<key>
表示某個按鍵- 所有的
:
命令都需要以<Enter>
結束 - 未特別說明的操作均在正常模式下執行
operator [number] motion
:操作符 [數字] 移動
命令表示對number
次motion
所掃過的區域進行operator
操作,number
可選,例如d4w
、c2e
Lesson 1
vim file_name
:編輯文件
h
、j
、k
、l
:分別用于向左、向下、向上、向右移動光標,方向鍵
與hjkl
具有相同功能,3j
表示光標向下移動3行
:q!
:放棄所有修改并強制退出編輯器
x
:用于將光標所在位置字符刪除,3x
表示刪除光標位置及其之后的共3個字符
i
:切換為插入模式
A
:用于向該行末尾追加內容,會自動轉為編輯模式并將光標置于光標所在行末尾
:wq
:用于保存并退出編輯器
<Esc>
:將切換為正常模式,并撤銷一個不想輸入或部分完整的命令
數字 + 方向鍵或hjkl
:將光標向某個方向移動n次
Lesson 2
w
:從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符
e
:從當前光標當前位置直到單詞末尾,包括最后一個字符
0
:從當前光標當前位置移動到行首
$
:從當前光標當前位置直到當前行末
2w
:光標向后移動到第二個單詞首字符
3e
:光標向后移動到第三個單詞末尾
4$
:光標向后移動到第四行行尾
dw
:將光標所在位置的單詞刪除
d2w
:刪除兩個單詞
d$
:將光標所在位置及該位置至所在行末尾的所有字符刪除
de
:將光標所在位置及該位置至所在單詞末尾的所有字符刪除
d0
:將光標所在位置及該位置至所在行首字符的所有字符刪除
dd
:刪除整行
2dd
:刪除兩行
U
:撤銷上次對某一行的修改(不包括整行刪除、整行插入),U
會撤銷U
本身,U
只能撤銷最新一次修改
u
:撤銷上一次編輯命令,包括U
但不包括u
和Ctrl r
Ctrl r
:重做上一次命令,包括U
但不包括u
和Ctrl r
Lesson 3
粘貼
p
:將最后一次刪除的內容粘貼至光標之后,若為d$
等非完整行內容,以字符為單位直接粘貼在光標之后,若為dd
等完整行內容,以行為單位向下粘貼在新的行
替換
rc
:c為任意字符,r會替換光標所在位置字符,c為指定的替換后的內容
修改
cw
:刪除光標至單詞末尾字符,并切換為插入模式
c$
:刪除光標至行末尾字符
c4l
:刪除光標及其右邊緊鄰的共計4個字符,并切換為插入模式
Lesson 4
光標移動
gg
:光標跳轉至第一行
G
:光標跳轉至最后一行
5G
:光標跳轉至第5行
文件狀態
Ctrl G
:在最下方顯示文件狀態信息以及當前光標所在位置
查找
/str
:自上而下查找字符串,str
為要搜索的任意字符串
/str\c
:自上而下查找字符串,str
為要搜索的任意字符串,查找時忽略大小寫
?str
:自下而上查找字符串,str
為要搜索的任意字符串
n
:查找下一個滿足條件的字符串
N
:查找上一個滿足條件的字符串
Ctrl O
:返回到上一個查找位置
Ctrl I
:返回下一個查找位置
%
:配對括號查找,對光標所在位置的(
、)
、[
、]
、{
、}
使用該命令可以將光標跳到與之配對括號的的位置,可以用于在程序調試時查找不配對括號
替換
:s/old/new
:將光標所在行的第一個old
字符串替換為new
:s/old/new/g
:將光標所在行所有的old
字符串替換為new
:n1,n2/old/new/g
:將[n1, n2]
間的所有的old
字符串替換為new
%s/old/new/g
:將整個文件中所有的old
字符串替換為new
:%s/old/new/gc
:將整個文件中的old
字符串替換為new
,且每次替換前要確認(confirm)是否進行替換
Lesson 5
執行外部命令
:!command
:在VIM內執行外部命令需要以:!
為開頭,command
為任意外部命令,包括帶命令行參數的命令,支持空命令:!
保存
:w filename
:保存為filename
文件。filename
為文件名,若省略文件名則保存文件到當前
v motion :w FILENAME
:部分保存,使用v
切換為可視模式,以光標所在位置為起始位置,使用光標移動選擇要保存的部分內容,直到下次使用:
會觸發:'<,'>
,繼續輸入w filename
可以保存為filename
文件
可視模式
v
:進入可視模式,移動光標可以選中內容,可以對選中的高亮內容進行操作,如d
可以刪除選中內容,c
可以刪除選中內容并切換為插入模式
提取與合并
:r filename
:將filename
文件的內容以行為單位粘貼至光標下方
:r !command
:將command
命令的結果以行為單位粘貼至光標下方,如:r !ls
Lesson 6
插入
o
:在光標下方新開一行,并將光標移動至新開行行首,切換模式為插入模式
O
:在光標上方新開一行,并將光標移動至新開行行首,切換模式為插入模式
i
:保持光標不動,切換至插入模式
a
:將光標向后移動一個字符,并切換至插入模式
A
:將光標移動至行尾,并切換至插入模式
注:使用<Esc>
退出插入模式時光標會在本行向左移動一個字符,若已在第一個字符則不會移動
替換
R
:切換至替換模式,替換模式與插入模式類似,區別在于插入模式中每個輸入的字符都會替換光標原本所在位置的字符
復制
y
:將內容以字符為單位進行復制,使用p
可以粘貼到光標位置之后,例如yw
,或者切換至可視模式復制高亮內容
設置
:set ic
、:set ignorecase
:ignore case,設置查找或者替換忽略大小寫
:set noic
:not ingore case,設置查找或者替換不忽略大小寫
:set hls
、:set hlsearch
:高亮顯示所有的匹配短語
:set is
、:set incsearch
:增量搜索
注:在選項前加no
可以關閉設置
Lesson 7
幫助
<HELP>
、<F1>
、:help
:使用在線幫助系統
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
:help vimrc-intro
補全功能
首先確保VIm不是在以兼容模式運行:set nocp
,在命令模式下輸入部分命令:command
,例如部分:!ls /root
、:!dir
、set number
<TAB>
:自動選取一個補全命令
Ctrl D
:列出補全備選向
Vim啟動腳本
使用vimrc文件自定義VIm配置,下面是Vim風格的文件編輯方式:
- 開始編輯 vimrc 文件
:edit ~/.vimrc 這是 Unix 系統所使用的命令
:edit $VIM/_vimrc 這是 MS-Windows 系統所使用的命令
- 將示例文件復制過來
vimrc_example.vim
通常位于/usr/share/vim/vimXXX
文件夾下
:r $VIMRUNTIME/vimrc_example.vim
- 保存文件
:write