i命令 在光标的前边进入插入模式
I命令 在光标所在行的行首进入插入模式
a命令 在光标的后边进入插入模式
A命令 在光标所在行的行尾进入插入模式
o命令 在光标所在行的下方插入空行并进入插入模式
O命令 在光标所在行的上方插入空行并进入插入模式
s命令 删除光标指定的字符并进入插入模式
注意:vim中的删除都是存到寄存器,并不是真的删除,即可以用p命令粘贴出来
S命令 将光标所在行清除并进入插入模式
0命令 将光标定位到行首的位置
$命令 将光标定位到行尾的位置
b命令 将光标定位到光标所在单词的起始处
e命令 将光标定位到光标所在单词的结尾处
w命令 将光标定位到下一个单词的起始处
gg命令 将光标定位到文件的开头
G命令 将光标定位到文件的末尾
f命令 在当前行查找下一处指定字符出现的位置
;命令(f命令下) 重复查找上次f命令缩查找的字符
,命令(f命令下) 不小心按太多;命令可以用,命令跳回去
F命令 在当前行内查找上一个指定字符
*命令 查找当前光标下的单词
daw命令 解读为"delete a word"
<C-a>命令 对数字执行加法操作,默认+1,形如10<C-a>命令,数字+10
<C-x>命令 对数字执行减法操作,默认-1
<C-w>命令 删除至上一个单词的开头
<C-u>命令 删除至行首
.命令 会“重复上次修改”,一次修改的单位可以是“字符”、“整行”、“插入模式下所有的操作”,以及甚至“整个文件”
u命令 可以撤销上次操作,可以重复几次使用u达到多次撤销以往的操作
dd命令 可以把整行一起删掉
>G命令 会增加“当前行“”到“文档末尾处”的缩进层级
c命令 会删除指定的文本,然后切换到插入模式,修改
c0命令 删除光标从当前位置(不包含)到该行行首的所有字符,并进入插入模式
c$命令 删除从光标当前位置(包含)到该行行尾的所有字符,并进入插入模式
cb命令 删除从光标当前位置(不包含)到单词起始处的所有字符,并进入插入模式
ce命令 删除从光标(包含)到单词结尾处的所有字符,并进入插入模式
cw命令 删除从光标当前位置(包含)到下个单词起始处的所有字符,并进入插入模式
ch命令 删除光标前边一个字符,并进入插入模式
cc命令 删除光标所在行的字符,并进入插入模式
d0命令 删除光标从当前位置(不包含)到该行行首的所有字符
d$命令 删除从光标当前位置(包含)到该行行尾的所有字符
db命令 删除从光标当前位置(不包含)到单词起始处的所有字符
de命令 删除从光标当前位置(包含)到单词结尾处的所有字符
dw命令 删除从光标当前位置(包含)到下个单词起始处的所有字符
dh命令 删除光标前边一个字符
dd命令 删除光标所在行的字符
dgg命令 删除光标所在行到文件开头的所有字符
dG命令 删除光标所在行到文件末尾的所有字符
dl命令 删除一个字符
dap命令 删除一整个段落
r命令 替换光标所在的字符
R命令 进入替换模式
y命令 复制到寄存器
g~命令 反转大小写
gu命令 转换为小写
gU命令 转换为大写
>命令 增加缩进
<命令 减小缩进
zz命令 重绘屏幕
J命令 把当前行和下一行连接在一起
使用dd命令后使用.命令,那么“重复上次修改”会让vim删除当前行
gj命令 向下移动一个屏幕行
gk命令 向上移动一个屏幕行
^命令 移动到实际行的第一个非空白字符
g^命令 移动到屏幕行的第一个非空白字符
w命令 正向移动到下一个单词的开头
b命令 反向移动到当前单词/上个单词的开头
e命令 正向移动到当前单词/下个单词的结尾
ge命令 反向移动到上一个单词的结尾
W命令 面向字串,正向移动到下一个字串的开头
B命令 面向字串,反向移动到当前字串/上个字串的开头
E命令 面向字串,正向移动到当前字串/下个字串的结尾
gE命令 面向字串,反向移动到上一个字串的结尾
f{char}命令 正向移动到下一个{char}所在之处,查找
F{char}命令 反向移动到上一个{char}所在之处,查找
t{char}命令 正向移动到下一个{char}所在之处的前一个字符上,查找
T{char}命令 反向移动到上一个{char}所在之处的后一个字符上,查找
vi命令 假设光标位于花括号内部,想要高亮选中{}内部的文本,可以用vi}命令
at命令 高亮选中一对XML标签<xml>context<xml>内的所有内容,包括两对<>本身
it命令 高亮选中XML标签<xml>tags<xml>内部的tags
iw命令 选中当前单词
aw命令 选中当前单词以及一个空格
iW命令 选中当前字串
aW命令 选中当前字串以及一个空格
is命令 选中当前句子
as命令 选中当前句子以及一个空格
ip命令 选中当前段落
ap命令 选中当前段落以及一个空行
m{a-z,A-Z}命令 会用选定的字母标记当前光标所在位置
'{mark}命令 调到位置标记所在行,并把光标置于该行第一个非空白字符上
`{mark}命令 把光标移动到设置此位置标记时光标所在之处
``位置标记命令 当前文件中上次跳转动作之前的位置
`.位置标记命令 上次修改的地方
`^位置标记命令 上次插入的地方
`[位置标记命令 上次修改或复制的起始位置
`]位置标记命令 上次修改或复制的结束位置
`<位置标记命令 上次高亮选区的起始位置
`>位置标记命令 上次高亮选区的结束位置
%命令 允许在一组开、闭括号之间跳转
"ayiw命令 把当前单词复制到寄存器a中
"bdd命令 把当前整行文本剪切至寄存器b中
当使用y命令时,复制的文本被拷贝到了复制专用寄存器中,可用数字0加以引用。
仅当使用y命令时才会被赋值,使用x、s、c、d命令均不会覆盖寄存器
"_d命令 黑洞寄存器
P命令 用于将文本插入光标之前
p命令 用于将文本插入光标之后