Snow Leopardで利用するページャ、「less」と「lv」の併用が便利

海上忍
2010-08-04 17:25:06
  • このエントリーをはてなブックマークに追加

 利用頻度が高いコマンドは? と尋ねられたら……筆者は「ページャ」と答えるようにしている。もちろん、カレントディレクトリを変更する「cd」や、ファイルを移動/リネームする「mv」もよく使うが、ソースコード(特にオープンソース系の)に付属するドキュメントをすぐに読みたいとき、Finderには表示されない/usrや/etcなどUNIXとしての領域にあるファイルの内容を確認したいとき、ページャがなくては話にならない。それに、「ls -l」したときスクロールアウトした情報を、Terminalのスクロールバーで追いかけるのは、とてもカッコ悪い。

 そのページャだが、Snow Leopardでは「less」がデフォルトだ。ソースコードに付いてくる「README」や「Changelog」など英文はもちろん、LESSCHARSET環境変数に「utf-8」を定義しておけば、UTF-8なテキストファイルも閲覧できる。SJISやEUCでエンコードされたものは、そのままでは表示できないが(環境設定パネルの文字エンコーディングを変えれば可能なものの実用的でない)、上述した目的の多くはデフォルトのlessで解決できる。

 日本語テキストの閲覧に関する問題は、筆者の場合「lv」を導入することで解決している。nkfを導入してフィルタとし、エイリアスを使うなどして実質的にlessを日本語対応させることもできるが、ラクさ加減でいえばlvのほうが上だ。

 しかし、lessも捨てがたい。ファイル名や全行数などの情報を出力する「-M」や、画面左端に行番号を表示する「-N」など、lvにはない便利なオプションが用意されているからだ。

 試行錯誤の末たどりついたのが、以下の設定(~/.bashrc などに記述する)。lessにはデフォルトでオプション「-M」と「-N」を有効にするが、manのページャとするためLESS環境変数では定義せず、エイリアスで対応している。一方のlvは、入力するテキストのコーディング形式を自動判定(-la)し、出力はUTF-8に決め打ち(-Ou8)しておくと、ファイル名のエンコーディングの関係でUTF-8が妥当なTerminalの表示設定にマッチする。

 問題は、日本語テキストファイルを表示するとき、「lv 〜」とすべきところをつい「less 〜」としてしまうことだが………「lessj」などのエイリアスを定義するのもどうかと思うので、そのままにしている。利用頻度が高いコマンドなだけに、エイリアスや環境変数でいろいろ定義しないほうが、かえって好ましいと思う。

alias less='/usr/bin/less -MN'
export PAGER=/usr/bin/less
export LESSCHARSET=utf-8
export LV='-la -Ou8'
画像説明 ページャの「less」は利用頻度が高いコマンドなだけに、エイリアスや環境変数でいろいろ定義しないことがポイントだ※クリックで拡大画像を表示
  • 新着記事
  • 特集
  • ブログ