系统:Ubuntu 16.04
//只测试了C和C++的文件编辑,理论上通用
1,新建终端,cd到目标文件夹后输入vi filename
2,打开或创建文件后进入了文档的一般模式,输入(i/a)进入插入模式,即可进行文本编辑,区别在于文本插入位置相对光标的位置不同。
3,插入模式时点击Esc按键即退回一般模式。
4,一般模式中输入ff,复制光标对应行内容,然后按Enter键后,移动光标至目标位置,输入p粘贴至光标所在位置。
5,一般模式中输入:
:w 保存;
:w filename 另存为filename;
:wq 保存退出;
:wq filename 注:以filename为文件名保存后退出;
:q! 不保存退出;
h,j,k,l分别控制光标←,↓,↑,→移动
Ctrl+f/b 向下/向上翻页
+/- 光标移动至上/下一个非空列
0/home 光标移动至当前行最前端
$ 光标移动至当前行最后
shift+g 光标移动至文档最末尾 ng:光标移动至文档第n行 gg:光标移动至文档第1行
n(数字) 光标下移n行
/word~?word 光标之前~之后查找字符串word
n/N 重复/反向执行上一步的查找
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
:n1,n2s/word1/word2/g 在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
x/X 删除光标前/后一字符 (前面加上数字n,表示删除n个)
dd 删除光标所在整行 (前面加上数字n,表示删除n行,向下)
d1G/dG 删除光标至第一行/最后一行
yy 复制光标所在行 (前面加上数字n,表示复制n行,向下)
y1G/yG 复制光标至第一行/最后一行
p/P 将复制信息粘贴至光标前/后
u 复原上一操作
Ctrl+r 重做上一操作
6,VI卡死,无法输入,也无法ESC,可能是不小心按了CTRL+S,按CTRL+P即可退回命令模式。