vim 复制某关键字的行 在连…

    xiaoxiao2021-12-14  40

    Q:想复制含有某个关键字的所有行到另外一个文件中,该如何操作呢? 例如: <1>this is a book; <2>this is a dog; <3>this is a english book; 要将所有含book的行copy出来。 方法: " Clear register A :let @a="" " Append all lines which matchs book to register A :g/book/y A " Open a new buffer :new " Paste content of register A into the new buffer :put a 解释: :let @a="" 使用let命令寄存器a里的内容清空 :g/book/y A 把所有包含book的行都添加到寄存器a中。注:此处是A而不是a,A意味着符合要求的行都被追加到寄存器a中,而a则意味着符合要求的行都会替代寄存器里的内容,如果用a就会导致最后寄存器里只有符合要求的最后一行。 至此,所有包含book的行都在寄存器a里面了。 :put a 把寄存器a里的内容粘贴出来

    也可以直接写到文件中去::g/book/. w >> filename

    附:vim剪切板与命令行 Q: 如何将命令模式下复制的东西黏贴到:命令行里? :" :help quotequote 或者: :shift+insert 按键操作: 注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"#",再按Esc,就会全部注释了。 删除:先按v,进入visual模式,横向选中列的个数(如"#"注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号(#)。 PS:当然不一定是shell的注释符"#",也可以是"//",或者其他任意的字符;vim才不知道什么是注释符呢,都是字符而已。
    转载请注明原文地址: https://ju.6miu.com/read-964791.html

    最新回复(0)