入手VI, 并不像GEEK们描述的那样,VI无所不能, VI友好无比, 直接抛给入门着的难题是, 多个复杂的指令, 以及CPU滴滴的报警声.
抛开直观的VI模式管理,命令模式,输入模式,以及这些模式下的各类指令不理会, 一个简单的问题,可以让人头疼不已:
如果复制从当前位置, 到指定某行的某个位置的复制,删除?
N多教程给了以下答案:
yy--------> 复制一行
5yy--------> 复制当前的五行
按照p粘贴后,再用x将不需要的字母一个个删除掉。
删除行的话,当然是DD, 或者是多行删除的5DD.
这些完全可以玩死从window过来的用户们: 数数字的游戏方案太过累人了, 想想windows拖动鼠标的完美方案, 顿时就不想在黑底白字的vi继续搔头挠耳了。
其实VI提供的一个强悍的模式是visual模式, 这个模式正是让给人一个更直观的映像的。
1. 按esc 键进入命令模式
2. 强烈建议你这么做,输入(: set showmode), 用来观察当前编辑器处于什么模式下.
3. 输入v, 可以看到编辑器进入visual模式了
4. 此时按住方向键, 即可以选中一个区域,可以精确定位到那行,哪个字母
5. 这个时候,你就复制(输入p), 删除(输入d), 文本就可以复制和删除, 输入任意字母,将替换选中区域的文本。
简单而言: 对于一个编辑器而言, 需要的功能无非是:
复制,粘贴,删除, 查找,替换
在做这些动作之前, 需要选定对象,所以,visual模式给了一个非常好的选择。
另外的一些值得借鉴的地方是:
1. set number 标注行号
2. / + 输入string 查找字符串
3. R , 进入替换模式,输入的字符串覆盖光标所在的文本,且随光标移动而逐步覆盖,r只覆盖一个
后面将陆续补充一些非常提高效率的tips