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

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才不知道什么是注释符呢,都是字符而已。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值