kazmax - Linux で自宅サーバー

less - コマンド (プログラム) の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. コマンド
  5. オプション
  6. ラインエディット
  7. キー割り当て
  8. 入力プリプロセッサ
  9. 国際化文字セット
  10. プロンプト
  11. セキュリティ
  12. 環境変数
  13. 関連項目
  14. 警告
  15. 著作権
  16. 著者
  17. パッチ

名前

less - more の反対 (more のようなページャー)

書式

"less -?"
"less --help"
"less -V"
"less --version"
"less [-[+]aBcCdeEfgGiImMnNqQrsSuUVWwXZ]"
" [-b bufs ] [-h lines ] [-j line ] [-k keyfile ]"
" [-K character set ] [-{oO} logfile ]"
" [-p pattern ] [-P prompt ] [-t tag ]"
" [-T tagsfile ] [-x tab ] [-y lines ] [-[z] lines ]"
" cmd ] [--] [filename ]..."
(長いオプション名を使う別の書式については、 オプションのセクションを参照すること。)

説明

lessmore (1) と同様なプログラムであるが、 ファイル内での前方移動と同様に後方移動も可能となっている。 また、 less は起動時に入力ファイル全体を読み込む必要がないため、 大きな入力ファイルの場合には vi (1) のようなテキストエディタより起動が速い。 less は termcap (システムによっては terminfo) を使用するため、 多くの端末で実行できる。 ハードコピー端末では、まだサポートが限定されている (ハードコピー端末では、画面の一番上に表示されるべき行に キャレット (^) が付く)。

コマンドは morevi の両方を基本にしている。 (以下の説明において N で表す) 10 進数の後に続けて使用できるコマンドもある。

コマンド

以降の説明で ^X は control-X を意味する。 ESC は ESCAPE キーである。例えば、ESC-v は "ESCAPE" を押した後に "v" を 押すという意味である。

