使用 Vim 在文本文件的每行开头插入单个连续数字

lor*_*age 1 vim text-processing

假设我有一个包含一些字符串的文本文件:

\n\n
string_g\nstring_r\nstring_qqwer\nstring_p\nstring_f\nstring_3qw\nstring_e\nstring_qw\n
Run Code Online (Sandbox Code Playgroud)\n\n

我需要在字符串之前插入递增或递减的数字:

\n\n
001 string_g\n002 string_r\n003 string_qqwer\n004 string_p\n005 string_f\n006 string_3qw\n007 string_e\n008 string_qw\n
Run Code Online (Sandbox Code Playgroud)\n\n

只是为了避免混淆:

\n\n

我不想显示行号。我知道那是如何运作的。我想要的是文本中每个字符串开头的实际数字。

\n\n

有没有办法自动执行此操作vim

\n\n

CTRL我可以用-标记每个字符串的开头V,然后键入:进入执行模式,这将允许我在选择上执行命令,:'<,'>但 I\xe2\x80\x99m 卡在那里。

\n

小智 5

使用外部unix命令nl

:'<,'>!nl -w 3 -n rz -s' '
Run Code Online (Sandbox Code Playgroud)

  • 我自己得到了: `:'&lt;,'&gt;!nl -v 180 -w 3 -n rz -s' '` (很抱歉询问并且没有先阅读联机帮助页!) (2认同)