VimでWorld Wide Web
初めに
こんにちは ゴリラです
普段Vimを使ってコーディングしていると、「あれ、あの関数名なんだっけ?」とか「引数何を受け取るんだっけ?」とかで思い出せないことが多々あると思います。 そういう時、たいていの人はブラウザを使うと思いますが、アプリケーションを切り替えないといけないので効率が悪いなとずっと思っていました。
そこで、この度w3mを導入してみました。ちょっとQOL(Quality Of Life)上がった感があるので紹介してきます。
w3m
とは
簡単に言うとテキストベースブラウザです。一応sixel
対応できるので画像表示もできます。(ただレイアウト崩れるので実用的ではなかった)
テキストベースゆえ、とても軽快でcookie
やopenssl
も使えるのでTwitter
などのサービスにログインもできます。
がっつりいろいろと調査するなら普通にブラウザを使ったほうが良いですが、
冒頭で言ったような用途であれば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
が開きます。
Vimでw3m
のメリット
ズバリ、翻訳できることです。ゴリラ製翻訳プラグインを使って、godoc
の英語ドキュメントを翻訳しながら読めます。
英語苦手ですので、こうやって翻訳しながらじゃないと読めないです(ツライ)
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
さいごに
導入したばっかりですので、しばらく使ってみています。 みなさんもぜひ使ってみてください。