vim 命令理解记忆

前言

最近想转 vim,高效是建立在对命令烂熟于心的基础上的。自己总结了一些方便记忆 vim 命令的点。(以 vscode 的 vim 插件为例)

vim 特点

我感觉 vim 的最大的特点就在于它的命令组合,比如说:

20dd

数字“20”就代表执行次数,“dd”是删除当前行,这个命令就代表着删除光标所在处开始的后三行。
又比如:

dG

字符“d”代表删除,字符“G”代表文末,这个命令就代表着删除光标所在行到最后一行的所有数据。
据此我们可以明白 vim 一般模式下的大致语法:

[执行次数][执行命令][执行范围]

据此,我们只需要记住常用按键的基本的功能,就能举一反三,推出各种复杂的命令。

按键基础功能

光标移动

按键 功能
h 光标向左移动一个字符
j 光标向下移动一个字符
k 光标向上移动一个字符
l 光标向左移动一个字符
H 屏幕顶行
L 屏幕底行
J 合并两行
f 行内字符查找
G 移动到文档最后一行
W,w 下一单词
E,e 词尾
B,b 前一个单词
0 移动到这一行的最前面字符处
$ 移动到这一行的最后面字符处
+ 移动到非空格符的上一行
- 移动到非空格符的下一行

增删改查

按键 功能
/ 向前搜索
? 向后搜索
N 查找上一处
n 查找下一处
x 向前删除一个字符
X 向后删除一个字符
d 删除
D 删除行
Y 拷贝行
y 拷贝
p 将复制的数据在光标下一层贴上
P 将复制的数据在光标上一层贴上
c 修改
C 修改至行末
f 行内字符查找
F 行内字符反向查找
s 删除字符并插入
S 删除行并插入

一般模式切换到编辑模式

按键 功能
i,I i 为从目前光标所在处输入;I 为在目前所在行的第一个非空格符处开始输入。
a,A a 为从目前光标所在的下一个字符开始输入;A 为从光标所在行的最后一个字符开始输入。
o,O o 为在目前光标所在的下一行处输入新的一行;O 为在目前光标所在的上一行处输入新的一行。
r,R r 只会取代光标所在的那个字符一次;R 会一直取代光标所在的文字。

特殊功能

按键 功能
~ 大小写转换
u 复原上一操作
. 重复上一操作

内容来源

Linux vi/vim|菜鸟教程
vim 键位图

posted @ 2021-01-01 18:27  PwnKi  阅读(141)  评论(0编辑  收藏  举报