neovim 0.4.3-3の通常モードでは、このコマンドは次のようになります。
:put=range(1,4)
1から4までの番号付きリストを配置します。
しかし、次のように空の行に数字を入力したい場合は、次のようになります。
:g/^$/norm :put=range(1,14)
期待どおりに動作しません。空行だけが強調表示されますが、putは機能しません。なぜですか?
答え1
この:normal
コマンドは完全なコマンドのみを実行し、:put
Exコマンドには実際に実行するための「Enter」はありません。
~から:help :normal
:
{commands}
完全なコマンドでなければなりません。コマンドが完了しないと、orと{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の新しい番号付き行を追加します。これが本当にあなたの意図であるかどうかはわかりません。