VimでWorld Wide Web

初めに

こんにちは ゴリラです

普段Vimを使ってコーディングしていると、「あれ、あの関数名なんだっけ?」とか「引数何を受け取るんだっけ?」とかで思い出せないことが多々あると思います。 そういう時、たいていの人はブラウザを使うと思いますが、アプリケーションを切り替えないといけないので効率が悪いなとずっと思っていました。

そこで、この度w3mを導入してみました。ちょっとQOL(Quality Of Life)上がった感があるので紹介してきます。

w3mとは

簡単に言うとテキストベースブラウザです。一応sixel対応できるので画像表示もできます。(ただレイアウト崩れるので実用的ではなかった) テキストベースゆえ、とても軽快でcookieopensslも使えるのでTwitterなどのサービスにログインもできます。

image.png

がっつりいろいろと調査するなら普通にブラウザを使ったほうが良いですが、 冒頭で言ったような用途であればw3mで十分です。

Vimでw3mを使う

Vimではterminal機能があるので、それを使えばVim上でw3mを使用できます。たとえば次のコマンドでgoogle.comを開けます。

:term ++close w3m google.com

ただ、これだけだとちょっと不便です。だいたいは何かしら検索することが多いので、もう少し便利にするためWWWコマンドを用意します。

function! s:www(word) abort
  execute('term ++close ++shell w3m google.com/search\?q="' . a:word . '"')
endfunction

command! -nargs=1 WWW call s:www(<f-args>)

上記の設定をvimrcに追加すれば:WWW ゴリラ vimって実行するとGoogleの検索結果画面が表示されます。 とても良き。

検索以外に、ぼくは普段Goを書いたりするのでpkg.go.devを簡単に開く関数も用意しました。

function! s:gg(package) abort
  execute('term ++close ++shell w3m pkg.go.dev/' . a:package)
endfunction

command! -nargs=1 GG call s:gg(<f-args>)

上記設定をすると:GG path/filepath次のようにpkg.go.dev/path/filepathが開きます。

image.png

Vimでw3mのメリット

ズバリ、翻訳できることです。ゴリラ製翻訳プラグインを使って、godocの英語ドキュメントを翻訳しながら読めます。 英語苦手ですので、こうやって翻訳しながらじゃないと読めないです(ツライ)

image.png

w3mのキーマップ設定

デフォルトのキーマップでしっくり来ないところがあったので、~/.w3m/keymapに次の設定をしてなるべく使用感をVimに近付けています。

keymap C-u PREV_PAGE
keymap C-d NEXT_PAGE
keymap C-h BACK
keymap C-l NEXT
keymap ] NEXT_TAB
keymap [ PREV_TAB
keymap C-w CLOSE_TAB
keymap b PREV_WORD
keymap H HISTORY
keymap ? HELP
keymap C-n NEXT_LINK
keymap C-p PREV_LINK
keymap C-q EXIT
keymap C-k GOTO

さいごに

導入したばっかりですので、しばらく使ってみています。 みなさんもぜひ使ってみてください。


Vim

2020/07/06 00:00