Vim

nvim 規範命令

  • April 27, 2020

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

:put=range(1,4)

將編號列表從 1 到 4

但是當我只想將數字放在這樣的空行中時:

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

它沒有按預期工作-僅突出顯示空行但 put 不起作用,為什麼?

:normal命令僅執行完整的命令,而您的:putEx 命令最後缺少“Enter”以實際執行它。

來自:help :normal

{commands}應該是一個完整的命令。如果{commands}沒有完成一個命令,最後一個命令將被中止,就像<Esc>或被<C-C>鍵入一樣。一個:命令也必須完成。

您可以通過在命令末尾添加一個額外的“Enter”字元來解決此問題,您可以使用以下命令輸入:

Ctrl+V, Enter

它將^M在 Vim 中顯示為:

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

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

但在這種情況下,有一個更簡單的解決方案,即完全放棄:normal並直接:g執行:put

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

:g命令將為它匹配的每一行執行一個 Ex 命令,並且:put是一個 Ex 命令,所以你可以在這裡剪掉中間人。

請注意,此命令的作用是在緩衝區中的每個空白行之後附加 14 個新的編號行。不確定這是否真的是你想要的。

引用自:https://unix.stackexchange.com/questions/582431