いろんないみで

はまっちゃた

vimで。 英語が分からなくてもヘルプをよみたい

自分は英語がとても苦手なので(日本語も。。)英語のヘルプが読めません。

わからない文章をコピーしてブラウザを立ち上げてグーグル翻訳で翻訳したり、 コードを一生懸命読んだりしていました。

疲れる。。

こんな設定してみました。

vital.vimを使った設定。

function! s:honyaku(text, sl, tl)
  let url = 'https://translate.google.com'
  let qry = {'text': a:text, 'sl': a:sl, 'tl': a:tl, 'ie': &enc, 'oe': &enc}
  let opt = {'User-Agent' : ''}
  let cnt = vital#of('vital').import('Web.HTTP').get(url, qry, opt).content
  let ete = {'&amp;'  : '&', '&gt;'  : '>', '&lt;'    : '<', '&quot;'  : '"',
  \          '&#160;' : ' ', '&#39;' : "'", '&#8203;' : '', '&#12316;' : '~',}
  let ret = matchstr(cnt, '\v\CTRANSLATED_TEXT\=''\zs[^'']+\ze''')
  let ret = substitute(ret, '\v\\x(\x\x)','\=nr2char(str2nr(submatch(1), 16))', 'g')
  let ret = substitute(ret, '\v\&[a-z#0-9]{2,};', '\=get(ete, submatch(0), submatch(0))', 'g')
  return join(split(ret, '<br>'), "\n")
endfunction

command! -nargs=* -bang
\ EnToJa
\ let @@ = s:honyaku(empty(<q-args>) ?
\     expand('<cword>') :<bang>0 ? eval(<q-args>) : <q-args>, 'en', 'ja') | echo @@

command! -nargs=* -bang
\ JaToEn
\ let @@ = s:honyaku(empty(<q-args>) ?
\    expand('<cword>') : <bang>0 ? eval(<q-args>) : <q-args>, 'ja', 'en') | echo @@

コマンドの結果は無名レジスタに入るのでpすると嬉しい。

または

:EnToJa!@@

とするとヤンクした文章を翻訳します。

今度はカタコトの日本語が理解できません。。

vital便利!