nvim 标准命令

nvim 标准命令

在 neovim 0.4.3-3 的正常模式下,此命令:

:put=range(1,4)

将放置从 1 到 4 的编号列表

但是当我只想将数字放在空白行中时,如下所示:

:g/^$/norm :put=range(1,14) 

它没有按预期工作 - 只突出显示空行,但 put 不起作用,为什么?

答案1

:normal命令仅执行完整的命令,并且您的:putEx 命令在末尾缺少一个“Enter”来实际执行它。

:help :normal

{commands}应该是一个完整的命令。如果{commands}未完成命令,则最后一个命令将被中止,就像键入<Esc>或一样。<C-C>:还必须完成命令。

您可以通过在命令末尾添加额外的“Enter”字符来解决此问题,您可以使用以下命令输入:

Ctrl+ V,Enter

它将^M在 Vim 中显示为 a:

:g/^$/norm :put=range(1,14)^M

(有一些方法可以避免在命令中输入文字“Enter”。例如,该:execute命令经常用于此目的。)

但在这种情况下,有一个更简单的解决方案,那就是完全放弃:normal并直接:g运行:put

:g/^$/put=range(1,14)

:g命令将为它匹配的每一行运行一个 Ex 命令,并且:put是一个 Ex 命令,因此您可以在这里省略中间人。

请注意,此命令的作用是在缓冲区中的每个空白行后面附加 14 个新编号的行。不确定这是否真的是您的意图。

相关内容