2007年8月20日月曜日
lessの不思議

つづき。

manが文字化けするので、lessのオプションの変更を/etc/man.configに施したんだけど、根本的な対策ではなかった。
要するに、less自体が文字化けしているのだ。

個人的には多少不便でもmore派だし、サーバ本体を操作する機会なんてほとんどない。
PoderosaとかTeraTerm使ってれば、スクロールバーを操作して、前の画面見られるし、全然気がつきませんでした。

現状、

ls -la | less

を実行すると、ファイルのタイムスタンプの"7月"が"7<B7><EE>"となってしまう。

とりあえずJLESSCHARSETをユーザの環境変数に組み込んでみる。
これはたいていどこのサイトにも書いてある手法だ。
でもダメ(この時点ではmanのPAGER設定にJLESSCHARSETがなくてもOKなことに気が付いていない)。

で、man.configに何を設定したのか思い出してみる。
まずは
JLESSCHARSET=japanese
を入れた。
次に、lessのオプションをRからrに変更した。

やってみた。

alias less='less -r'


直った。

ふぅむ、オプションの問題か。

とりあえずJMにお伺いをたててみる。

Manpage of LESS

-r または --raw-control-chars
「そのままの」制御文字を表示させるようにする。デフォルトでは、制御文字をキャレット表記を使って表示する。例えば、control-A (8 進数 001) は "^A" と表示される。警告: -r オプションが指定されると、 less は (制御文字のタイプにどのように画面が反応するかに依存しているために) 画面の実際の状況の経過を追うことができない。よって多くの場合、長い行が誤った位置で分割されてしまうといった問題が生じる。


まったくもって今回の事象の説明にならん、気がする。

こんなときはUNIXの部屋だ!
UNIXの部屋 検索:less (*BSD/Linux/Solaris)
ここに、オプションの一覧があり、-rの説明には以下のようにある。

コントロールコードをそのまま表示する。デフォルトでは control-A は ^A と表示されるが、-r を指定するとそのまま表示する。これによって、cat で日本語が表示できる環境なら、less -r で日本語が表示できるかも。


一応、「ふむふむ」と言えるような説明文だ。

Googleで"less -r"で検索してみても、正直、満足のいく文章はなかった。
JMやmanpageじゃ、オプションはrよりもRを薦めてるし、実際のところどうなんだろう?

ついでに、UNIXの部屋で知った環境変数を。
環境変数LESSにはlessのオプションを指定できるらしい。

export LESS=-rgj10

としてみた。


元記事
HOMEGROWN | lessの不思議
http://homegrown.jugem.cc/?eid=273



1 コメント | コメントを書く

1 コメント:

匿名 さんのコメント...

私はあなたのブログが好きです。 あなたは良い仕事をしています。 そのまま続けてください。 [url=http://www.gogo-eigo.com/sony-%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E3%83%9E%E3%83%B3-a%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-64gb-%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3-nw-a847t/]ウォークマン s[/url]

2010年2月17日 4:13

Template Design: © 2007 Envy Inc.