2014年1月4日土曜日

vim: vimpagerをLinux Mint 16のシステムに導入してpagerとしてupdate-alternativesに設定を追加する

vimってpagerになるかな〜と思ってうっかり、
objdump -CdSx hoge | vim
とか試してしまってあららー・・・となってkillしました。
真似しない方がいいです(´・ω・`)

少し調べてみるとどうやらvimをpagerにしたいニーズはそれなりにあるみたいで、

vimpagerというものがすぐに見つかりました(*´ω`*)

これはvimのプラグインではなくて、単独で動作するvimをpagerとして実行するためのヘルパーみたいなものです。

vimのプラグインでは無いのですが、NeoBundleで管理して~/opt/binにln -s ~/.vim/bundle/vimpager/vimprocとln -s ~/.vim/bundle/vimpager/vimprocとかして使っても良いでしょう。システムに変更を加えたくない場合はこれで良いですね。

さて、今回はLinux Mint 16のシステムにvimpagerを導入して、加えてupdate-alternativesにより管理されるシステムのpagerをvimpagerにしてみます。

[vimpagerの導入]

git clone git@github.com:rkitover/vimpager.git
cd vimpager
sudo make install

デフォルトで/usr/localに導入してくれます。具体的にはbinにvimpagerとvimcat、share/man/man1にvimpager.1とvimcat.1、etcにvimpagerrcが導入されます。

[update-alternativesでpagerをvimpagerにする]
update-alternatives --config pager
↑で現在のupdate-alternativesによるpagerの設定を確認しておきましょう。
sudo update-alternatives --install `which pager` pager `which vimpager` 90
↑こんな具合でupdate-alternativesのpagerにvimpagerを優先度90で設定追加してあげます。vimpagerに設定する優先度の値は先に確認した設定なども参考にしつつ、お好みで構いません。/usr/bin/pagerシンボリックリンクの更新もたぶん自動的にされます。
objdump -CdSx hoge | pager
これでまた1つ、幸せになれましたね(*´ω`*)

※たぶん、というのはLinux Mint 16デフォルトではlessが優先度77で自動設定時の最優先になっているので、優先度90でvimpagerを追加すると、自動的にシステムのpagerがvimpagerに切り替わる仕組みだから、です。既にupdate-alternatives --config pagerでpagerを手動選択していたり、優先度を変更していたりするとその限りではありません。

0 件のコメント:

コメントを投稿