translategoogle.vimの翻訳結果をクリップボードへ入れる
翻訳結果は使いたい
私のような英語がスラスラ読めない人は vim で google翻訳 する。
google 翻訳機能を持った plugin の中で自分は daisuzu/translategoogle.vim
を使用しています。
このプラグインは非常にシンプルで使いやすい。
vim のコマンドラインから翻訳ができる機能もあり、単語を調べたいときには重宝する。
:TranslateGoogleCmd japan
しかし、これは翻訳結果を echo
するだけなので、yank できない。
yankするとすれば、マウスで echo
結果をドラッグしないといけない(すごくめんどくさい)
翻訳結果を vimのクリップボード に入れるコマンドを登録する
この問題の打開策として.vimrc
にユーザ定義コマンドを追加します。
command! -nargs=* \ TranslateGoogleCmdYank redi @+ | echon translategoogle#command(<q-args>) | redi END command! -nargs=* \ TranslateGoogleCmdReverseYank redi @+ | echon translategoogle#command_reverse(<q-args>) | redi END
コマンドの実行方法はTranslateGoogleCmd
と全く同じ。
:TranslateGoogleCmdYank japan
ステータスラインに表示される実行結果も:TranslateGoogleCmd
と同じですが、
put
できるようになっています。
コマンドをより便利に使うキーマップ
コマンドを毎回打つのも非効率的なので、私は以下のようなキーマップを使っています。
それぞれ、.vimrc
に追加すればいいだけ。
nnoremap tj yiw:TranslateGoogleCmdYank <C-R>"<CR> nnoremap tr yiw:TranslateGoogleCmdReverseYank <C-R>"<CR>
tja
押下で、カーソル下の単語の翻訳結果を、append する
nnoremap tja yiw:TranslateGoogleCmdYank <C-R>"<CR>ea<Space><C-R>+<ESC> nnoremap tra yiw:TranslateGoogleCmdReverseYank <C-R>"<CR>ea<Space><C-R>+<ESC>
補足
TranslateGoogleCmdYank で使用しているredi
については:help redir
を参照
また、:help redir
だけでは使い方わからないんじゃ!(怒)という人は
こちらのサイトが非常にわかりやすかったです。