Vim
nvim 規範命令
在正常模式下的 neovim 0.4.3-3 中,此命令:
:put=range(1,4)
將編號列表從 1 到 4
但是當我只想將數字放在這樣的空行中時:
:g/^$/norm :put=range(1,14)
它沒有按預期工作-僅突出顯示空行但 put 不起作用,為什麼?
該
:normal
命令僅執行完整的命令,而您的:put
Ex 命令最後缺少“Enter”以實際執行它。
{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 個新的編號行。不確定這是否真的是你想要的。