zoukankan      html  css  js  c++  java
  • 菜鸟vimer成长记——第2.2章、visual模式

      vi是没有可视模式的。然而大多数编辑软件都都是有可视模式。所以我猜测vim是几乎迫于无奈才有了visual模式。

      个人建议,能不用就不用。这样能直接在头脑里处理好文本,锻炼文本处理能力,同时能转变过来思维习惯。

    目的

    • 掌握visual的基本操作步骤
    • 记住visual独有的用法

    使用步骤

      visual的操作可以分为三个步骤。可以对比normal的二个步骤:操作符+动作命令。

    1. 激活可视模式。一个是因为绝大时间都在normal模式下,需要切换。第二个是因为visual有三种情况。
    2. 移动文本末端。通过移动文本的末端来选择高亮文本。
    3. 输入操作符。最后通过操作符完成本次文本操作。

    激活可视模式

      Vim 具有3 种不同的可视模式,分别用于操作字符文本、行文本或块文本。

      对应的开启语法如下:

    命令用途
    v  激活面向字符的可视模式
    V  激活面向行的可视模式
    Ctrl+v  激活面向列块的可视模式
    gv  重选上次(字符,行,块都可以)的高亮选区
    gn 激活面向字符的可视模式并选中最近一次搜索匹配的文本。相当于搜索的时候n。如果连续使用gn命令,则选取到下一块匹配文本
    gN 激活面向字符的可视模式并选中最近一次搜索匹配的文本。相当于搜索的时候N。如果连续使用gn命令,则选取到上一块匹配文本

    移动文本

    动作命令

      和normal模式的动作命令的用法一样。这里不在赘述。

    修改光标位置

    操作按键用途
    o 切换高亮选区的活动端。即切换高度的开头和结尾
    O(shift+o) 和o一样。只有在visual是块模式的时候,它表示的是当前行被选中的开头和结尾

    操作符

      操作符也和normal模式基本一样。除了下面列的“特殊情况”的地方需要注意,其他的用法都是一样的。

    特殊情况

    1. 在可视模式及操作符待决模式中,i 和a 键表示文本选择的开头。即和normal的文本选择的a和i一个意思。所以按i,a并不能进入insert模式。
    2. 在可视模式及操作符待决模式中,o 和O 键表示切换高亮选区的活动端。所以也不能进入insert模式。

    陷阱

      只要可能,最好用操作符命令,而不是可视命令。

    #假设我们想把下面列表中的链接文字转换为大写格式:
    <a href="#">one</a>
    <a href="#">two</a>
    <a href="#">three</a>

      使用可视模式下的命令进行大写转换:

      1、我们先转一个单词为大写。

      2、好,我们执行一下j. 命令,把光标移到下一行并重复上次的修改。此命令在第二行工作得很好,但如果我们再执行一次,最终就会得到这个看起来有点古怪的结果:

      

      使用普通模式下的操作符命令进行大写转换:

          

      结论:如果我们想使点命令能够重复某些有用的工作,那么最好要远离可视模式。作为一般的原则,在做一系列可重复的修改时,最好首选操作符命令,而不是其对应的可视模式命令。甚至我个人的建议是:不要使用visual模式。

    独有功能

    列模式

      这个是visual独有的功能。在操作一些配置文件,而且文本复杂度很低的时候(比如不需要经过大脑计算就可以到达的,每个人因熟练度不同而异,比如3-10行),可以使用。

      例如:

    • 修改hosts文件里域名的指向,光标前后几行的域名从内网的192.168.1.16修改为127.0.0.1的时候。
    • 在编写脚本的时候,光标前后几行代码需要一会注释掉一会取消注释测试时。

      

    【【【版权所有,转载请注明原文链接。】】】 文中有不妥或者错误的地方还望指出,以免误人子弟。如果觉得本文对你有所帮助不妨【推荐】一下!如果你有更好的建议,可以给我留言讨论,共同进步! 再次感谢您耐心的读完本篇文章。 【【【我们所浪费的今天,是昨天死去的人奢望的明天;我们所厌恶的现在,是未来的自己回不去的曾经】】】
  • 相关阅读:
    三.php变量赋值和销毁
    四.php运算符(1)算术运算符
    四.php运算符(2)比较运算符
    四.php运算符(4)逻辑运算符
    extjs与后台交互
    EXT2.0 form实例
    SQL Server 2005 中的计算字段
    extJSitemselector的使用
    操作二进制数据
    Extjs Itemselector的使用示例
  • 原文地址:https://www.cnblogs.com/ansn001/p/4680966.html
Copyright © 2011-2022 走看看