对于真正的vim用户,插入模式是不存在的。在普通模式下有更多的操作命令。
1、单个字符的删除操作
在普通模式下使用x删除单一字符和在插入模式下的delete键的效果一样。
2、更多删除命令
使用删除操作符d的删除命令的格式: d motion
d是Delete(删除)的意思,motion即指定要删除的对象,所以这个命令可以很灵活!
motion其实是一些表示操作范围的指令,比如:
按 键 | 含义 |
0 | 将光标定位到行首的位置 |
^ | 同上 |
$ | 将光标定位到行尾的位置 |
b | 将光标定位到光标所在单词的起始处 |
e | 将光标定位到光标所在单词的结尾处 |
w | 将光标定位到下一个单词的起始处(注意,是光标所在单词的下一个单词) |
gg | 将光标定位到文件的开头 |
G | 将光标定位到文件的结尾 |
没错,在vim普通模式下使用以上的按键来移动光标,比单纯多点击几次h、j、k、l按键省心多了。
将d命令跟他们结合,无疑是如虎添翼、珠联璧合、相得益彰
按键 | 含义 |
d0 | 删除光标从当前位置(不包含)到该行行首的所有字符 |
d^ | 同上 |
d$ | 删除从光标当前位置(包含)到该行行尾的所有字符 |
db | 删除从光标当前位置(不包含)到单词起始处的所有字符 |
de | 删除从光标当前位置(包含)到单词结尾处的所有字符 |
dw | 删除从光标当前位置(包含)到下一个单词起始处的所有字符 |
dh | 删除光标前边一个字符 |
dl | 删除光标指定的字符 |
dj | 删除光标所在行以及下一行的所有字符 |
dk | 删除光标所在行以及上一行的所有字符 |
dd | 删除光标所在行的字符 |
dgg | 删除光标所在行到开头的所有字符 |
dG | 删除光标所在行的字符 |
3、数字的奥义
vim还可以用数字干更多的事,比如平时点一下h是将光标向左移动一格,而在其前边输入数字3,即3h这是向前移动3格,以此类推3j则是将光标向下移动三行,3w则是将光标三个单词后的开始位置....
同样的,d3h表示删除光标前的3个字符,d3j表示删除光标所在行以及下边3行的所有字符,而d3w则表示向后删除当前光标到后边第三个单词前的所有字符
4、撤销和恢复
u 表示撤销最后一次修改
U 表示撤销对整行的修改
Ctrl+r 快捷键可以恢复撤销的内容
备注:上边所有的“删除”操作并不是真的删除,它们事实上是存放在VIM的一个缓冲区(vim称之为寄存器)中,相当于Windows的剪切功能!!