vimでvimコマンドの結果(外部コマンドでなく)を挿入する方法
Expression レジスタ "= を使う。
:help registers より:
Expression レジスタ "=
これは、本当はテキストを蓄えるレジスタではないが、レジスタを使うコマンドで式 を評価するために使える。この expression レジスタは読み取り専用である。
http://ac-mopp.blogspot.jp/2014/03/vim.html より:
<C-R>={何か式}
インサートモードにて入力すると、コマンドモードに=が現れて続けて入力ができます。 例えば、四則演算などの簡単な式を埋め込みたいときなどに有用です。 メモリアドレスの計算なんかしたいときなど 「<C-R>=0xA000 - 0x0909」と打てば「38647」と表示されます。
例えば引数リストをバッファに挿入したい場合
:argadd コマンドで引数リストを作成すると :args コマンドで内容を確認できる。この引数リストは argv() 関数で内容を得られるので、インサートモードで
<C-R>=argv()<CR>
と入力すると引数リストが挿入される。 ノーマルモードで
"=argv()<CR>p
としても同様。