我想在每一行的末尾插入该行的字母字符数。在一条线上做到这一点很容易。我使用 :s/\a//gn
搜索并在命令行中获取字母字符的出现,然后是 A
和空格并输入数字。
当我有太多的行时,我的问题就出现了,这样做变得非常乏味。我正在尝试创建一个宏,但很难将命令行输出输入其中。有没有办法在不诉诸 *nix 命令的情况下做到这一点?我可以访问 *nix 框,但不是所有时间。
如果我的文件有以下内容:
abc2d4s
jd4a5ag
jdf7fjf
abdd5ff
我希望输出看起来像这样:
abc2d4s 5
jd4a5ag 5
jdf7fjf 6
abdd5ff 6
我在想是否有办法以某种方式将替换输出通过管道传输到寄存器中,但不知道该怎么做,但也许有更好的方法。
最佳答案
您可以使用 :redir
捕获 :s///gn
命令的输出,但在这种情况下,我宁愿通过 实现计数substitute()
和 :help sub-replace-expression
:
:%s/.*/\=submatch(0) . ' ' . len(substitute(submatch(0), '\A', '', 'g'))/
这匹配整行 (.*
),然后删除所有非字母字符 (\A
),并附加结果的长度。注意:仅适用于 ASCII 字符(但无论如何 \a
仅涵盖这些字符)!
关于vim - 将命令行的输出写入vim中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327203/