上一篇讲过了Vim的基本操作命令(打开,编辑,保存退出)以及Vim的三种基本模式和光标的基本导航(hjkl),今天讲一些稍微高级点的光标移动,以及一些基本的文本操作命令。
翻一页/半页
对于一个上千行的文本,如果想光标移动几行或翻页查看,hjkl无疑没法满足我们的需求,如果我们结合CTRL键操作的话,翻页时很轻松的事儿。
CTRL+f:向下翻一页
CTRL+b:向上翻一页
CTRL+d:向下翻半页
CTRL+u:向上翻半页
当然我们只要记住fbdu四个键就行,反正他们是用来与CTRL键组合翻页功能的,具体怎么翻的,自己实践操作几遍就能记住了。
光标一次移动一个单词的长度
w:移动到下一个单词的起始处(既然是w,代表的意思就是word,好记吧)
W:移动到下一个单词的起始处
那么w和W它俩有什么区别呢,w会把一个单词理解成由连续的字母或数字或特殊字符,而W却以空格来识别是否到了下一个单词,一图胜千言
与之相反的两个操作时b和B
b:移动到前一个单词的起始处
B:移动到前一个单词的起始处(b和B的区别与w和W是同理的)
光标在一行内的移动
0(零):移动到行首
$:移动到行未
^:移动到当前行的第一个非空字符处(如果该行首没有空格,那么效果与0是一样的)
g_:移动到当前行的最后一个非空格字符处
插入,追加字符
i:在当前光标位置插入字符
o:在当前行往下插入新的一空行
O:在当前行往上插入新的一空行
a:在当前光标后追加字符
R:替换当前光标的字符直到推出插入模式(按ESC)
:r filename:把文件名为filename的内容插入当当前行的下一行
:r! command:把command返回的结果插入到当前行的下一行
拷贝一个单词、行首、行尾、整行
yw:拷贝当前的一个单词
y0:拷贝的范围是当前光标处到行首
y$:拷贝的范围是当前光标处到行尾
yy:拷贝当前行
nyy:从当前行开始拷贝n行(这里的n是数字)
拷贝完后用p就可以粘贴了。
删除一个单词,行首、行尾、整行
x:删除当前光标处字符(严格来说x不属于插入,因为你还要按i才能插入)
dw:删除当前光标出一个单词
d0:删除光标处到行首的字符
d$:删除光标处到行尾的字符
dd:删除整行
ndd:删除n行(同样n代表数字)