Vimでは、使用するとき
:r !ls somefilename
現在の行の下の新しい行にそのコマンドの出力を挿入します。
私が行った場合
let @a = system("ls")
以降
"ap
現在の行の下の新しい行に出力を挿入します。
現在の場所でvim insertの出力を作成する方法はありますか?
挿入モードでCtrl-R *を使用して、クリップボードバッファーの内容を文字間で貼り付けることができます(他のバッファーでも同様の方法です)。したがって、システムコマンドをバッファに取得できる場合は、設定する必要があります。 (ソース: https://stackoverflow.com/questions/1491135/paste-multi-line-string-into-gvim-at-cursor-position )。
:let @a=system("ls -l")
は、ls -l
の出力をレジスタa
に入れます。 ^R-a
を使用して(挿入モードで)貼り付けることができます。
:r !command
コマンドからの出力を読み取り、現在の行の下の行に挿入します。これはviのプログラム方法であり、動作を変更することはできません。
ただし、行番号3の場合は言ってください。:r !date
を試してみてください。日付値を行番号4に挿入します。
行番号3に日付値を表示する場合は、:2r !date
を試して、行番号3に日付値を挿入します。
カーソルの前に外部コマンドからの出力を貼り付ける別の方法を次に示します。
:exe 'norm i' . system("ls -l")
または式レジスタ(:help @=
)を使用します:
"=system('ls -la')
その後、ヒット P。またはより短い方法:
<CTRL-R>=system('ls -la')<CR>