1. Home
  2. Archive
  3. vimでコマンドの出力をキャプチャする

vimでコマンドの出力をキャプチャする

vimで:mapとかしたとき、その出力を検索したかったんですけど、やりかたがわからなかったのでtwitterで聞いたら解決方法を教えていただきました。ありがとうございました。

http://twitter.com/kana1/status/12874074721

:redirで出力をリダイレクトできるんですね。知らんかった。詳しくは:help redirしてもらうとわかると思うんですが、以下の様な感じでキャプチャを取れます。

:redir > file
:silent map
:redir END

他にも変数とかレジスタにもリダイレクトできます。でもまあこれだといろいろとめんどいので一発でキャプチャとれるような設定書こうと思ってたら以下の設定を教えてもらいました。

http://twitter.com/tyru/status/12929276859

Shougoさんによる完成版が以下。

gist: 369112 - GitHub

これで

:Capture map

でキャプチャとれるようになりました。ブラボー。

for name in ['kana', 'Shougo', 'tyru'] | exe 'let '.name.'+=1' | endfor

追記:さらに自分好みに修正してみた。buftype=nofileにしたりバッファ名に入力したコマンドを入れたりとか。

gist: 380535 - GitHub

コメントフォーム

スパムがひどいので一時的にコメントフォーム閉じます。ゴメンナサイ。