插入:
a //在光标当前所在字符位置的后面输入文本数据。
A // 在光标当前所在行的行尾(也即最后一个字符位置)后面输入文本数据。
i //在光标当前所在字符位置的前面输入文本数据。
I //在光标当前所在行的行首(也即在第一个非空白的起始字符)前面输入文本数据。
o //在光标当前所在行下面的行首位置输入文本数据。
O //在光标当前所在行上面的行首位置输入文本数据。
移动光标
在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑. 因此能更快一点移动光标是很有用的.
w 移动光标到下一个单词开头.
e 移动光标到下一个单词结尾
b 移动光标到上一个单词.
0 移动光标到本行最开头.
^ 移动光标到本行最开头的字符处.
$ 移动光标到本行结尾处.
A 移动光标至行尾并处于“追加”状态,直接编辑
H 移动光标到屏幕的首行.
M 移动光标到屏幕的中间一行.
L 移动光标到屏幕的尾行.
gg 移动光标到文档首行.
G 移动光标到文档尾行.
:n 跳至第n行
ctrl + f 向下翻页 同 page down.
ctrl + b 向上翻页 同 page up.
ctrl + d 向下翻半页 此比较有用
ctrl + u 向上翻半页 此比较有用
ctrl + e 向下翻一行
ctrl + y 向上一行
[[ 转到上一个位于第一列的“{”
]] 转到下一个位于第一列的“}”
{ 转到上一个空行
} 转到下一个空行
” 两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置.
‘. 一单一点 此命令相当好使, 它移动光标到上一次的修改行.
`. 一倒引一点 此命令相当强大, 它移动光标到上一次的修改点.
拷贝, 删除与粘贴
在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令
结合的, 看几个例子就能够明白了.
yw 表示拷贝从当前光标到光标所在单词结尾的内容.
dw 表示删除从当前光标到光标所在单词结尾的内容.
daw 表示删除光标所在的单词,不管光标在此单词那一位置
y0 表示拷贝从当前光标到光标所在行首的内容.
d0 表示删除从当前光标到光标所在行首的内容.
y表示拷贝从当前光标到光标所在行尾的内容.
d[D] 表示删除从当前光标到光标所在行尾的内容.
特殊地:
yy 表示拷贝光标所在行.
dd 表示删除光标所在行.
D 表示删除从当前光标到光标所在行尾的内容.
xp 表示交换光标与其后的字符的位置
ddp 表示光标所在行与下一行交换
J 表示光标所在行与下一行合并