VIM tutor學習小結
以下指令均在Normal模式下執行,如不确定目前模式,按下
<ESC>
回到Normal模式。
使用
ESC
撤銷一個不想輸入或部分完整的指令。
VIM的進入和退出
進入Vim編輯器(從指令行提示符):
vim filename
退出Vim編輯器:
<ESC>
:q!
(放棄所有改動)
或者:
<ESC>
:wq
(儲存改動)
移動光标
↑
k
←h l→(小寫L)
j
↓
撤銷
u
:撤銷最後執行的指令
U
:撤銷對整行的修改
Ctrl
+
R
:撤銷之前的撤銷指令
删除類指令
删除光标所在位置字元:
x
d motion
d – 删除操作符
motion --操作符的操作對象
一個簡短的動作清單:
w – 從目前光标位置至下一個單詞的起始處,不包括第一個字元
e – 從目前光标位置至單詞末尾,包括最後一個字元
$ – 從目前光标位置至目前行末
dd
:删除目前行
使用計數指定動作
在動作前輸入數字n會使它重複n次
operator [number] motion
例如:
2w
:光标向前移動兩個單詞
3e
:光标向前移動到第三個單詞末尾
:光标移至目前行行首
2dd
:删除目前行開始的兩行
置入類指令
i
:在光标前插入文本
a
:在光标後插入文本
A
:在行末添加文本
y
:複制文本
yw
:複制光标處至詞末
p
:粘貼文本于光标之後。如果文本是一整行,則至于目前行的下一行
o
:在光标下方打開新的一行
O
:在光标上方打開新的一行
替換類指令
r char
:将光标所在位置字元替換為char
r – 替換操作符
char – 要替換的字元
R
:連續替換多個字元
更改類指令
c [number] motion
動作參數同删除類指令。
定位及檔案狀态
Ctrl
+
g
:顯示目前光标所在行位置和目前檔案狀态資訊
G
:跳轉到檔案最後一行
gg
:跳轉到檔案第一行
nG
:跳轉到第n行
:移動光标到行首
$
:移動光标到行末
e
:光标移動到單詞末尾
b
:光标移動到詞首
w
:光标移動到下一個單詞詞首
搜尋類指令
/string
:向前查找string字元串
/string\c
:僅在一次查找時忽略大小寫
?string
:向後查找string字元串
n
:同一方向上查找上一次的字元串
N
:相反方向查找上一次的字元串
Ctrl
+
O
:回退到之前位置,可通過重複按回退多步
Ctrl
+
I
:(大寫i)跳轉到較新的位置
:set ic
(or
:set ignorecase
):ignore case,搜尋時設定忽略大小寫
:set noic
(or
:set noignorecase
):禁用忽略大小寫
:set is
(or
:set incsearch
):查找字元串時顯示部分比對
:set nois
(or
:set noincsearch
):禁用顯示部分比對
set hls
(or
:set hlsearch
):highlight,比對項高亮顯示
:nohlsearch
(or
:nohls
):取消高亮
配對括号查找
%
:配對括号(用于查找不配對的括号),光标應停留在"("、"["、"{"、")"、"]"、"}"處
替換指令
:s/old/new
:替換目前行第一個出現的
old
字元串為
new
:s/old/new/g
:替換該行中所有的
old
字元串為
new
:#,#s/old/new/g
:替換若幹行中所有
old
字元串為
new
,
#
為首尾兩行的行号
:%s/old/new/g
:替換檔案中每一個比對串
%s/old/new/gc
:替換檔案中每一個比對串,并對每一個比對串提示是否進行替換
在VIM内部執行外部指令
:!cmd
:執行外部shell指令,
cmd
為指令名稱
:w newfile
: 儲存目前檔案到newfile檔案中
v
motion
operator
:按
v
進入可視模式,選擇若幹行進行操作
:r file
:在光标處插入file檔案中的内容,file也可以是外部指令的輸出(如:
:r !ls
)
?
?
?
?
?
拖延是病(つД`)ノ