首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Vim中将行号添加到行的范围?

如何在Vim中将行号添加到行的范围?
EN

Stack Overflow用户
提问于 2008-10-31 07:05:17
回答 5查看 32.3K关注 0票数 71

如何将行号添加到在Vim中打开的文件的行数范围?不是像在:set nu中那样,-this只显示行号-而是实际上将行号放在文件中的每一行的前面?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-10-31 10:18:41

使用

代码语言:javascript
复制
:%s/^/\=line('.')/

编辑:对评论进行汇总。

此命令可以根据您的需要进行调整。

假设您想要在视觉选择(V + move)中的行前面添加数字,并且您希望编号从42开始。

代码语言:javascript
复制
:'<,'>s/^/\=(line('.')-line("'<")+42)/

如果您想在数字和该行中的旧文本之间添加一个字符串,只需将其连接(在VimL中使用. )到数字表达式:

代码语言:javascript
复制
:'<,'>s/^/\=(line('.')-line("'<")+42).' --> '/

如果您需要将其作为文本进行排序,您可能希望对结果进行零填充,这可以使用0001, 0002printf来完成...而不是1, 2。例如:

代码语言:javascript
复制
:%s/^/\=printf('%04d', line('.'))/

无论如何,如果你想了解更多信息,只需打开vim help::h :s并点击链接(|subreplace-special|,...,|submatch()|)

票数 116
EN

Stack Overflow用户

发布于 2008-10-31 07:10:03

cat -n将行号添加到其输入。您可以将当前文件通过管道传输到cat -n,并将当前缓冲区替换为打印到标准输出的内容。幸运的是,这个复杂的解决方案在vim中少于10个字符:

代码语言:javascript
复制
 :%!cat -n

或者,如果只需要部分选择,则以可视方式选择该区域,然后键入以下内容:

代码语言:javascript
复制
 :!cat -n

这将自动将视觉选择标记放入其中,并且在您键入后将如下所示:

代码语言:javascript
复制
 :'<,'>!cat -n

为了擦除行号,我建议使用control-v,这将允许您直观地选择一个矩形,然后您可以使用x删除该矩形。

票数 33
EN

Stack Overflow用户

发布于 2008-10-31 07:13:00

在GNU系统上:使用外部nl二进制文件:

代码语言:javascript
复制
:%!nl
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/252766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档