SNSへはこちら

C++のマニュアルをオフラインで読めるようにする(Vimでのおまけつき)

最近、C++ でマイクロマウスのプログラムを書くようになりました。やはりマイコンプログラミングには C++ が向いていますね。つくづく思います。

さて、C++ を書くに当たってリファレンスマニュアルは読むと思います。cpprefjpがすごく読みやすい感じで良いのですが、如何せんオンラインじゃないと読めないという欠点があります。ネット環境がないところではきついんですね。ググった所、オフラインでも読めるようになるコマンドがあるということでご紹介します。

cppman のインストール・設定

GitHub にリポジトリがあって、その名も cppman です。僕は Mac なので pip3 でインストールしました。

$ pip3 install cppman

インストール自体はサクッと終わってしまいます。早速 $ cppman std::numeric_limits とかしたいのですが、デフォルトのページャが vim らしいのです。ということで、less に変更しましょうか。

$ cppman -p less

これで OK です。リポジトリによると、英語版の cppref を表示しているようです。以下は実際に cppman numeric_limits の様子です。man とは違って、キーワードの後方が足りなくても多少推論してくれるようです。

ということで、とりあえず困ったら cppman すればいいということが分かりました。オフラインでも開発がサクサク進みますね!!!!

以下 Vimmer 用の設定とか概念とか

全国の Vimmer はプログラミングをしていてリファレンスを見たい時どうしているでしょうか?恐らく大抵は別タブでターミナルを開き man していることでしょう。C言語なら man ページにあるのでそのコマンドをいちいち打ち込むという人も多いのはないでしょうか?

そんな皆さんにお教えしたいのが K というキーバインドです(Shift + k)。多分そんなに知名度ない。

keywordprg

マニュアルの実行コマンドを決めるオプションです。デフォルトで man になっています。ここで設定されたオプションに記載されているコマンドが、K キーを押したときに実行されます。カーソルの上にある単語が引数として実行されるんですね。例えば以下のように。以下の図の位置で K しています。

それで、これを C++ でなんとかしようということです。デフォで man コマンドなので、cpp では cppman にすればいいんですね。
そういうわけで、以下を ~/.vim/ftdetect/cpp.vim に追記します。

set keywordprg=cppman

あとは所望のキーワードの上で K を押せばいいということです。cppman、そして Vim 最高!!