记录一下较为完整的VIM使用方法的🔗链接,并记录一些自己常用的快捷键,以便于查找。

光标移动

键位组合 功能说明
h 光标左移
l 光标右移
k 光标上移
j 光标下移
CTRL-F 下一页
CTRL-B 上一页
CTRL-U 上移半屏
CTRL-D 下移半屏
0 跳到行首
^ 跳到从行首开始第一个非空白字符
$ 跳到行尾
gg 跳到首行
G 跳到行尾
nG 跳到第N行
:n 跳到第N行
w 跳到下一个单词开头 (word: 标点或空格分隔的单词)
W 跳到下一个单词开头 (WORD: 空格分隔的单词)
e 跳到下一个单词尾部 (word: 标点或空格分隔的单词)
E 跳到下一个单词尾部 (WORD: 空格分隔的单词)
b 上一个单词头 (word: 标点或空格分隔的单词)
B 上一个单词头 (WORD: 空格分隔的单词)
) 向前移动一个句子(句号分隔)
( 向后移动一个句子(句号分隔)
} 向前移动一个段落(空行分隔)
{ 向后移动一个段落(空行分隔)
<enter> 移动到下一行首个非空字符
+ 移动到下一行首个非空字符(同回车键)
- 移动到上一行首个非空字符

插入模式

键位组合 功能说明
i 在光标处进入插入模式
I 在行首进入插入模式
a 在光标后进入插入模式
A 在行尾进入插入模式
o 在下一行插入新行并进入插入模式
O 在上一行插入新行并进入插入模式
gi 进入到上一次插入模式的位置

文本编辑

键位组合 功能说明
cc 改写当前行(删除当前行并进入插入模式),同 S
cw 改写光标开始处的当前单词
ciw 改写光标所处的单词
caw 改写光标所处的单词,并且包括前后空格(如果有的话)
c0 改写到行首
c^ 改写到行首(第一个非零字符)
c$ 改写到行末
C 改写到行尾(同c$)
ci" 改写双引号中的内容
ci' 改写单引号中的内容
cib 改写小括号中的内容
cab 改写小括号中的内容(包含小括号本身)
ci) 改写小括号中的内容
ci] 改写中括号中内容
ciB 改写大括号中内容
caB 改写大括号中的内容(包含大括号本身)
ci} 改写大括号中内容
cit 改写 xml tag 中的内容
dd 删除当前行
d0 删除到行首
d^ 删除到行首(第一个非零字符)
d$ 删除到行末
D 删除到行末(同 d$)
dw 删除当前单词
diw 删除光标所处的单词
daw 删除光标所处的单词,并包含前后空格(如果有的话)
di" 删除双引号中的内容
di' 删除单引号中的内容
dib 删除小括号中的内容
di) 删除小括号中的内容
dab 删除小括号内的内容(包含小括号本身)
di] 删除中括号中内容
diB 删除大括号中内容
di} 删除大括号中内容
daB 删除大括号内的内容(包含大括号本身)
dit 删除 xml tag 中的内容
u 撤销
guu 全行转为小写
gUU 全行转为大写
« 减少缩进
>> 增加缩进

复制粘贴

键位组合 功能说明
p 粘贴到光标后
P 粘贴到光标前
v 开始标记
y 复制标记内容
V 开始按行标记
CTRL-V 开始列标记
y$ 复制当前位置到本行结束的内容
yy 复制当前行
Y 复制当前行,同 yy
yiw 复制当前单词

查找替换

键位组合 功能说明
/pattern 从光标处向文件尾搜索 pattern
?pattern 从光标处向文件头搜索 pattern
n 向同一方向执行上一次搜索
N 向相反方向执行上一次搜索

注释

需要安装VIM插件 vim-commentary,步骤如下:

mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone https://tpope.io/vim/commentary.git
vim -u NONE -c "helptags commentary/doc" -c q

键位组合 功能说明
gcc 注释当前行
gc 在 Visual Mode 下面按 gc 注释选中区域