如何用gvim复制包含某个特定关键字的所有行

200 views
Skip to first unread message

Fred Wang

unread,
Jan 22, 2013, 3:48:21 AM1/22/13
to vim...@googlegroups.com
一个文件A里面有很多行,如果某行包含了关键字keyword,那么该行就要被复制。我希望能
把所有包含该关键字keyword的所有行一次性复制,粘贴出来,该如何做?


--
####################
my twitter:@kenshinji

Xell Liu

unread,
Jan 22, 2013, 4:03:05 AM1/22/13
to vim...@googlegroups.com

2013/1/22 Fred Wang <gundam0...@gmail.com>

--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
 
 
 

很简单,假设你的关键字是 KeyWord

:%g/KeyWord/normal yyGp

即可做到。

解释:对于包含 KeyWord 的任何行,执行 normal mode 命令:复制此行yy、跳到文件末尾G、粘贴p

Techlive Zheng

unread,
Jan 22, 2013, 4:05:29 AM1/22/13
to vim...@googlegroups.com
On 13-01-22, Fred Wang wrote:
> 一个文件A里面有很多行,如果某行包含了关键字keyword,那么该行就要被复制。我希望能
> 把所有包含该关键字keyword的所有行一次性复制,粘贴出来,该如何做?
>
`:help grep`, 不过 `:grep keyword % > file` 可以输出关键字的行到文件
file

AleiPhoenix (A.K.A Areverie)

unread,
Jan 22, 2013, 4:11:41 AM1/22/13
to vim...@googlegroups.com
某的第一反应是为啥不用grep....



所以某vim永远用不好


2013/1/22 Fred Wang <gundam0...@gmail.com>

--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
 
 
 



--
Silence is golden.

twitter: @areverie
wikipedia: AleiPhoenix
blog: weblog.areverie.org
wiki: wiki.areverie.org

夏凯

unread,
Jan 22, 2013, 4:18:52 AM1/22/13
to vim...@googlegroups.com
On 2013年01月22日 16:48, Fred Wang wrote:
> 一个文件A里面有很多行,如果某行包含了关键字keyword,那么该行就要被复
> 制。我希望能
> 把所有包含该关键字keyword的所有行一次性复制,粘贴出来,该如何做?
%!grep keyword 这样?

Techlive Zheng

unread,
Jan 22, 2013, 4:12:23 AM1/22/13
to vim...@googlegroups.com
试了一下,还是直接调用 shell 命令来的方便,`!grep keyword % |
gpaste`,可以直接复制到剪贴板,或者使用 xpaste 还是什么来着。

依云

unread,
Jan 22, 2013, 7:42:23 AM1/22/13
to vim...@googlegroups.com
xsel?

PS: 如果缓冲区已修改,那么你的命令结果不对了。这样:

:w !grep pattern | xsel -i

--
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
--
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

Techlive Zheng

unread,
Jan 22, 2013, 8:19:00 AM1/22/13
to vim...@googlegroups.com
On 13-01-22, 依云 wrote:
> On Tue, Jan 22, 2013 at 05:12:23PM +0800, Techlive Zheng wrote:
> > On 13-01-22, Techlive Zheng wrote:
> > > On 13-01-22, Fred Wang wrote:
> > > > 一个文件A里面有很多行,如果某行包含了关键字keyword,那么该行就要被复制。我希望能
> > > > 把所有包含该关键字keyword的所有行一次性复制,粘贴出来,该如何做?
> > > >
> > > `:help grep`, 不过 `:grep keyword % > file` 可以输出关键字的行到文件
> > > file
> > 试了一下,还是直接调用 shell 命令来的方便,`!grep keyword % |
> > gpaste`,可以直接复制到剪贴板,或者使用 xpaste 还是什么来着。
>
> xsel?
>
> PS: 如果缓冲区已修改,那么你的命令结果不对了。这样:
>
> :w !grep pattern | xsel -i

恩,是的,这个最理想了

Jarod

unread,
Jan 23, 2013, 12:14:21 PM1/23/13
to vim...@googlegroups.com
赞 normal 的command。

我是直接
:g/pattern/y

在 2013年1月22日星期二UTC+1上午10时03分05秒,Xell Liu写道:

東方嵐

unread,
Feb 5, 2013, 12:08:29 AM2/5/13
to vim...@googlegroups.com
在 2013年1月24日星期四UTC+8上午1时14分21秒,Jarod写道:


这种情况我一般是找一个空的寄存器,比如 "a, 然后用 :g/pattern/y A
大写的 A 表示附加到寄存器 A 中去。
Reply all
Reply to author
Forward
0 new messages