PDFやwordをvimで読めるのか
いや、当然ながら読めるわけがないです。だから後半で無理矢理読むための設定を書きます。これだけだとまわりくどくて何が嬉しいのかわかりませんね?
しかし、これが、実に嬉しいのであります。特に長文の英文だと顕著です。それを共有したく記事を書いているのです。
AI
ほぼ出落ちですが、やはりこれです。
vimはプログラマ向けテキストエディタですから、有志がchatGPTとかを呼べるようにしています。僕もそんなのを作りました。これにより、本文を要約したり和訳したりできるのです。
そもそもの話ですが、PDFはフォーカスがおかしくなって生成AIにコピペしにくいんですよ。それだけでもQOLがあがります。
辞書
毎回AIに聞くまでもない事はよくあります。
vimはプログラマ向けテキストエディタですから、カーソル上の単語について辞書を引くプログラムを書く事ができます。僕もそんなのを作りました。これで、他のソフトで調べながら読む必要がなくなります。
検索エンジン
きっと皆様はおおきな論文はググりながら読みますよね。ウィンドウやタブの切り替えが面倒ではありませんか?
vimはターミナルで動くので、テキストブラウザを動かすことができます。w3m等が有名ですね。例えば、vimにGoogleというコマンドを作ればvim上でほぼ直接検索をかけられるわけです。
以下、僕のvimrcからの抜粋です。
command! -nargs=1 Google call s:terminal('w3m google.com/search\?q=<args>')
これによって、ブラウザのタブをいったりきたりという操作から、全てがキーボードできりかえる操作になります。人によってQOLの上り方はまちまちでしょうか。僕的にはうれしい事です。
w3mは流石にフル機能のブラウザには劣るので、本当に詳しく検索するときにはもちろんブラウザを使います。
マーカーやウィンドウ
地味に効いてくるやつ。
大論文を読む時には、以前に書いてあった所をみなおす必要があります。とてもわずらわしいです。そんな時、マーカーを使えばひとっとびです。ウィンドウを分割すれば同時に別のセクションを読めますね!
正規表現付き検索
大きな論文の中で、単語を検索する時に正規表現ほしくなりませんか?違う表現で同じ事を言っている事が長文ならばありますからね。
vimは手軽に正規表現で検索できます。例えばターミナルとコマンドラインを同じように検索したいとか、ありますよね?
例えばこうです。
/terminal\|commandline
そもそも読めないじゃん?
はい、vimでpdfなんか読めるわけないです。だからテキスト形式に変換するのです。
これをインストールすると、pdftotextコマンドを使えるようになるのです。
その上で、以下は僕のvimrcからの抜粋です。
function! ReadPDF(fname)
exec $"e {a:fname}.txt"
let s:command = $'pdftotext - <{a:fname} -'
if has('nvim')
call jobstart(s:command,
\{'on_stdout': {j,d,e->appendbufline(bufname($"{a:fname}.txt"), line('$'), d)}})
else
call job_start('sh -c "'.s:command.'"',
\{'out_cb': function('GotOutput', [bufname($"{a:fname}.txt")])})
endif
endfunction
command! -nargs=1 -complete=file ReadPDF echo ReadPDF("<args>")
これによって下記コマンドを使えばpdfをテキストに変換して開けます。
ReadPDF [path to pdf]
図を見たいなら、あらかじめ同じツール群のpdftohtmlを使って図を抽出すればいいです。面倒ですって?それは確かにそう。だけれど大論文は図を見せるために2頁めくらせたりしてきますからね、僕は「別のウィンドウに表示した方がマシ」派なんですよ。
ちなみに、MSWORDの場合はwvを使うらしい。僕はあまりMSWORDでの大論文は見たことがないからしてないけれど。
PDFをあえてvimで読む?えっ?
むしろ僕はこの読み方のメリットを享受したり、この方法に慣れてしまって、何故「PDFをあえてvim以外で読むのか」が分らなくなってしまいました…。あれっ?頭が…