免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3054 | 回复: 5
打印 上一主题 下一主题

[已解决]关于Vim的一个问题, 全局匹配并拷贝到剪贴板 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-19 22:12 |只看该作者 |倒序浏览
今天使用Vim分析一个日志的时候, 发现, 使用全局匹配并拷贝的命令时候, Vim和我预想的并不一样, 就多作了一些测试, 也读了Vim帮助, 但是现象和文档还是对不上.

:g/pattern/y a
根据文档, 这个命令会把所有匹配"pattern"的行, 拷贝(yank)到剪贴板(register) a中去.

:g/pattern/y A
根据文档, 这个命令和上面一个的区别是, 匹配的内容是被附加到剪贴板 a中去的.

但是当我使用
"ap     
这个命令想将前面的内容粘帖到另一个buffer中去的时候发现
使用小a的第一个命令, 只能粘帖出匹配的最后一行
使用大A的第二个命令, 行为和文档是相符的. 如果原来剪贴板为空, 则粘帖内容是准确的匹配的所有行; 如果原来剪贴板中有内容, 则粘帖内容是原内容和匹配内容的和, 即拷贝是附加在剪贴板中的

我又做了
"a3yy 和"ap
"A3yy和"ap
行为又和文档都是吻合的. 小写的a的方式, 拷贝3行, 不管原来是否有内容, 粘帖后就这三行.

在vim7.1 on windows和vim6.3 on centos问题是一样的

哪位大侠指点一二?

[ 本帖最后由 rexh7 于 2007-7-20 18:02 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-07-20 07:59 |只看该作者
自己顶一下

论坛徽章:
0
3 [报告]
发表于 2007-07-20 08:36 |只看该作者
:g/pattern/y a
每一次匹配到都是清空后增加也很合理啊

论坛徽章:
0
4 [报告]
发表于 2007-07-20 09:45 |只看该作者
不如说我匹配到10行, 应该十行都被yank到a去,

但是我试下来, 自由最后一个匹配行被yank到a中去了.

这是我无法理解的地方, 根据文档也没发现我的命令有什么错误

论坛徽章:
0
5 [报告]
发表于 2007-07-20 10:56 |只看该作者
命令没错
g/patern/y a
的意思是在每一个 patern上都执行一次  y a
很显然你只能得到最后一行,因为后面一个y a覆盖前一个

而 “a3yy
意思是在指定的reg  a 上面保存  3yy 的内容

问题在于你对g命令的理解上

论坛徽章:
0
6 [报告]
发表于 2007-07-20 17:55 |只看该作者
明白了. 这也是为什么大A可以工作的很好的原因.

谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP