使用 evil 之前,得了解 vi/vim 的一些基本常识。
命令模式下的游标是一个方块,它的当前位置是指块的最左边。下图中当前游标所在位置是两个 e 的中间。
文章目录
模式
命令模式(执行管理任务)
- 所输入的内容被解释成命令,功能包括
- 保存文件、执行命令
- 移动游标、剪切、粘贴多行或多个单词、查找、替换
- 所输入的任何字符被解释成命令
- 命令模式包含
末行模式
(last line mode/指令列命令模式)
末行模式
末行模式在命令模式下输入 :
进入。由于此时光标移动到最后一行,因此得名。
插入模式(向文件中输入文本)
键入所有内容被认为是文本输入。
在命令模式下输入以下命令将进入插入模式。没有进入插入模式的会注明。
命令 | 结果 |
---|---|
i | 在当前游标位置之前 插入文本 |
I | 在当前行的开始处 插入文本(非空字符的行首) |
a | 在当前游标位置之后 插入文本 |
A | 在当前行的结尾处 插入文本 |
o | 在当前行下面新建一行 |
O | 在当前行的上面新建一行 |
s | 删除游标后 的一个字符 |
S | 删除游标所在的行(删除当前行) |
r | 替换(覆盖)当前游标位置之后的一个字符,然后进入命令模式 |
R | 替换(覆盖)当前游标位置及后面的若干文本(进入替换模式 ) |
cc | 删除当前行内容 |
cw | 删除游标所在位置到单词末尾 |
ch | 删除游标位置之前的一个字符 |
cl | 删除游标位置之后的一个字符 |
cj | 删除当前行和下一行 |
ck | 删除当前行和上一行 |
提醒,想在下图行末加个空格时,命令模式下移到最后一个字符,再键入 a
(原来没做这个总结时,不知道有向后插入的命令,我都是先键入 i,再 C-e 到最后的,边摁边想这也太麻烦了。现在再想真的太羞耻了 😒
当然也可以直接 A
可视模式
这个一开始不必掌握,而且能在命令模式下解决的就尽量不进入可视模式解决(使用 C-v 真的很方便)
在命令模式下输入以下命令进入可视模式
命令 | 结果 |
---|---|
v | 逐个字符选择文本 |
V | 逐行选择文本 |
C-v | 按照块的方式选择文本(忽视行,可以理解为面向列) |
gv | 重选上次的高亮区域 |
高亮选区由两个端点确定:一个固定的端点,一个活动的端点。
字符 o
可以在不同的的端点之间来回的切换。
其中块选中的理解可以参考 cmd 下选中文本块。
当我们选中了一片高亮区域后,可以使用如下命令对高亮区域进行操作:
命令 | 效果 |
---|---|
d | 剪切选中文本 |
c | 修改选中文本 |
r | 替换选中文本 |
I | 在选中文本前插入 |
A | 在选中文本后插入 |
gu | 选中区域 |