LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 984|回复: 4

请问VIM能不能实现这个功能?请进来看看,谢谢!

[复制链接]
发表于 2010-7-31 06:09:26 | 显示全部楼层 |阅读模式
比如有一个文件,内容为
M
ok
mas
ok
max ok
想在每个ok后面添加数字,第一个ok后面跟1,第二个ok后面跟2,以此类推。变成

M
ok1
mas
ok2
max ok3

上面由于内容少,可以手动改,但是如果内容多的话应该如何用VIM实现呢?
先谢谢各位了!
发表于 2010-7-31 08:13:58 | 显示全部楼层
  1. :let n=1 | g/ok\zs\d\?/s//\=n/|let n+=1
复制代码

参考 http://doc.linuxpk.com/53484.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-31 16:00:24 | 显示全部楼层
谢谢 lne1030 的解答,看了网站上的说明还是有点晕。就是定义了变量以后如何使用这个变量呢?
能不能
:let n=1 | %s/ok/ok 后面加上n这个变量,但是不知道怎么使用n这个变量。
请各位热心人解答一下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2010-7-31 17:56:37 | 显示全部楼层
学了一招,这用法好。
不可以用%,但可以这样:
:let n=1|g/ok\zs/s//\=n/|let n+=1
关键点有
g/xxxxxx\zs/
s//\=/
回复 支持 反对

使用道具 举报

发表于 2010-8-1 23:08:27 | 显示全部楼层
  1. :let n=1 | g/ok\zs\d\?/s//\=n/|let n+=1
复制代码

这就是你需要的命令。那个参考网址,只是参考的
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表