免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: flw
打印 上一主题 下一主题

使用 vim 有疑问的朋友们请在此跟贴提问 [复制链接]

论坛徽章:
0
281 [报告]
发表于 2005-07-04 11:38 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

[quote]原帖由 "mq110"]求教.终端参数在那里修改?[/quote 发表:

呵呵话没说明白不好意思,是secureCRT设置的问题,Emulation->;modes

论坛徽章:
0
282 [报告]
发表于 2005-07-06 10:57 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

1. VIM 能不能定义书签,可以很快的定位到书签所在的行。

2. 当一行很长的时候会产生wrap。怎么在wrap之后的行上下移动?
比如
1111111111111111111111111111111111111111111111
2222222222222222222222222222222222222222222222
3333333333333333333333333333333333333333333333
能不能直接从11...那行向下移动到22... 33..那行?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
283 [报告]
发表于 2005-07-07 15:59 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

原帖由 "prc" 发表:
1. VIM 能不能定义书签,可以很快的定位到书签所在的行。

2. 当一行很长的时候会产生wrap。怎么在wrap之后的行上下移动?
比如
1111111111111111111111111111111111111111111111
2222222222222222222222222222..........

1, ma mb mc 就可以定义标签,用 'a 'b 'c 就可以很快到达标签所在的行。
a b c 分别是标签的名字,可用的标签名称有 26 个字母和 0-9 十个数字,还有一些特殊符号也可以用。

2,gj gk 分别可以向下、向上移动一个物理行,g0 g$ 分别可以到达物理行的行首、行尾,当 wrap on 时,一个逻辑行会自动折行成多个物理行。

论坛徽章:
0
284 [报告]
发表于 2005-07-11 02:10 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

例如这样一个txt
1 23 45 67
1234 566 7 89
怎样才能匹配23 和 566 ?

这个问题折腾了我很久。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
285 [报告]
发表于 2005-07-11 08:08 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

  1. /\<23\>;
  2. /\<566\>;
复制代码

其实你只要在搜索的时候带上空格就可以了。

论坛徽章:
0
286 [报告]
发表于 2005-07-12 02:20 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

原帖由 "ynsmcn" 发表:
例如这样一个txt
1 23 45 67
1234 566 7 89
怎样才能匹配23 和 566 ?

这个问题折腾了我很久。。。


我没说清楚,我经常需要处理结构类似这样的数据文本,需要匹配其中某列(非定长),我想使用"%s/ .* /& &/"这个命令替换第二列,但是vim做了最大匹配,有没有什么好办法?
这个例子分成两步做是可以的,但是我希望能指定正则表达式最小匹配,或匹配第几次出现的空格(因为可能要匹配中间的列,需要替换空格很多次),不知道vim能不能做到?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
287 [报告]
发表于 2005-07-12 10:21 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

原帖由 "ynsmcn" 发表:
我没说清楚,我经常需要处理结构类似这样的数据文本,需要匹配其中某列(非定长),我想使用"%s/ .* /& &/"这个命令替换第二列,但是vim做了最大匹配,有没有什么好办法?
这个例子分成两步做是可以的,但是我希..........

你最好讲清楚你的文本格式,否则我将十分同情你而爱莫能助。

1,每行的列数都是固定的吗?
2,列的分隔符一定是空格吗?
3,每个字段都有哪些符号组成?汉字?数字?字母?标点符号?

初步考虑,用 {} 量词应该可以匹配,如果替换比较难做的话,可以考虑用宏。

论坛徽章:
0
288 [报告]
发表于 2005-07-13 17:57 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

多谢斑竹关注!

我要处理的格式就是上面那样的,可以认为全部是数字,列数固定,分隔符一定是空格。要做的就是用某列前后两个空格将此列匹配出来。

实际上这个问题可以简化为怎么使用正则表达式的非贪婪模式,这几天我已经查到了元字符是{-},但是没试验成功。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
289 [报告]
发表于 2005-07-13 18:30 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

原帖由 "ynsmcn" 发表:
多谢斑竹关注!

我要处理的格式就是上面那样的,可以认为全部是数字,列数固定,分隔符一定是空格。要做的就是用某列前后两个空格将此列匹配出来。

实际上这个问题可以简化为怎么使用正则表达式的非贪婪模式,..........

非贪婪模式用 \{-\} 来实现。
注意 vim 中 {} 需要带斜杠。

论坛徽章:
0
290 [报告]
发表于 2005-07-14 12:21 |只看该作者

使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!

谢谢斑竹,问题解决了。我没弄懂vim的懒惰模式要转义。
我觉得vim的正则表达式元字符的用法有点怪,倒是微软的比较接近unix的习惯。
以前用Sco unix的vi用多了,现在学习vim很不习惯。呵呵。努力中。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP