テキストファイルを閲覧するためによく使うのがlessコマンド。特に巨大なファイルを開く時などは必須だろう。巨大なファイルをVimやEmacs、その他のテキストエディタで開くと死ぬるで・・・
また、コマンドの出力結果をパイプでlessに渡し、出力結果をジックリ確認したりするのに重宝する。普段何気なく使っていらっしゃる方々が多いと思うが、改めて使い方の確認をしてみると、何かしらの発見があるかもしれない。
起動時オプション
各オプションは短いのと長いのがセットになっている。設定とかにはわかりやすい長いの、起動時の指定や機能の切替には短いの、と使いわけよう。-X
は案外知られていないかも。終了時にショボーンとなるのを防げるのでオススメ。
オプション | 機能 |
---|---|
-X or --no-init |
終了時に画面をクリアしない。目的の場所を見つけてless終了して、画面がクリアされてショボーン・・となるのを防ぐ。 |
-i or --ignore-case |
検索時に大文字小文字を無視 |
-I or --IGNORE-CASE |
大文字指定の時のみ大文字小文字無視 |
-S or --chop-long-lines |
長い行を折り返さない。 |
-N or --LINE-NUMBERS |
行数表示 |
-r or --raw-control-chars |
コントロールコードを表示。 |
-R or --RAW-CONTROL-CHARS |
ANSIカラー表示。Railsログのように、太字や色付けがあるファイルを開く場合に便利。 |
-M or --LONG-PROMPT |
詳細なプロンプト表示(行数、位置、ファイル名等) |
操作コマンド
私がよく使うもの。基本的にviとよく似ている。というかほぼ同じ。行数指定の移動、最初の行、最終行への移動、文字列検索のやり方と検索ハイライトの消し方は重要。
コマンド | 機能 |
---|---|
q |
終了。HELPを終了するときにも。 |
h |
ヘルプ。 |
矢印 | 矢印の方向に移動。-S や --chop-long-lines で行を折り返さない時は、左右矢印で移動可能。 |
j |
1行ずつ下へ |
100j |
100行下へ |
k |
1行ずつ上へ |
space | 次のページへ移動 |
b |
前のページへ移動 |
p |
最初の行に移動 |
G |
最終行に移動 |
100G |
100行目に移動 |
/hoge |
下方向にhogeを検索。検索にマッチした場所をハイライト。n で前方向へ(下へ)移動。N で逆方向へ(上へ)移動。 |
?hoge |
上方向にhogeを検索 |
ESC-u |
検索ハイライトを削除。ESCはCtrl-[ で代用可能(viでも同様) |
= or Ctrl-G or :f |
ステータス表示(ファイル名、表示行数/全体行数、表示文字数/全体文字数、など) |
Shift+f |
ログ追跡モード。Ctrl+`cで止めてページアップダウン、検索が可能。Ctrl-cで戻る。 |
Tips
オプションが起動中のトグルスイッチになってるのは、案外知られていないのでは?
起動中も起動時オプションを入力可能(重要!)
これは意外に知らない人が多いようだが、lessを使っている最中でもトグルスイッチ的に切替可能。私がよくやるのが、-S
を入力する度に、長い行の折り返しを切り替える。他にも-N
を入力する度に、行番号表示非表示を切り替えたり。
Twitterで指摘されて気がついたのだが、残念ながら -X
--no-init
オプションは起動後に切り替え出来ない。そもそもデフォルトの動作が画面クリアしてしまうのは何故なんだろうか??
起動時デフォルトオプション指定
環境変数LESSに起動時のデフォルトオプションを指定可能。例えばこんな風に設定する。
sh系はこちら(bash、zsh)
export LESS='--no-init --IGNORE-CASE --RAW-CONTROL-CHARS --LONG-PROMPT'
csh系はこちら(csh、tcsh)
setenv LESS '--no-init --IGNORE-CASE --RAW-CONTROL-CHARS --LONG-PROMPT'
日本語の表示ついて
日本語(UTF-8)を表示するには、環境変数LANGにja_JP.UTF-8を設定し、端末の文字コードもUTF-8に設定しておく。UTF-8以外の文字コードの場合は、nkfを使ってnkf -w | less
。
巨大なファイルを開いた時
行数やプロンプト表示を設定した状態で、行数の多いファイルを開くと、
Calculating line numbers... (interrupt to abort) と表示され、負荷がかかる場合がある。
Ctrl-c
を押すと行数計算を止める。