Vim插入模式
Tip13 Make Corrections Instantly from Insert Mode
插入模式下进行更正
在插入模式下更正错误首先想到退格键,它删除光标前的字符。另外还有使用以下组合键:
按键操作 | 用途 |
---|---|
< C – h > | 删除前一个字符(同退格键) |
< C - w > | 删除前一个单词 |
< C - u > | 删至行首 |
注:这些快捷键不是插入模式独有的,甚至不是vim独有的,在vim命令行模式,以及bash shell , cmd, powershell
中也可以使用他们。
Tip14 Get Back to Normal Mode
返回普通模式
插入模式只专注于一件事,就是输入文字。普通模式才是我们大部分时间所用的模式。
切换会普通模式的经典方式是 <Esc>
键,我们也可以用< C – [ >
替代,效果完全一样。
按键操作 | 用途 |
---|---|
< Esc > | 切换回普通模式 |
< C – [ > | 切换回普通模式 |
< C - o > | 切换至插入 - 普通模式 |
插入 - 普通模式:普通模式的一个特例,它能让我们执行一次普通模式命令,执行完毕之后,马上有回到插入模式。
例:使用zz
命令使光标重新位于屏幕中间。键入< C - o > zz
,在普通模式下触发命令,重绘屏幕,此操作完成后会直接回到插入模式,因此可以不中断打字。
Tip15 Paste from a Register Without Leaving Insert Mode
不离开插入模式,粘贴寄存器中的文本
Keystrokes | Buffer Contents |
---|---|
yt, | Practical Vim, by Drew Neil Read Drew Neil’s |
jA␣ | Practical Vim, by Drew Neil Read Drew Neil’s |
< C – r >0 | Practical Vim, by Drew Neil Read Drew Neil’s Practical Vim |
. |
Practical Vim, by Drew Neil Read Drew Neil’s Practical Vim. |
yt, - 光标到第一个 “,” 之间的文本放入寄存器
jA␣ - 光标移动到下一行, 然后定位到行末并切换为插入模式, 再输入一个空格
.
Tip 16 Do Back-of-the-Envelope Calculations in Place
数学计算
Keystrokes | Buffer Contents |
---|---|
A | 6 chairs, each costing $35, totals $ |
6 chairs, each costing $35, totals $210. |
Tip 17 Insert Unusual Characters by Character Code
用字符编码插入非常用字符。插入一些无法通过键盘输入的字符(目前需求不大)
Tip 18 Insert Unusual Characters by Digraph
用二合字母插入非常用字符。插入一些无法通过键盘输入的字符(目前需求不大)
Tip 19 Overwrite Existing Text with Replace Mode
覆盖模式
普通模式下按 R
即可开启覆盖模式; r / gr
仅覆盖一个字符
用虚拟替换模式替换制表符:
一些字符使替换模式变得复杂化。以制表符为例,在文件中它以单个字符表示,但在屏幕上它却会占据若干列的宽度,此宽度由 ‘tabstop’ 设置决定。如果把光标移到制表符上,然后进入替换模式,那么我们所输入的下一个字符将会替换制表符。假设 ‘tabstop’ 选项设置为 8(这是缺省值),那么该操作的结果就是把 8 个字符替换成了一个字符,这将大幅缩短当前行的长度。
Vim 还有另外一种替换模式,称为虚拟替换模式(Virtual Replace mode)。该模式可由 gR 命令触发
,它会把制表符当成一组空格进行处理。假设我们把光标移到一个占屏幕 8 列宽的制表符上,然后切换到虚拟替换模式,在输入前 7 个字符时,每个字符都会被插入到制表符之前;最后,当输入了第 8 个字符时,该字符将会替换制表符。
在虚拟替换模式中,我们是按屏幕上实际显示的宽度来替换字符的,而不是按文件中所保存的字符进行替换。这会减少意外情况的发生,因此建议在可能的情况下尽量使用虚拟替换模式。