1. 当编辑之后,想删除之前的编辑,从进入文件时的状态重新开始,请输入::e!(命令模式下)

  2. 当进入没有写权限的文件,而编辑已经完成,不想退出,此时可以把当前编辑的文本内容保存你一个你有写权限的目录,请输入::w /tmp/newfile

  3. 当你想在vi中做一些系统的操作,请输入::!df -h或者:!rm file或者:!ls /tmp,或者更加直接的方式:sh,这时会切换到一个子shell中进行操作,exit或者CTRL+D即退出回来vi编辑中,也可以用CTRL+Z的方式,把当前的vi操作放入后台,用fg回来

  4. 为了编辑中自动换行,必须设定与右边界的距离,否则你输入再长的文本,尽管显示上可能是几行,但实际上就是一行,设定的命令是::set wm=x(x表示字符的长度,自己自由设定),输入完,想查看效果如何,请输入::set nu,来显示文本的行号

  5. 基本的移动命令:h(左),j(下),k(上),l(右)--------->一次只一定一个基本单位

        块文本移动:

                   1.单词:w(下个单词),b(上个单词),可以以5w,3b这样加上数字的方式,来进行多单词间的移动

                   2.行间移动(首尾):0(行首),$(行尾)

                   3.到单词的结尾:e和E

6.  文本的操作,i(插入),a(添加),c(更改),d(删除),r(替换),y(复制),p(粘贴,也可以叫放置)

简单做个说明:i和a在插入文本的时候很常用,i表示在当前光标所在位置前插入文本,a表示在当前位置后插入文本;请注意c的使用,你得告诉编辑器你要更改的范围,比如,c2w,即表示当前所在位置,以及向后的两个单词文本块,常用的有c0,c$表示当前位置到行首或者行尾的修改,内容会被先删除,之后进行插入的动作,或者cc,则是替换整行的内容,本行先会被清空,等待输入,而C则会从光标所在位置,删除到行尾的文本,然后等待输入

7.  现在总结一个小的公式:(command)(number)(text object)=(number)(command)(text object),举例说明一下,就是d2w与2dw,都是删除两个单词文本块,工作原理是前面两个是可选项,以最后移动的方式为根基,加上数字,就是移动的范围,加上命令,就是随后的操作的方式

8.  前文中r可以替换单个字符,如果你想加入很多内容,则可以用s,S则会直接删除整行,把光标放在行首,等待输入,和cc效果一样

9.  ~波浪,这个符号很有意思,就是大小写字母的更改,而且可以加上参数,5~表示光标位置后面的五个字符有小写改到大写,或者是从大写改到了小写

10. d命令,注意D表示d$,可以加参数,dd表示删除整行,加上数字可以删除多行;想删除单个字符呢?则可以使用x,当然也支持参数,2x表示向后删除两个字符,请尝试X的删除效果

11. u和p都是做恢复使用,稍后做专门的介绍

12. .句点,表示重复上次的操作

13. 50i*[Esc][Esc],则可直接插入50个*字符,插入命令也是可以接受参数的,o与O则不能接受参数,比较特殊

14. J可以合并上下两行,合并多行,可以用numberJ的方式

15. CTRL+F 向结尾翻一屏;CTRL+B 向首部翻一屏 CTRL+D 向结尾翻半屏 CTRL+U 向首部翻半屏

16. 放置光标在屏幕中的位置:z表示移动到屏幕的顶端并翻屏,z.表示把光标移动屏幕的中间并翻屏,z-表示把光标移动到屏幕的最下方并翻屏

17. H表示把光标移动到屏幕顶端,M移动到中间,L则是下端,此时并没有翻屏的操作