h または H
ヘルプ。コマンドの概要を表示する。 もし、他のコマンドを忘れた時は、このコマンドを思い出すこと。
SPACE または ^V または f または ^F
前方に 1 ウインドウ分 (N 行) 進む (-z オプションを参照)。 行数 N が画面サイズより大きい場合は、 最後の行から画面に入りきる分だけを表示する。 警告: ^V が特殊なリテラル化文字として使われているシステムもある。
z
SPACE と似ているが、行数 N を指定すると N が新しいウインドウのサイズになる。
ESC-SPACE
SPACE と似ているが、ファイルの終端に達した場合でも 画面いっぱいにスクロールする。
RETURN または ^N または e または ^E または j または ^J
前方に 1 行 (N 行) 進む。 N が画面サイズより大きい場合でも、N 行全てを表示する。
d または ^D
前方に半画面 (N 行) 進む。 行数 N を指定すると、その後の d コマンドと u コマンドの 新しいデフォルトサイズになる。
b または ^B または ESC-v
後方に 1 ウインドウ分 (N 行) 戻る (-z オプションを参照)。 N が画面サイズより大きい場合は、 最後の行から画面に入りきる分だけを表示する。
w
ESC-v と似ているが、N を指定すると、N が新しいウインドウのサイズになる。
y または ^Y または ^P または k または ^K
後方に 1 行 (N 行) 戻る。 N が画面サイズより大きい場合でも、N 行全てを表示する。 警告: ^Y が特殊なジョブ制御文字として使われているシステムもある。
u または ^U
後方に半画面 (N 行) 戻る。 N を指定すると、その後の d コマンドと u コマンドの 新しいデフォルトサイズになる。
ESC-) または RIGHTARROW
画面を右方向に画面幅の半分 (N 文字分) スクロールする (-# オプションを参照)。 テキストがスクロールしている間は、 (行を切り取る) -S オプションが有効になっているように動作する。 文字数 N を入力する場合は、 右矢印キーが行編集コマンド (行編集のセクションを参照) で使われるため、 ESC-) を使用しなければならない。
ESC-( または LEFTARROW
画面を左方向に画面幅の半分 (N 文字分) スクロールする (-# オプションを参照)。
r または ^R または ^L
画面を再描画する。
R
画面を再描画し、バッファされた入力は破棄する。 ファイルを閲覧中に、ファイルが変更された場合に有効である。
F
前方にスクロールし、ファイルの終端に達しても読み続ける。 通常このコマンドは、既にファイルの終端に達している場合に使われる。 閲覧中に大きくなり続けるファイルの末尾をモニターすることができる ("tail -f" コマンドと同じような動作をする)。
g または < または ESC-<
ファイルの第 1 行目 (第 N 行目) に移動する (警告: N が大きいと遅くなる)。
G または > または ESC->
ファイルの最終行 (第 N 行目) に移動する (警告: N が大きい場合や、N が指定されない場合、 また、ファイルではなく標準入力を読み込んでいる場合に遅くなる)。
p または %
ファイルの N パーセント目の位置に移動する。 N は 0 から 100 の間でなければならない。
{
画面に表示されている先頭行に左中括弧がある場合、 { コマンドを使うと対応する右中括弧の位置に移動する。 対応する右中括弧は画面の最終行に表示される。 2 つ以上の左中括弧が画面の先頭行にある場合、 数字 N は第 N 個目の括弧を指定するために使われる。
}
画面に表示されている最終行に右中括弧がある場合、 } コマンドを使うと対応する左中括弧の位置に移動する。 対応した左中括弧は画面の先頭行に表示される。 2 つ以上の右中括弧が画面の最終行にある場合、 数字 N は第 N 個目の括弧を指定するために使われる。
(
{ コマンドと似ているが、中括弧ではなく小括弧に適用される。
)
} コマンドと似ているが、中括弧ではなく小括弧に適用される。
[
{ コマンドと似ているが、中括弧ではなく大括弧に適用される。
]
} コマンドと似ているが、中括弧ではなく大括弧に適用される。
ESC-^F
2 つの文字を続けて入力することで、{ コマンドと同様の動作をする。 2 つの文字はそれぞれ開括弧と閉括弧として使われる。 例えば、"ESC ^F < >" を実行すると、 画面の先頭行に表示されている < に対応する > に進むことができる。
ESC-^B
2 つの文字を続けて入力することで、} コマンドと同様の動作をする。 2 つの文字はそれぞれ開括弧と閉括弧として使われる。 例えば、"ESC ^B < >" を実行すると、 画面の最終行に表示されている > に対応する < に戻ることができる。
m
任意の小文字を続けて入力することで、現在の位置を入力した文字でマークする。
'
(シングルクォート)。 任意の小文字を続けて入力することで、以前この文字でマークした位置に戻る。 もう 1 つのシングルクォートを続けることで、 シングルクォートコマンドで「大きく」移動する前の位置に戻る。 ^, $ で、それぞれファイルの先頭行と最終行にジャンプする。 新しいファイルを読み込む場合も 前のファイルに付けたマークは保存されるので、' コマンドは 入力ファイルの切替えに使うことができる。
^X^X
シングルクォートと同じ。
/pattern
前方にあるパターンにマッチする 1 番目 (N 番目) の行を検索する。 このパターンは ed で認識される正規表現である。 検索は、画面に表示されている第 2 行から始まる (変更する場合は、-a と -j オプションを参照すること)。
パターンの前に置く文字のうち、いくつかは特殊文字となる。 これはパターンの一部としてではなく、検索方法を変更するために使われる。
^N または !
パターンにマッチしない行を検索する。
^E または *
複数のファイルを検索する。 つまり、検索がマッチしないまま現在のファイルの終りに達した場合、 コマンドラインのファイルリストにある次のファイルに検索を続行する。
^F または @
現在の画面表示や、-a または -j オプションの設定に関係なく、 コマンドラインのファイルリストにある最初のファイルの先頭行から 検索を開始する。
^K
現在の画面中でマッチする全てのパターンをハイライト表示する。 その際、一番始めにマッチする位置へは移動しない (現在の位置を保持する)。
^R
正規表現のためのメタキャラクタを解釈しない。 つまり、単純な文字列比較を行う。
?pattern
後方にあるパターンにマッチする 1 番目 (N 番目) の行を検索する。 検索は、画面の一番上に表示されている行の前の行から行う。
/ コマンドの時と同様に、一部の文字は特殊な役割をもつ。
^N または !
パターンにマッチしない行を検索する。
^E または *
複数のファイルを検索する。 つまり、検索がマッチしないまま現在のファイルの先頭に達した場合、 コマンドラインのファイルリストにある前のファイルに検索を続行する。
^F または @
現在の画面表示や、-a または -j オプションの設定に関係なく、 コマンドラインのファイルリストにある最後のファイルの最終行から 検索を開始する。
^K
前方検索の時と同じ。
^R
前方検索の時と同じ。
ESC-/pattern
"/*"と同じ。
ESC-?pattern
"?*"と同じ。
n
前回の検索を繰り返す。 すなわち、前回使用した検索パターンにマッチする N 番目の行の検索する。 前の検索が ^N で変更されている場合、 パターンにマッチしない N 番目の行を検索する。 前の検索が ^E で変更されている場合、現在のファイルに条件を満たす行が ないときは次の (あるいは前の) ファイルで検索を続ける。 前の検索が ^R で変更されている場合、正規表現を用いずに検索を行う。 前の検索が ^F または ^K で変更されている場合、何の変化も起きない。
N
前回の検索を逆方向に行う。
ESC-n
複数のファイルがあるとき、 ファイルを越えて直前の検索を繰り返す。 前の検索が、* によって変更された場合と同じ。
ESC-N
複数のファイルがあるとき、 ファイルを越えて逆方向に直前の検索を繰り返す。
ESC-u
検索結果のハイライトを元の状態に戻す。 現在の検索パターンにマッチした文字列のハイライトをオフにする。 もし既に、前の ESC-u コマンドによりハイライトがオフになっている場合は、 検索コマンドの実行によってもハイライトはオンに戻る。 (-G オプションでもハイライトをオフに切替えることができる。 この場合、検索コマンドでハイライトがオンにならない)。
:e [filename]
新しいファイルを読み込む。 ファイル名の指定がない時は、コマンドラインのファイルリストから 「現在の」ファイル (:n と :p コマンドを参照) を再度読み込む。 ファイル名の中のパーセント記号 (%) は現在のファイル名で置き換えられる。 ファイル名の中のシャープ記号 (#) は前に読み込んだファイル名で置き換えられる。 しかし、2 つ続けたパーセント記号は、 単純に 1 つのパーセント記号に置き換えられる。 これは、パーセント記号を含むファイル名を入力できるようにするためである。 同様に、2 つ続けたシャープ記号は、 単純に 1 つのシャープ記号に置き換えられる。 このファイル名は、その後に続く :n コマンドと :p コマンドで閲覧できるように、 コマンドラインのファイルリストに挿入される。 複数のファイル名を指定した場合は、全てをファイルのリストに加え、 最初のファイルを閲覧する。 ファイル名が、1 個以上のスペースを含む場合、 ファイル名全体がダブルクォートで囲まれていなければならない ("-" オプションを参照)。
^X^V または E
:e コマンドと同じ。 警告: ^V が特殊なリテラル化文字として使われているシステムもある。 そのようなシステムでは、^V を使うことはできない。
:n
(コマンドラインで与えられたファイルリストから) 次のファイルを読み込む。 数字 N が指定されている時は、次の N 番目のファイルを読み込む。
:p
コマンドラインのファイルリストにある 1 つ前のファイルを読み込む。 数字 N が指定されている時は、前の N 番目のファイルを読み込む。
:x
コマンドラインのファイルリストにある一番最初のファイルを読み込む。 数字 N が指定されている時は、第 N 番目のファイルを読み込む。
:d
現在のファイルをファイルリストから取り除く。
= または ^G または :f
閲覧中のファイルについて、ファイル名・ 表示中の最終行の行番号・バイトオフセットといった情報を表示する。 可能な場合には、ファイルの長さ・ファイルの行数・ 表示されている最終行までのパーセントも表示する。
@
現在のファイルについて、コード認識法を順番に変更する。 拡張した less には、(環境変数 JLESSCHARSET で選ばれる) デフォルト, japanese, ujis, sjis, iso8, noconv, none という 7 種類のコード認識法がある。
-
コマンドラインオプション文字 (下記のオプションを参照) のうちの 1 つを 続けて入力することで、 オプション設定を変更し、新しい設定を解説するメッセージを表示する。 ダッシュのすぐ後に ^P (CONTROL-P) を入力すると、 オプションの設定は変更されるが、メッセージを何も表示しない。 オプション文字が、(-b や -h などの) 数値変数や (-P や -t などの) 文字列変数の場合、 オプション文字の後に新しい値が入力できる。 値を入力しなかった場合、現在の設定を示すメッセージが 表示されるだけで設定は何も変わらない。
--
- コマンドと似ているが、1 文字のオプションではなく、 長いオプション名 (下記のオプションを参照) が使われる。 オプション名を打ち込んだ後にリターンを押す必要がある。 2 個目のダッシュのすぐ後に ^P を入力すると、- コマンドの場合と同じく、 新しい設定を説明するメッセージを表示しない。
-+
コマンドラインオプション文字のうちの 1 つを続けて入力することで、 オプションをデフォルト設定に戻して、新しい設定を表示する。 ("-+X " コマンドは、 コマンドラインで "-+X " とするのと同等である。) このコマンドは文字列の値を持つオプションには使えない。
--+
-+ コマンドと似ているが、1 文字のオプションではなく、 長いオプション名が使われる。
-!
コマンドラインオプション文字のうちの 1 つを続けて入力することで、 オプションをデフォルト設定の「反対」にして、新しい設定を表示する。 このコマンドは数字あるいは文字列の値を持つオプションには使えない。
--!
-! コマンドと似ているが、1 文字のオプションではなく、 長いオプション名が使われる。
_
(アンダースコア)。 コマンドラインオプション文字のうちの 1 つを続けて入力することで、 そのオプションの現在設定を表示する。 オプションの設定は変化しない。
__
(2 つのアンダースコア)。 _ (アンダースコア) コマンドと似ているが、 1 文字のオプションではなく、長いオプション名が使われる。 オプション名を打ち込んだ後にリターンを押す必要がある。
+cmd
新しいファイルを読み込むたびに、指定したコマンド cmd を毎回実行する。 例えば、+G を実行すると less で各ファイルを開いた時に先頭からではなく終端から表示される。
V
現在起動している less のバージョンを表示する。
q または Q または :q または :Q または ZZ
less を終了する。

以下の 4 つのコマンドが使用できるかは、インストールした方法に依存する。

v
現在閲覧しているファイルを編集するためエディタを起動する。 エディタとして、環境変数 VISUAL で定義されている値が用いられる。 VISUAL が定義されていない場合、環境変数 EDITOR の値が使われる。 VISUAL も EDITOR も定義されていない場合、"vi" がデフォルトになる。 プロンプトセクションの LESSEDIT に関する話題も参照すること。
! shell-command
指定されたシェルコマンドを実行するため、シェルを起動する。 コマンド中のパーセント記号 (%) は、現在のファイル名で置き換えられる。 コマンド中のシャープ記号 (#) は、前に読み込んだファイル名で置き換えられる。 "!!" は、直前のシェルコマンドを繰り返す。 シェルコマンドを伴わない "!" は、単にシェルを起動する。 Unix では、シェルは環境変数 SHELL で設定されたものが使われる。 設定されていない場合、デフォルトは "sh" である。 MS-DOS と OS/2 では、シェルは通常のコマンドプロセッサである。
| <m> shell-command
<m> は任意のマーク文字である。 入力ファイルのセクションを与えられたシェルコマンドに渡す。 渡されるファイルのセクションは、現在の画面の一番上の行から 文字でマークされた所までである。 ファイルの先頭行と最終行を示すために、<m> をそれぞれ ^ と $ にしてもよい。 <m> が . または改行の場合、現在の画面が渡される。
s filename
入力をファイルに保存する。 このコマンドは入力が一般のファイルでなく、パイプの時のみ有効である。

オプション

コマンドラインオプションを以下に説明する。 大部分のオプションは less の実行中に "-" コマンドを用いて変更することが可能である。

大部分のオプションは、「ダッシュと 1 文字のオプション」または 「2 つのダッシュと長いオプション名」のどちらかの形式で指定される。 長いオプション名は、他のものと区別がつく限り省略できる。 例えば、--quit-at-eof は --quit と省略できるが、 --qui のように省略することはできない。 なぜなら、--quit-at-eof と --quiet が --qui で始まっているからである。 大文字のオプション名もある。 例えば、--QUIT-AT-EOF のようなものがあり、--quit-at-eof とは区別される。 このようなオプション名は、始めの文字を大文字にするだけでよく、 それ以降の文字は大文字でも小文字でも構わない。 例えば、--Quit-at-eof は --QUIT-AT-EOF と等しい。

環境変数 "LESS" と "JLESS" の値もオプションとして使われる。 例えば、 less を起動するたびに "less -options ..." とタイプするのを避けるために、 csh では、
setenv LESS "-options"
もし、 sh を使っているならば、
LESS="-options"; export LESS
とすればよい。 MS-DOS では、クォーテーションは必要ないが、オプション文字列中の パーセント記号を 2 つのパーセント記号に置き換える必要がある。
環境変数はコマンドラインより先に解析されているので、 コマンドラインオプションは環境変数 LESS および JLESS を上書きする。 もし、あるオプションが環境変数 LESS または JLESS にあっても、 コマンドラインオプション "-+" で起動すれば、 そのオプションをデフォルトの値にリセットすることができる。
-P や -D オプションのように文字列を後に続けるオプションでは、 文字列の終りの印としてダラー記号 ($) を使わなくてはならない。 例えば、MS-DOS で 2 つの -D オプションを設定する場合は、 次のように間にダラー記号を入れなくてはならない。
LESS="-Dn9.1$-Ds4.1"

-? または --help
このオプションは、 less が受け付けるコマンドの概要を表示する (h コマンドと同じ)。 (使用しているシェルが ? をどのように解釈するかにより、 "-\?" というように ? を " で囲む必要があるかもしれない。)
-a または --search-skip-screen
画面に表示されている最終行の次の行から検索を開始する。 つまり、現在画面に表示されている行中の検索は行わない。 デフォルトでは、検索は画面中の第 2 行目 (もしくは最後に検索対象が見つかった行のあと。-j オプションを参照) から行われる。
-bn または --buffers=n
less が各ファイルに対して使うバッファの数を指定する。 各バッファは 1KB で、 各ファイルに対してデフォルトでは 10 個のバッファを使う (ただし、ファイルがパイプの場合は例外である。-B オプションを参照)。 数字 n で使用するバッファの数を指定する。
-B または --auto-buffers
データがパイプから読み込まれる場合、 デフォルトではバッファは必要に応じて動的確保される。 そのため、大容量のデータがパイプから読み込まれる場合、 多くのメモリが確保されてしまう。 -B オプションが指定されると、-b オプションで指定されたバッファの数を 使うため、パイプに対するバッファの動的確保が行われない。 警告: -B オプションを使った場合、ファイルの最も最近閲覧している 部分のみしかメモリに保持されず、以前のデータが無くなっているため、 表示にエラーが起こる場合もある。
-c または --clear-screen
全画面の再描画を、先頭行から下に向かって行わせるようにする。 デフォルトでは、 全画面の再描画は、画面の最終行からのスクロールによって行われる。
-C または --CLEAR-SCREEN
-C オプションは、-c オプションと似ているが、 再描画を行う前に画面をクリアする。
-d または --dumb
-d オプションは、端末がダムである場合に 通常表示されるエラーメッセージの表示させない。 ダムとは、画面のクリア、後方へのスクロールといった重要な機能がないことをいう。 もしそれらの機能がある場合は、-d オプションでもダム端末上での less の動作は変更されない。
-Dx color または --color=x color
[MS-DOS のみ] 表示されるテキストの色を設定する。 x は設定するテキストのタイプを表す文字である。 n は標準、s は標準出力、d は太字、u は下線、k は点滅である。 color は、ピリオドで区切られた数値の組である。 1 つ目の数値で文字の前景色、2 つ目の数値で文字の背景色を選ぶ。 数値 N は、N.0 と同じである。
-e または --quit-at-eof
ファイルの終りに 2 度目に達した場合、自動的に less を終了させる。 デフォルトでは、 less を終了させる唯一の方法は、"q" コマンドである。
-E または --QUIT-AT-EOF
ファイルの終りに 1 度目に達した場合、自動的に less を終了させる。
-f または --force
通常のファイルでないものを強制的に開かせる (通常のファイルでないものとは、ディレクトリまたは デバイススペシャルファイルのことである)。 また、バイナリファイルを開く場合の警告メッセージも表示しない。 デフォルトでは、 less は、通常のファイルでないものを開かない。
-F または --quit-if-one-screen
最初の画面でファイル全体が表示できる場合、 less を自動的に終了させる。
-g または --hilite-search
通常、 less は、前回の検索とマッチする画面中全ての文字列をハイライト表示する。 -g オプションは、前回の検索にマッチした文字列のみを ハイライト表示するように変更する。 このオプションは、 less の動作をデフォルトより多少速くする。
-G または --HILITE-SEARCH
-G オプションは、検索コマンドで見つかった文字列をハイライト表示させない。
-hn または ---max-back-scroll=n
後方に戻る最大行数を指定する。 もし、n 行を上回って後方に戻る必要がある場合は、 代わりに画面が前方に再描画される (端末が後方に戻る機能を持たない場合は、-h0 を意味する)。
-i または --ignore-case
大文字小文字の区別をせず、大文字と小文字は同一とみなして検索をする。 このオプションは、検索パターンに大文字が含まれていた場合には無視される。 つまり、検索パターンに大文字が含まれていた場合、 大文字小文字の区別をした検索をする。
-I または --IGNORE-CASE
-i コマンドと似ているが、検索パターンが大文字を含んでいた場合でも、 検索は大文字小文字の違いを無視して検索をする。
-jn または --jump-target=n
「ターゲット」行とする画面上の行番号を指定する。 ターゲット行とは、テキスト検索、タグ検索、行番号へのジャンプ、 ファイルのパーセンテージでのジャンプ、マーク位置へのジャンプ、 の対象となる行である。 画面の行は数字 n で指定する。 画面の一番上の行を 1、その次の行を 2、...、と表す。 画面の最終行から何行目かを指定する場合は、数値を負に指定する。 画面の一番下の行は -1、下から 2 行目は -2、...、と指定する。 -j オプションが用いられている時、検索はターゲット行の直後の行から始まる。 例えば、"-j4" のとき、ターゲット行は画面の第 4 行目なので、 検索は画面の第 5 行目から始まる。
-J または --status-column
ステータス欄を画面の左端に表示する。 ステータス欄は、-w または -W オプションが有効なときのみ使われる。
-kfilename または --lesskey-file=filename
lesskey (1) ファイルとして、指定したファイルを less に開かせて処理させる。 複数の -k オプションを指定してもよい。 環境変数 LESSKEY または LESSKEY_SYSTEM が設定された場合、もしくは、 lesskey ファイルが標準位置 (「キー割り当て」セクションを参照) に 見つかった場合、それも lesskey ファイルとして使われる。
-Kcharset
less に、環境変数 JLESSCHARSET もしくは LESSCHARSET で定義されている 文字セットの代わりとして、指定した文字セットを使わせる。
-m または --long-prompt
less に、(more のように) 詳細なパーセント表示のプロンプトを出させる。 デフォルトでは、 less は、コロンをプロンプトとして表示する。
-M または --LONG-PROMPT
more より、さらに詳細なプロンプトを less に出させる。
-n または --line-numbers
行番号を表示させない。 (行番号を表示する) デフォルトの設定では、 特に、入力ファイルが非常に大きな場合に less の動作が遅くなることがある。 -n オプションで行番号非表示にすることで、この問題を避けられる。 行番号の使用とは「プロンプトと = コマンドで行番号が表示され、 v コマンドで現在の行番号がエディタに渡される」ということである (「プロンプト」セクションにおける LESSEDIT に関する話題を参照すること)。
-N または --LINE-NUMBERS
画面の各行の先頭に行番号を表示する。
-ofilename または --log-file=filename
less の入力ファイルを指定した名前のファイルにコピーし閲覧する。 このオプションは、入力ファイルが一般のファイルではなく、 パイプである場合にのみ適用される。 ファイルが既に存在する時は、上書きする前に less が確認を求める。
-Ofilename または --LOG-FILE=filename
-O オプションは -o に似ているが、 既にあるファイルを確認することなく上書きする。
ログファイルが指定されてない場合、 -o と -O オプションは、 less のなかで、ログファイルを指定するために使うことができる。 ファイル名を指定しない時は、単にログファイル名を表示するだけである。 "s" コマンドは、 less で、-o を指定するのと同じである。
-ppattern または --pattern=pattern
コマンドラインでの -p オプションは、 +/pattern を指定するのと同じである。つまり、 ファイル中で pattern が最初に現れるところを less の第 1 行目として表示する。
-Pprompt または --prompt=prompt
3 つのプロンプトのスタイルを好みによって調整する方法を提供する。 このオプションは通常、 less コマンドを呼び出すたびに打ち込んだりせずに、 環境変数 LESS および JLESS で指定する。 そのようなオプションは、環境変数 LESS および JLESS の中で 最後のオプションになっているか、 もしくは、ダラー記号で終了していなければならない。 -Ps の後に文字列を続けるオプションは、デフォルトの (短い) プロンプトを その文字列に変更する。 -Pm は中間の (-m) プロンプトを変更する。 -PM は長い (-l) プロンプトを変更する。 -Ph はヘルプ画面のプロンプトを変更する。 -P= は = コマンドで表示されるメッセージを変更する。 全てのプロンプトの文字列は、 文字列と特別なエスケープシーケンスから構成される。 詳細は「プロンプト」セクションを参照すること。
-q または --quiet または --silent
比較的「静かな」操作にする。 スクロールでファイルの終りを過ぎようとした場合や、 ファイルの始まりより前に行こうとした場合でも、 端末でベルを鳴らさない。 端末に「ビジュアルベル」がある場合は、代わりにそれを使う。 不正な文字を打った場合のような、その他のエラーに関してはベルを鳴らす。 デフォルトでは、全てのエラーに関して端末のベルが鳴る。
-Q または --QUIET または --SILENT
完全に「静かな」操作にする。 端末のベルは全く鳴らない。
-r または --raw-control-chars
「そのままの」制御文字を表示させるようにする。 デフォルトでは、制御文字をキャレット表記を使って表示する。 例えば、control-A (8 進数 001) は "^A" と表示される。 警告: -r オプションが指定されると、 less は (制御文字のタイプにどのように画面が反応するかに依存しているために) 画面の実際の状況の経過を追うことができない。 よって多くの場合、長い行が誤った位置で分割されてしまうといった問題が生じる。
-R または --RAW-CONTROL-CHARS
-r と似ているが、可能な場合には画面表示を正しく維持しようとする。 このオプションが有効なのは、入力が通常のテキストの場合である。 入力には ANSI の「カラー」エスケープシーケンスが含まれていてもよい。 このシーケンスは
ESC [ ... m
のような形式で、"..." は "m" 以外の 0 個以上の文字である。 画面の状況を保つため、 全ての制御文字と ANSI カラーシーケンスは カーソルを移動させないと仮定している。 less に "m" 以外の文字を ANSI カラーエスケープシーケンスの終了文字として認識させることもできる。 そのためには、認識させたい終了文字のリストを 環境変数 LESSANSIENDCHARS に設定すればよい。
-s または --squeeze-blank-lines
連続した空白行を、1 行の空白行にまとめる。 nroff の出力を閲覧するときに役立つ。
-S または --chop-long-lines
画面幅より長い行を折り返さずに切ってしまう。 つまり、長い行の残りの部分を単純に捨ててしまう。 デフォルトでは長い行を折り返すので、残りが次の行に表示される。
-ttag または --tag=tag
-t オプションの後にはタグ名が続き、そのタグを含むファイルを編集する。 このオプションを使うためには、 ctags (1) コマンドであらかじめ作られた "tags" と呼ばれる ファイルが現在のディレクトリになければならない。 このオプションは、 新しいファイルを読み込む場合に less のなかで (- コマンドを用いて) 指定することもできる。 コマンド ":t" は、 less 中で、-t を指定するのと同じである。
-Ttagsfile または --tag-file=tagsfile
"tags" の代わりに使用するタグファイル名を指定する。
-u または --underline-special
バックスペースとキャリッジリターンを印刷可能文字として扱う。 つまり、これらが入力に現れた場合は端末に送られる。
-U または --UNDERLINE-SPECIAL
バックスペース、タブ、キャリッジリターンを制御文字として扱う。 つまり、これらの文字は -r オプションで指定されたものとして扱う。
デフォルトで -u と -U のどちらも指定されていない場合、 下線文字の隣にあるバックスペースは特別な扱われ方をする。 下線された文字は、端末のハードウェア下線機能を使って表示される。 さらに、同一の 2 文字の間にあるバックスペースも特別な扱われ方をする。 重ね打ちされた文字が端末のハードウェア太字機能を使って表示される。 その他の文字に続くバックスペースは削除される。 その他のキャリッジリターンは -r オプションで指定されたように扱われる。 -u と -U のどちらも有効でない場合に、 重ね打ち、もしくは、下線された文字が検索される。
-V または --version
less のバージョンナンバーを表示する。
-w または --hilite-unread
前方に 1 ページ進んだ場合、最初の「新しい」行を一時的にハイライト表示する。 最初の「新しい」行は、前の画面の最下行の次の行である。 g または p コマンドの対象となった行もハイライトする。 ハイライトは、移動させる次のコマンドがあったときに消される。 ステータス行だけをハイライトさせる -J オプションが有効でない限り、 行全体がハイライトされる。
-W または --HILITE-UNREAD
-w と似ているが、前方に 2 行以上移動した場合に 最初の新しい行を一時的にハイライトする。
-XXX または --mark-wrong-char
表示できない誤った文字を表示するために、 マーク文字 (〓) が使われるようにする。 デフォルトでは、そのような表示できない誤った文字は、バイナリとして表示される。
-xn または --tabs=n
タブストップを n 文字に設定する。 n のデフォルトは 8 である。
-X または --no-init
端末に、termcap 初期化文字列と非初期化文字列を送れないようにする。 これは、画面をクリアするときのように非初期化文字列が不必要な場合には、 望ましいことがある。
-yn または --max-forw-scroll=n
前方に進む最大行数を指定する。 もし、n 行を上回って前方に進む必要がある場合は、 代わりに画面が再描画される。 もし必要であれば、-c と -C オプションは 画面の先頭から再描画するために使われる。 デフォルトでは、前方移動はスクロールになる。
-[z]n または --window=n
スクロールするウインドウのデフォルトの大きさを n 行に変更する。 デフォルトは 1 画面分の行数である。 z と w コマンドはウインドウの大きさを変更するために使われる。 z は、 more との移植性のために省略してもよい。 n が負の数の時は、現在の画面サイズより n 行小さくウインドウサイズを設定することを意味している。 例えば、画面サイズが 24 行の場合、-z-4 はスクロールする ウインドウを 20 行に設定することを意味している。 さらに、画面サイズが 40 行に変更された場合には、 自動的にスクロールウインドウは 36 行に変更される。
-Z
環境変数 JLESSCHARSET で "japanese" が選択されている場合、 UJIS よりも SJIS の優先度を高くする。 デフォルトでは、SJIS よりも UJIS の優先度が高い。
-"cc or--quotes=cc
ファイル名を引用する文字を変更する。 このオプションは、スペースとダブルクォーテーションマークの両方を含む名前を ファイルに付けようとする場合に必要となる。 -" の後に 1 文字を置いた場合、引用文字が指定した 1 文字に変更される。 このとき、スペースを含むファイル名はダブルクォーテーションではなく、 この 1 文字で囲まれる。 また、-" の後に 2 文字を置いた場合、 1 文字目が開クォーテーションで、2 文字目が閉クォーテーションになる。 このとき、スペースを含むファイル名の前には開クォーテーション文字を付け、 ファイル名の後には閉クォーテーション文字を付ける。 引用文字を変更した後でも、このオプションは -" (ダッシュの後にダブルクォーテーション) であることに注意すること。
-~ または --tilde
通常、ファイルの終端より後の行は 1 個のチルダ (~) を使って表示される。 このオプションを使うと、ファイルの終り以降の行は空行として表示される。
-# または --shift
RIGHTARROW と LEFTARROW コマンドで水平方向にスクロールするときの デフォルトの移動桁数を指定する。 この値を 0 にすると、デフォルトの値は画面幅の半分になる。
--
コマンドライン引き数 "--" は、オプション引き数の終りの印である。 この後の、いかなる引き数もファイル名として解釈される。 このオプションは、名前が"-" または "+" で始まるファイルを閲覧する場合に役立つ。
+
あるコマンドラインオプションが + で始まる場合、 その残りは、 less の初期化コマンドとして渡される。 例えば、+G では、ファイルの先頭ではなく終端を表示して less を起動させる。 そして、オプション +/xyz では、 ファイル中で "xyz" が始めて現れる場所から起動させる。 特殊な場合として、+<number> は +<number>g と同じ働きをする。 つまり、このオプションでは指定された行数から表示が始まる (しかし、上の "g" コマンドの注意書きを参照すること)。 オプションが ++ で始まっている場合、初期化コマンドは 閲覧している一番始めのファイルだけでなく、全てのファイルに対して適用される。 以前説明した "+" コマンドも、 全てのファイルに対する初期化コマンドの設定 (および変更) に使われる。

ラインエディット

画面の一番下で (例えば、:e コマンドのファイル名や、 検索コマンドのパターンといった) コマンドライン入力の場合、 いくつかキーがコマンドラインを編集するのに使われる。 大部分のコマンドには、[ 大括弧 ] 中の別形式がある。 これは、ある種のキーボードでキーが存在しない場合に使用できる (大括弧の中の形式は、MS-DOS 版では機能しない)。 それらの特殊キーは、^V や ^A といった「リテラル化」文字を先に入力することで、 そのままの文字として入力することができる。 2 つのバックスラッシュを入力することで、 バックスラッシュ自身も文字として入力することができる。

LEFTARROW [ ESC-h ]
カーソルを 1 文字分左へ移動する。
RIGHTARROW [ ESC-l ]
カーソルを 1 文字分右へ移動する。
^LEFTARROW [ ESC-b または ESC-LEFTARROW ]
(CONTROL と LEFTARROW を同時に入力すると) カーソルを 1 単語分左へ移動する。
^RIGHTARROW [ ESC-w または ESC-RIGHTARROW ]
(CONTROL と RIGHTARROW を同時に入力すると) カーソルを 1 単語分右へ移動する。
HOME [ ESC-0 ]
カーソルを行頭へ移動する。
END [ ESC-$ ]
カーソルを行末へ移動する。
BACKSPACE
カーソルの左にある文字を消去する。 コマンドラインが空の場合は、コマンドをキャンセルする。
DELETE または [ ESC-x ]
カーソルの下にある文字を消去する。
^BACKSPACE [ ESC-BACKSPACE ]
(CONTROL と BACKSPACE を同時に入力すると) カーソルの左にある単語を消去する。
^DELETE [ ESC-X または ESC-DELETE ]
(CONTROL と DELETE を同時に入力すると) カーソルの下にある単語を消去する。
UPARROW [ ESC-k ]
(ヒストリにある) 前のコマンドラインを呼び出す。
DOWNARROW [ ESC-j ]
(ヒストリにある) 次のコマンドラインを呼び出す。
TAB
カーソルの左にある部分的なファイル名を補完する。 複数のマッチするファイル名がある時は、 最初にマッチしたファイル名がコマンドラインに出される。 TAB を繰り返し打つと、マッチしたファイル名が順番に表示される。 補完したファイル名がディレクトリの場合、"/" がファイル名に付加される (MS-DOS では、"\" が付加される)。 ディレクトリ名に付加する文字の指定するために、 環境変数 LESSSEPARATOR を使うことができる。
BACKTAB [ ESC-TAB ]
TAB と同様であるが、マッチしたファイル名を逆順に表示する。
^L
カーソルの左にある部分的なファイル名を補完する。 複数のマッチするファイル名がある時は、 全てのマッチしたファイル名が入力される。
^U (Unix) または ESC (MS-DOS)
コマンドライン全体を消去する。 コマンドが空の場合は、コマンドをキャンセルする。 Unix において、一行消去のための文字を ^U 以外に変更している場合、 その文字が ^U の代わりに使われる。

キー割り当て

lesskey ファイルを生成する lesskey (1) というプログラムを用いて、独自の less コマンドを定義できる。 このファイルは、コマンドキーとそれに関係づけられたアクションを指定する。 ラインエディットキー (「ラインエディット」セクションを参照) の変更や 環境変数の設定のために lesskey を使うこともできる。 環境変数 LESSKEY が設定されている場合、 less は lesskey ファイル名としてその値を使う。 設定されていない場合、 less は、標準の位置にある lesskey ファイルを探す。 Unix の場合、 less は "$HOME/.less" というファイルを探す。 MS-DOS と Windows の場合、 less は "$HOME/_less" という lesskey ファイルを探す。 存在しない場合は、環境変数 PATH で指定されている全てのディレクトリの下にある "_less" という lesskey ファイルを探す。 OS/2 の場合、 less は "$HOME/less.ini" という lesskey ファイルを探す。 存在しない場合は、環境変数 INIT で指定されている全てのディレクトリの下にある "less.ini" ファイルを探す。 それでもない場合は、環境変数 PATH で指定されている全てのディレクトリの下にある "less.ini" ファイルを探す。 詳細は lesskey のマニュアルページを参照すること。

キー割り当てを提供するために、 システム共通の lesskey ファイルを設定することもできる。 ローカルな lesskey ファイルとシステム共通の lesskey ファイルの両方で キーが定義された場合、ローカルなファイルにあるキー割り当ての方が システム共通のキー割り当てより優先される。 環境変数 LESSKEY_SYSTEM が設定されると、 less はそれをシステム共通の lesskey ファイルの名前として使う。 この環境変数が設定されていない場合、 less は次に示す場所を標準的なシステム共通の lesskey ファイルの場所として探す。 Unix では、システム共通の lesskey ファイルは /usr/local/bin/.sysless である。 (しかし、 less バイナリ用ディレクトリが /usr/local/bin とは異なる場所にビルドされていた場合、 そのディレクトリに .sysless ファイルがある。) MS-DOS と Windows では、システム共通の lesskey ファイルは c:\_sysless である。 OS/2 では、システム共通の lesskey ファイルは c:\_sysless.ini である。

入力プリプロセッサ

less のための「入力プリプロセッサ」を定義することができる。 less がファイルを開く前に、入力プリプロセッサで 入力ファイルの内容の表示の仕方を変更することができる。 入力プリプロセッサに渡される。 入力プリプロセッサは、ファイルの内容を 代替ファイルと呼ばれる別ファイルに書き出す 単純な実行可能プログラム (もしくは、シェルスクリプト) である。 代替ファイルの内容がオリジナルファイルの内容の代わりに表示される。 しかし、ユーザーにとってはオリジナルファイルが開かれているかのように見える。 less は現在の代替ファイルの名前としてオリジナルファイルの名前を表示する。

入力プリプロセッサは、ユーザーによって入力される オリジナルファイル名を 1 つのコマンドライン引き数として受け付ける。 そして、代替ファイルを生成し終えると、代替ファイル名を標準出力に表示する。 入力プリプロセッサが代替ファイル名を出力しない場合、 less は標準としてオリジナルファイルを用いる。 入力プリプロセッサは、標準入力を閲覧する場合には呼び出されない。 入力プリプロセッサを設定するためには、 入力プリプロセッサを呼び出すコマンドラインを環境変数 LESSOPEN に設定する。 このコマンドラインには、入力プリプロセッサコマンドが呼び出されるときに、 ファイル名に置き換えられる文字列 "%s" を含んでいなければならない。

less がそのようにして開いたファイルを閉じる時には、 入力ポストプロセッサと呼ばれるもう1つのプログラムが呼び出される。 このプログラムは、(LESSOPEN で開かれた代替ファイルを消去するといった) 全ての必要な後処理をする。 このプログラムは、ユーザーによって入力されたオリジナルファイル名と 代替ファイル名の 2 つを引き数として受け付ける。 入力ポストプロセッサを設定するためには、 入力ポストプロセッサを呼び出すコマンドラインを環境変数 LESSCLOSE に設定する。 入力ポストプロセッサコマンドはファイル名に置き換えられる 文字列 "%s" を 2 つ含んでいる。1 つ目はファイルのオリジナルの 名前に置き換えられ、2 つ目は LESSOPEN の出力である 代替ファイルの名前に置き換えられる。

例えば、次の 2 つのスクリプトにより、多くの Unix システムでは、 圧縮されているファイルを展開せずに less でファイルを閲覧することができる。

lessopen.sh:
#! /bin/sh
case "$1" in
*.Z) uncompress -c $1 >/tmp/less.$$ 2>/dev/null
if [ -s /tmp/less.$$ ]; then
echo /tmp/less.$$
else
rm -f /tmp/less.$$
fi
;;
esac

lessclose.sh:
#! /bin/sh
rm $2

このスクリプトを使うためには、2 つを実行可能な場所に置き、 LESSOPEN="lessopen.sh%s", LESSCLOSE="lessclose.sh%s%s" というように環境変数を設定する。 他の圧縮ファイルを受け付けるような、 更に複雑な LESSOPEN と LESSCLOSE スクリプトを書くことも可能である。

ファイルのデータを代替ファイルに書き出さず、そのまま、 less にパイプするような入力プリプロセッサを設定することも可能である。 こうすることにより、閲覧する前に圧縮ファイル全体を展開するのが避けられる。 このような働きをする入力プリプロセッサは、入力パイプと呼ばれる。 入力パイプは、代替ファイル名を標準出力に表示する代わりに、 代替ファイルの内容全てを標準出力に書き出す。 入力パイプが標準出力に何も書き出さない場合、代替ファイルは生成されず、 less は普通にオリジナルファイルを使う。 入力パイプを使う場合は、 入力プリプロセッサが入力パイプであることを知らせるために、 環境変数 LESSOPEN の最初の文字を、縦棒 (|) に設定する。

例えば、多くの Unix システムで、 次のスクリプトは上で説明したサンプルスクリプトと同じ働きをする。

lesspipe.sh:
#! /bin/sh
case "$1" in
*.Z) uncompress -c $1 2>/dev/null
;;
esac

このスクリプトを使うためには、実行可能な場所に置いて、 LESSOPEN="| lesspipe.sh %s" と設定する。 入力パイプが使われる場合も、ポストプロセッサ LESSCLOSE を使っても良いが、 削除する代替ファイルがないので多くの場合必要ない。 このスクリプトで、LESSCOLSE のポストプロセッサに渡される 代替ファイル名は "-" である。

国際化文字セット

入力ファイルには、3 タイプの文字が含まれている。

ノーマル文字
画面に直接表示できる文字。
制御文字
画面には直接表示すべきでないが、(バックスペースやタブのように) 普通のテキストファイル中にある文字。
バイナリ文字
画面には直接表示すべきでなくテキストファイル中にはない文字。

「文字セット」とは、簡潔にいうと、どの文字がノーマル文字・制御文字・バイナリ 文字とされるか、ということである。 環境変数 JLESSCHARSET と LESSCHARSET が文字セットを選択するのに使われる。 less のプログラム中で、この 2 つの環境変数に違いはないが、 環境変数 JLESSCHARSET を使うことを勧める。 なぜなら、環境変数 LESSCHARSET に拡張文字セットを設定していると、 拡張文字セットの使えない less がエラーを起こすからである。 この環境変数に設定できる値を以下に示す。

ascii
BS, TAB, NL, CR, formfeed が制御文字である。 32 から 126 の値を持つ文字がノーマルで、その他がバイナリである。
iso8859
ISO 8859 文字セットを選択する。 160 から 255 までの文字がノーマルとして扱われる以外は、ASCII と同じである。
latin1
iso8859 と同じ。
dos
MS-DOS 用の文字セットを選択する。
ebcdic
EBCDIC 文字セットを選択する。
koi8-r
ロシア語文字セットを選択する。
next
NeXT 計算機用の文字セットを選択する。
utf-8
ISO 10646 文字セットの UTF-8 エンコーディングを選択する。

JLESSCHARSET にのみ設定可能な値を以下に示す。

iso7
7 ビットを仮定した ISO 2022 コード拡張による複数文字セット。 128 から 225 の値を持つ文字がバイナリとして扱われる。 less の実装レベルは、ISO 2022 の level 3 である。
iso8
8 ビットを仮定した ISO 2022 コード拡張による複数文字セット。 less の実装レベルは、ISO 2022 の level 3 である。
jis
7 ビットを仮定した ISO 2022 コード拡張による日本語文字セットのみ。
ujis
文字が 32 から 127 の値を持つ場合、ASCII 文字列を仮定する。 文字が 162 から 254 の値を持つ場合、JISX 0208 文字セット・ JISX 0201 文字セットの右半分・UJIS コーディングをした JISX 0212 文字セットを仮定する。 それ以外の文字はバイナリとして扱われる。
euc
ujis と同じ。
sjis
文字が 32 から 127 の値を持つ場合、ASCII 文字列を仮定する。 文字が 128 から 252 の値を持つ場合、 JISX 0208 文字セットと JISX 0201 文字セットの右半分を仮定する。 それ以外の文字はバイナリとして扱われる。
japanese
入力は全ての日本語文字セット、jis, ujis, sjis を仮定する。 less は jis のみを出力する。

日本語には、いくつかのコードセット (文字セットではない) が存在する。 よって、 less は、それを正しく表示するためにコードセット間の変換をしなければならない。 変換をさせるために設定できる JLESSCHARSET の値を以下に示す。

ujis-iso7
入力は ujis と iso7 を仮定する。 less は iso7 のみを出力する。
euc-iso7
ujis-iso7 と同じ。
sjis-iso7
入力は sjis と iso7 を仮定する。 less は iso7 のみを出力する。
ujis-jis
入力は ujis と jis を仮定する。 less は jis のみを出力する。
euc-jis
ujis-jis と同じ。
sjis-jis
入力は sjis と jis を仮定する。 less は jis のみを出力する。
jis-ujis
入力は jis と ujis を仮定する。 less は ujis のみを出力する。
jis-euc
jis-ujis と同じ。
jis-sjis
入力は jis と sjis を仮定する。 less は sjis のみを出力する。
japanese-iso7
入力は japanese と iso7 を仮定する。 less は iso7 のみを出力する。
japanese-jis
入力は japanese を仮定する。 less は jis のみを出力する。 japanese と同じ。
japanese-ujis
入力は japanese を仮定する。 less は ujis のみを出力する。
japanese-euc
japanese-ujis と同じ。
japanese-sjis
入力は japanese を仮定する。 less は sjis のみを出力する。
ujis-sjis
入力は ujis を仮定する。 less は sjis のみを出力する。
euc-sjis
ujis-sjis と同じ。
sjis-ujis
入力は sjis を仮定する。 less は ujis のみを出力する。
sjis-euc
sjis-ujis と同じ。

文字セットを設定するもう一つ方法は、環境変数 LANG を使うことである。 "ja_JP" または、"japan" で始まる環境変数 LANG であるとき、 less は、全ての日本語コード文字を日本語文字セットとして読み、 環境変数 LANG の残りの部分で出力のコーディングを指定する。

ISO 2022 コード拡張テクニックでは、多くの文字セットを 簡単に表示させるために4つのプレーンを定義している。 環境変数 JLESSPLANESET によりデフォルトのプレーンを設定する。 環境変数 JLESSPLANESET が、"japanese", "ujis", "euc" のとき、 less は、g1 プレーンを JISX 0208、g2 プレーンを JISX 0201 の右半分、 g3 プレーンを JISX 0212 として扱う。 環境変数 JLESSPLANESET が、"latin1", "latin2", "latin3", "latin4", "greek", "alabic", "hebrew", "cyrillic", "latin5" のとき、 less は、g1 プレーンを ISO 8859 の一つとして扱う。 それ以外の場合、 less は、環境変数 JLESSPLANESET を 設定のための実際のエスケープシーケンスとして解析しようと試みる。 解析の際、JLESSPLANESET における "\e" はエスケープコードとして扱われる。

less は、ISO 2022 コード拡張テクニックに含まれる文字セットの ほとんど全てのエスケープシーケンスを理解する。 文字セットを選択するためのエスケープシーケンスは多数存在する。 一方で、 less は、文字列セットを選択するために、 '^[(', '^[-', '^[$(', '^[$-', '^N', '^O' という、 6 つのエスケープシーケンスしか出力しない。 これは、 less が端末と端末エミュレーターにとって使いやすいということである。

キーボード入力のための特別な「文字セット」もある。 環境変数 JLESSKEYCHARSET は、この文字セットを設定するために使われる。 JLESSKEYCHARSET が持つことのできる値は、環境変数 JLESSCHARSET と同じである。

LESSCHARSET 環境変数が設定されていない場合、 デフォルトの文字セットは latin1 である。 しかし、環境変数 LC_ALL, LC_CTYPE, LANG のいずれかに "UTF-8" という文字列がある場合、デフォルトの文字セットは utf-8 になる。

特殊なケースとして、 LESSCHARSET で指定できる限定された文字セットではなく、 他の文字セットを使うように less を調整したいという場合もある。 このようなとき、環境変数 LESSCHARDEF が文字セットを定義するのに使われる。 この変数の定義において、文字 "." はノーマルキャラクタ、 文字 "c" は制御文字、文字 "b" はバイナリキャラクタを表す。 また、10進数は定義文字の繰り返しを示す。 例を挙げると、"bccc4b." は値 0 の文字がバイナリ、 1, 2, 3 はコントロール、4, 5, 6 はバイナリ、 8 はノーマルキャラクタという意味である。 最後に文字タイプが指定された文字より後の全ての文字は、 最後の文字と同じタイプとみなされるので、9 から 255 までの 値を持つ文字はノーマルとなる。 (これは 1 つの例であるので、 必ずしも実際の文字セットを表しているわけではない。)

下の表は、各 LESSCHARSET と等しい LESSCHARDEF の値を示している。
ascii 8bcccbcc18b95.b
dos 8bcccbcc12bc5b95.b.
ebcdic 5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b
9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.
iso8859 8bcccbcc18b95.33b.
koi8-r 8bcccbcc18b95.b128.
latin1 8bcccbcc18b95.33b.
next 8bcccbcc18b95.bb125.bb

LESSCHARSET と LESSCHARDEF のどちらも設定されていない場合でも、 システムが setlocale インターフェースをサポートしていれば、 less は文字セットを決定するのに setlocale を使用する。 setlocale は環境変数 LANG もしくは LC_CTYPE で制御される。

制御文字とバイナリキャラクタは目立たせて (反転して) 表示される。 これらの文字は、可能であるならば (control-A を ^A というように) キャレット表記で表示される。 キャレット表記は、0100 ビットを反転した結果が 印刷可能文字になるときのみ使われる。 キャレット表記できないときは、角型括弧 <> で囲まれた 16 進数で表す。 このフォーマットは、環境変数 LESSBINFMT を設定することで変えられる。 LESSBINFMT は "*"で始まり、もう 1 つの文字が表示属性を選択する。 "*k" は点滅、"*d" は太字、"*u" は下線、 "*s" は反転、"*n" は標準である。 LESSBINFMT が "*" で始まっていないときは、標準の属性を仮定する。 LESSBINFMT の残りの部分は、1 つの printf スタイルのエスケープシーケンス (% と x, X, o, d など) を含む文字列である。 LESSBINFMT が "*u[%x]" の場合、バイナリキャラクタは 大括弧で囲まれた 16 進数に下線をして表示される。 LESSBINFMT が指定されていないときのデフォルトは、"*s<%X>" に指定されている。

プロンプト

-P オプションにより、プロンプトを自分の好みに調整することができる。 -P オプションに与えられた文字列は、指定したプロンプト文字列を置き換える。 文字列中のある文字は特殊文字として解釈される。 プロンプト機構は柔軟性を持たせるために少々複雑になっているが、 一般のユーザーは、個人用プロンプト文字列の作り方を詳細に理解する必要はない。
パーセント記号は、その後に何の文字が続くかによって展開される。

%bX
現在の入力ファイルへのバイトオフセットで置き換えられる。 b の後には、(X で示される) 1 文字が続き、どの行のバイトオフセットを 使うかを指定する。"t" のときは、画面の先頭行のバイトオフセットが使われる。 "m" は真中の行、"b" は最終行、 "B" は最終行のすぐ次の行のバイトオフセットを使うことを意味する。 そして、"j" の場合には -j オプションで指定したターゲット行の バイトオフセットを使うことを意味している。
%B
現在の入力ファイルの大きさに置き換えられる。
%c
画面左端に現れるテキストのカラム番号に置き換えられる。
%dX
対象となる行が入力ファイルにおいて何ページ目であるかに置き換えられる。 %b オプションと同じように、X で対象とする行を決定する。
%D
入力ファイルのページ数に置き換えられる。 つまり、入力ファイルの最終行のページ番号に等しい。
%E
エディタの名前 (環境変数 VISUAL、VISUAL が定義されていないときは 環境変数 EDITOR) に置き換えられる。 以降の、JLESSEDIT の特徴に関する話題を参照。
%f
現在の入力ファイル名に置き換えられる。
%i
入力ファイルのリスト中における現在のファイルのインデックスで置き換えられる。
%lX
入力ファイルで何行目にいるかで置き換えられる。 対象となる行は、%b オプションと同じく X で決定される。
%L
入力ファイルの最終行の行番号で置き換えられる。
%m
入力ファイルの合計数で置き換えられる。
%pX
バイトオフセットで計算して、現在の入力ファイルで 何パーセントの場所にいるかで置き換えられる。 対象となる行は、%b オプションと同じく X で決定される。
%PX
行番号で計算して、現在の入力ファイルで 何パーセントの場所にいるかで置き換えられる。 対象となる行は、%b オプションと同じく X で決定される。
%s
%B と同じ。
%t
後に続くスペースを取り除かせる。 通常は文字列の後に使われるが、どこに置いてもよい。
%x
ファイルリストのうちの次の入力ファイル名で置き換えられる。
%K
入力ファイルの中で最も最近現れた、非 ASCII 文字セットまたは 非 ASCII コードセットで置き換えられる。

もし、(入力がパイプのためファイルサイズが分からない場合など) 項目が不明のときは、代わりにクエスチョンマークが表示される。

プロンプト文字列のフォーマットは、ある条件に応じて変更することができる。 クエスチョンマークとその後に続く 1 文字で、"IF" のように働き、 どのような文字が続くかで、条件文が評価される。 条件文が真ならば、クエスチョンマークと条件文字の後に続く文字列から ピリオドまでがプロンプトの中に表示される。 条件文が偽なら、文字列はプロンプトに表示されない。 クエスチョンマークとピリオドの間にあるコロンは、"ELSE" として働き、 コロンとピリオドの間にある文字列は、IF 文が偽のときのみ プロンプト文字列に組み入れられる。 (クエスチョンマークの後の) 条件文字は次のようなものがある。

?a
プロンプトに既に文字列が含まれているときに真。
?bX
指定した行のバイトオフセットが既知の場合に真。
?B
現在の入力ファイルの大きさが既知の場合に真。
?c
水平方向にテキストがシフトしている (%c が 0 でない) 場合に真。
?dX
指定された行のページ番号が既知の場合に真。
?e
ファイルの終りのときに真。
?f
入力ファイル名があるとき (入力がパイプでないとき) に真。
?lX
指定した行の行番号が既知の場合に真。
?L
ファイルの最終行の行番号が既知の場合に真
?m
2 つ以上の入力ファイルがある場合に真。
?n
新しい入力ファイルの最初のプロンプトのとき真。
?pX
指定した行の現在の入力ファイルでの バイトオフセットで計算したパーセントが既知のとき真。
?PX
指定した行の現在の入力ファイルでの 行番号で計算したパーセントが既知のとき真。
?s
"?B" と同じ。
?x
次の入力ファイルがあるとき (現在の入力ファイルが最後のファイルでないとき) 真。

特殊文字 (クエスチョンマーク、コロン、ピリオド、 パーセント、バックスラッシュ) 以外の 全ての文字がプロンプトの実際に表示される部分になる。 特殊文字をプロンプトに表示させるには、 その文字の前にバックスラッシュを置けばよい。

プロンプトの例をいくつか挙げる。
?f%f:Standard input.
このプロンプトは、ファイル名が既知であれば表示する。 わからないときは "Standard input" と表示する。
?f%f .?ltLine %lt:?pt%pt\%:?btByte %bt:-...
このプロンプトは、ファイル名が既知であれば、ファイル名を表示する。 行番号が既知のときには、ファイル名に続けて行番号を表示する。 もし行番号が既知でなく、パーセントが既知のときは、パーセントを表示する。 パーセントも既知でなく、バイトオフセットが既知のときは、 バイトオフセットを表示する。 バイトオフセットも既知でないときは、ダッシュを表示する。 各クエスチョンマークにピリオドがどのように対応しているかに注意すること。 また、%pt の後の % を実際に表示させるために、 バックスラッシュでエスケープしていることにも注意すること。
?n?f%f.?m(file%iof%m)..?e(END)?x-Next\:%x..%t
このプロンプトがファイルにおける最初のプロンプトのときファイル名を表示する。 さらに、2 つ以上のファイルがあるときは、 "file N of N" というメッセージを加える。 そして、ファイルの終りに達したときは、文字列 "(END)" を表示し、 引き続いて次のファイルがあるときはそのファイル名を表示する。 最後に、後に続くスペースを切り詰める。 これはデフォルトで使われているプロンプトである。 参考として、(-m と -M オプションに対応する) 2 つのデフォルトプロンプトを挙げる。 ここで 2 行に分けたのは、読みやすさの為だけで実際は分けない。


?n?f%f.?m(file%iof%m)..?e(END)?x-Next\:%x.: ?pB%pB\%:byte%bB?s/%s...%t
?f%f.?n?m(file%iof%m)..?ltlines%lt-%lb?L/%L.: byte%bB?s/%s..?e(END)?x-Next\:%x.:?pB%pB\%..%t
そして、次に挙げるのは、= コマンドで出されるデフォルトのメッセージである。

?f%f.?m(file%iof%m).?ltlines%lt-%lb?L/%L.. byte%bB?s/%s.?e(END):?pB%pB\%..%t

プロンプト展開の機能は、他の目的でも使われる。 環境変数 LESSEDIT が定義されている場合、 この変数は v コマンドで実行されるコマンドとして使われる。 LESSEDIT の文字列は、プロンプト文字列と同じ方法で展開される。 LESSEDIT のデフォルトの値を以下に示す。


%E?lm+%lm.%f
この文字列は、「エディタ名」・「+ と行数」・「ファイル名」に展開される。 指定したエディタが、"+行数" という書式を受け付けない場合や、 呼び出しの書式が違う場合は、このデフォルトの LESSEDIT を修正することができる。

セキュリティ

環境変数 LESSSECURE が 1 に設定されている場合、 less は「安全な」モードで実行される。この場合、次のことができない。

!
シェルコマンド
|
パイプコマンド
:e
ファイルの読み込みコマンド
v
編集コマンド
s -o
ログファイル
-k
lesskey ファイルを使う
-t
タグファイルを使う
" "
ファイル名の中の、* といった、メタキャラクタ
" "
ファイル名補完 (TAB, ^L)

less をいつも「安全な」モードでしか実行できないように コンパイルすることも可能である。

環境変数

環境変数は、通常と同じくシステム環境で設定でき、 lesskey (1) ファイルでも指定できる。 環境変数が複数で指定されている場合、 ローカルな lesskey ファイルで定義されている変数は、 システム環境で定義されている変数より優先される。 また、システム環境で定義されている変数は、 システム共通の lesskey ファイルで定義されている変数より優先される。

COLUMNS
画面の 1 行あたりの文字数を設定する。 環境変数 TERM で設定された値より優先される (TIOCGWINSZ や WIOCGETD をサポートするウインドウシステムの場合、 ウインドウシステムが持つ画面サイズの方が、 環境変数 LINES と COLUMNS より優先される)。
EDITOR
(v コマンドで使われる) エディタの名前。
HOME
(Unix で lesskey ファイルを探すのに使われる) ユーザーのホームディレクトリ名。
HOMEDRIVE, HOMEPATH
環境変数 HOME が設定されていない場合、 環境変数 HOMEDRIVE と HOMEPATH を足したものが ユーザーのホームディレクトリ名となる (Windows バージョンのみで有効)。
INIT
(OS/2 で lesskey ファイルを探すのに使われる) ユーザーの init ディレクトリ名。
LANG
文字セットを決定するための言語。
LC_CTYPE
文字セットを決定するための言語。
LESS
less に自動的に渡されるオプション。
JLESS
環境変数 LESS と同じ。
LESSANSIENDCHARS
ANSI カラーシーケンスの終りとして使われる文字 (デフォルトは "m")。
LESSBINFMT
印字可能文字でもなく、制御文字でもない文字を表示する際のフォーマット。
LESSCHARDEF
文字セットを定義する。
JLESSCHARSET
あらかじめ定義された文字セットを選択する。
LESSCHARSET
JLESSCHARSET が定義されていない場合に、 あらかじめ定義された文字セットを選択する。
JLESSKEYCHARSET
キーボート入力のためのあらかじめ定義された文字セットを選択する。
JLESSPLANESET
あらかじめ定義された ISO 2022 コード拡張テクニックのプレーンセットを選択する。
LESSCLOSE
(オプションの) 入力ポストプロセッサを呼び出すためのコマンドライン。
LESSECHO
lessecho プログラムの名前 (デフォルトは、"lessecho")。 lessecho プログラムは、Unix システム上のファイル名を、* や ? といった メタキャラクタで展開するのに必要である。
LESSEDIT
(v コマンドで使われる) エディタのプロトタイプ文字列。 「プロンプト」セクションでの話題を参照。
LESSKEY
デフォルトの lesskey(1) ファイルの名前。
LESSKEY_SYSTEM
デフォルトで使われるシステム共通の lesskey(1) ファイルの名前。
LESSMETACHARS
シェルに「メタキャラクタ」として解釈される文字のリスト。
LESSMETAESCAPE
less がシェルにコマンドを送る際にメタキャラクタの前に付加するプレフィックス。 LESSMETAESCAPE が空の文字列であるとき、 メタキャラクタを含むコマンドはシェルに送られない。
LESSOPEN
(オプションの) 入力プリプロセッサを起動するためのコマンドライン。
LESSSECURE
less を「安全な」モードで実行させる。 「セキュリティ」セクションでの話題を参照すること。
LESSSEPARATOR
ファイル名補完においてディレクトリ名に付加される文字列。
LINES
画面の行数を設定する。 環境変数 TERM で指定された行数より優先される。 (TIOCGWINSZ や WIOCGETD をサポートするウインドウシステムの場合、 ウインドウシステムが持つ画面サイズの方が、 環境変数 LINES と COLUMNS より優先される)。
PATH
(MS-DOS と OS/2 で lesskey ファイルを探すのに使われる) ユーザーの検索パス。
SHELL
! コマンドを実行したり、ファイル名を補完するのに使われるシェル。
TERM
less が実行される端末のタイプ。
VISUAL
(v コマンドで使われる) エディタの名前。

関連項目

lesskey(1)

警告

(-P オプションで変更されない限り) = コマンドとプロンプトは、 画面の先頭行と最終行の行番号を表示する。 しかし、バイト数とパーセントは画面最終行の次行について表示する。

:e コマンドが 2 つ以上のファイルに対して使われ、 ファイルのうちの1つが既に閲覧されている場合、 新しいファイルが予期しない順番でリストに入れられる。

ある種の古い端末 (いわゆる「マジッククッキー」端末) では、 検索のときのハイライトが表示エラーを起こす。 そのような端末では、この問題を避けるため、 検索の際のハイライトがデフォルトで不可に設定されている。

検索の際のハイライト表示が設定されている場合に、 検索パターンが ^ で始まっていると、 マッチした文字列以外の部分までハイライトされることがある (POSIX 正規表現パッケージを使って less がコンパイルされていれば、 この問題は起こらない)。

setlocale が 0 から 31 の値を持つ ASCII 文字をバイナリキャラクタでなく 制御文字とするシステムもある。 そのため、 less がある種のバイナリファイルをバイナリでない通常のファイルとして扱かってしまう。 この問題を解決するには、環境変数 LESSCHARSET を "ascii" (もしくは、何か適切な文字セット) に設定すればよい。

このバージョンの less に関する既知のバグの最新リストは、 http://www.flash.net/~marknu/less を参照すること。

著作権

Copyright (C) 2000 Mark Nudelman

less is part of the GNU project and is free software. You can redistribute it and/or modify it under the terms of either (1) the GNU General Public License as published by the Free Software Foundation; or (2) the Less License. See the file README in the less distribution for more details regarding redistribution. You should have received a copy of the GNU General Public License along with the source for less; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. You should also have received a copy of the Less License; see the file LICENSE.

less is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

著者

Mark Nudelman <marknu@flash.net>
バグの報告やコメントは、上のアドレスか bug-less@gnu.org へ送って下さい。

パッチ

Copyright (c) 1994-2000 Kazushi (Jam) Marukawa, Japanized routines only
Comments about this part to: jam@pobox.com
You may distribute under the terms of the Less License.

[参考訳]
Copyright (c) 1994-2000 Kazushi (Jam) Marukawa, 日本語化ルーチンのみ。
この部分に関するコメントは jam@pobox.com へ送って下さい。
このパッチは Less ライセンスの下で配布できる。