1. 三つのモードがあります
- CommandMode
- InsertMode
- VisualMode
i : カーソルの前に挿入
a: カーソルの後ろに挿入
I: 該当行の最初の文字へジャンプして、挿入モードに
A: 該当行の最後の文字へジャンプして、挿入モードに
v: 文字を選択対象として、VisualModeに
V: 行を選択対象として、VisualModeに
2. 移動
H←(左) L→(右) J↓(下) K↑(上) すべてのコマンドはCommandModeでしか使えません。
H / M / L :現在のスクリーンの左上/左中央/左右へ移動
0(数字): 該当行の最初へ移動
^: 該当行の最初の文字へ移動(※中文输入法下,shift+6可以输入)
w: 次の単語の頭へ移動
W: 次の単語の頭へ移動、()<>などをignoreする
e: 次の単語の最後へ移動
E: 次の単語の最後へ移動、()<>などをignoreする
b: 一つ前の単語の頭へ移動
ge: 一つ前の単語の最後へ移動
gE: 一つ前の単語の最後へ移動、()<>などをignoreする
g_: 該当行の最後の文字(non-blank)へ移動
$: 該当行の最後の文字へ移動
ctrl -f: 一つスクリーンを進む
ctrl -b: 一つスクリーンを戻る
TIP
1. 全部選択 / Copy: ggVG / y
2. gg 第一行 V Visual G 最後の行 y copy
3. すべての行の最初の文字の前に”a”を挿入 :%s/^/a
4. すべての行の最後の文字の後ろに”a”を挿入 :%s/$/a
5. コマンドモードで、検索したい単語まで移動して、shift + * にしたら、すべて同じ単語が出てくる、NとShift+Nで単語間移動。
3. 編集
d: 删除从当前光标,到下一个命令之间的内容,比如dw就是删除一个单词,dd是删除一行,dk向上删除,d$删除从当前光标 到 最后,d0 删除从当前光标到最开始。
c: 同d,删除从当前光标,到下一个命令之间的内容,但是同时进入插入模式。组合也相同。
x: 删除光标后的字符。
c: 删除光标前的字符。
y: copy 从当前光标,到下一个命令之间的内容。
p: 粘贴到当前光标之后。
P: 粘贴到当前光标之前。(大写)
r: 替换
. : 重复操作 (点号), ctrl+r 撤销操作
d / c / y 都是针对一行进行操作,删除一行/复制一行。
另外,很多命令能够组合,比如1yy就是将一行复制后,放入寄存器1中,用1p可以粘贴。
:registers 可以查看寄存器的内容。
4. Visual Block
使用 Visual Block能够给每行加上前置字符。
1. 先 Ctrl+q 进行矩形选择,再用I(ctrl (?shift)+ i) 进入插入模式,输入待插入的文字,再退出插入模式,那么输入的文字,会全部插入到矩形框的前面。(用A进入插入模式的话,输入的文字,会被插入矩形框尾部)
2. 同样的方法,使用 s的话,能够进行文本替换。
3. 使用 Ctrl+q+$ 能够在行尾部追加。
TIP
1. 为每一行追加行号 :%s/^/=line(".")/ line(".") 是追加的内容。
2. 同样,将^ 修改为 $可以在行尾部追加。 %s/^/a 行头追加字符 a
5. 查找和替换
:/[查找内容] 或者 :?[查找内容] ,都可以用来查找,用n或是N进行跳转。
:nohl 取消结果高亮。
:%s/old/new/gc 替换用语句,c 是用来确认,如果没有c 则直接替换
:%s/old/new/g 如果先选择范围,再替换的话,即部分替换。
6. 补全
使用Ctrl + N / Ctrl + P选择已经输入过的单词。