美文网首页
Vim 点范式(用一键移动,另一键执行),查找并手动替换

Vim 点范式(用一键移动,另一键执行),查找并手动替换

作者: 赛亚人之神 | 来源:发表于2019-02-18 10:31 被阅读2次
    点:表示重复上次的修改

    一、案例:在行尾添加内容,例如在行尾添加 ;

    1. 要实现这一点,先得把光标移到行尾,然后切换到插入模式进行修改。 $ 命令可以完成移动动作,接着就可以执行 a ; <Esc> 完成修改了
    2. a 命令在当前光标之后添加内容
      A 不管光标处于什么位置,输入 A 都会进入插入模式,并把光标移到行尾,相当于封装了 $a 的操作
    image.png
    复合命令(执行命令后会插入模式) 等效长命令
    C 从当前字符删除到行尾 c$
    s 先删除光标下的字符 cl
    S 删除当前行 ^c
    I (在当前行行首插入) ^i
    A (在当前行行尾插入) $a
    o (在下一行插入) A<CR>
    O (在上一行插入) ko

    使用这些复合命令减少无关的移动

    二、案例:在一个字符前后个添加一个空格

    var foo = "method("+argument1+","+argument2+")";
    

    使修改可重复

    image.png
    1. f+ 找到加号位置
    2. s 删除当前光标下的字符,进入插入模式,输入空格,加号,空格,<Esc> 回车退出插入模式(退一步,进三步)
    3. ; 分号命令会重复查找上次 f 命令所找到的字符
    4. . 点执行修改
    5. ;. 分号点重复以上步骤

    可重复的操作及如何回退

    目的 操作 重复 回退
    做出一个修改 {edit} . u
    在行内查找下一个指定字符 f{char}/t{char} ; ,
    在行内查找上一个执行字符 F{char}/T{char} ; ,
    在文档中查找下一处匹配项 /pattern<CR> n N
    在文档中查找上一处匹配项 ?pattern<CR> n N
    执行替换 :s/target/replacement & u
    执行一系列修改 qx{changes}q @x u

    三、第二个重点命令 *: 查找当前光标下的单词
    例子:将下面的部分 content 修改为 copy

    ...We're waiting for content before the site can go live...
    ...If you are content with this, let's go ahead with it...
    ...We'll launch as soon as we have the content...
    

    偷懒的办法:无需输入(不使用 f 命令)就可以进行查找
    调用查找提示符,并输入完整的单词来查找 content

    /content<CR>
    // 或者手动把光标移动到需要查找的单词上,然后按 * 键
    
    image.png
    说明:光标定位到 content 上,使用 * 命令对它进行查找。这会产生两个结果:1. 光标会跳到下一个匹配项上。2. 所有这个单词出现的地方会被高亮显示出来。执行过一次查找 content 的命令后,只需要按下 n 键就可以调到下一个匹配项上
    cw 命令会删除从光标位置到单词结尾间的字符,并进入插入模式,输入 copy<Esc>
    Vim会把离开插入模式之前的全部按键操作记录下来,因此整个 cwcopy<Esc> 会被当成一个修改

    如果想替换所有地方可以使用命令

    :%s/content/copy/g
    

    相关文章

      网友评论

          本文标题:Vim 点范式(用一键移动,另一键执行),查找并手动替换

          本文链接:https://www.haomeiwen.com/subject/whnoeqtx.html