免费注册 查看新帖 |

Chinaunix

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

vim 中有没有自动编号的功能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-05 22:46 |只看该作者 |倒序浏览
我定义了一个数组,
有什么办法能让 20个 char x[ ]变成char x[0] ....... char x[19]

论坛徽章:
0
2 [报告]
发表于 2007-01-06 08:55 |只看该作者
不知道SEQ能不能做到??

论坛徽章:
0
3 [报告]
发表于 2007-01-06 16:15 |只看该作者
楼主是这个意思不?
$ cat file1
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]
char x[ ]

ICESUMMIT@ICESUMMI ~
$ awk '{printf("%s %s%d%s\n", $1,$2,NR-1,"]")}' file1
char x[0]
char x[1]
char x[2]
char x[3]
char x[4]
char x[5]
char x[6]
char x[7]
char x[8]
char x[9]
char x[10]
char x[11]
char x[12]
char x[13]
char x[14]
char x[15]
char x[16]
char x[17]
char x[18]
char x[19]

论坛徽章:
0
4 [报告]
发表于 2007-01-06 19:05 |只看该作者
set nu :出来行数
set nonu.行数去掉了

论坛徽章:
0
5 [报告]
发表于 2007-01-07 22:05 |只看该作者
原帖由 icesummit 于 2007-1-6 16:15 发表
楼主是这个意思不?

ICESUMMIT@ICESUMMI ~
$ awk '{printf("%s %s%d%s\n", $1,$2,NR-1,"]"}' file1
char x[0]
char x[1]
char x[2]
char x[3]
char x[4]
char x[5]
char x[6]

...


是这个意思,谢谢
遗憾VIM没集成这功能,不过还好总算是有解决办法。

论坛徽章:
0
6 [报告]
发表于 2007-01-07 22:57 |只看该作者
很多时候,并非做不到,而是不会做,不要随便下断言

我这里假设原文件每行都为“char[]”
命令模式,进行下面操作

  1. ggf[a0<Esc>
  2. :map 'a 0f[lywj0f[p<C-A>'a
  3. 'a
复制代码

还有更简约的方法,只是我对vim编程并不在行,忘记了记录行号的变量如何设置
可以
  1. :%s/[]/[???]
复制代码

???那里用一个求算术解的“=”操作符,计算一下当前行号-1。
您如果有兴趣可以自己找材料去学

论坛徽章:
0
7 [报告]
发表于 2007-01-08 03:39 |只看该作者
的确话不可以乱说的^_^
好好去看看vim
%s/\[/\='['.line(".")/

论坛徽章:
0
8 [报告]
发表于 2007-01-08 23:10 |只看该作者
条条大路通罗马,换个思路
:5,10!seq 1 5 | awk '{print "char("$1")"}'

不过我觉得“一梦如是”用<Ctrl+A>的方式作更有Vimer的风范,用vim script有牛刀的感觉。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP