LESS(1)

名称
less - more の反対

書式
less -?
less --help
less -V
less --version
less [-[+]aBcCdeEfgGiImMnNqQrsSuUVwX]
[-b bufs] [-h lines] [-j line] [-k keyfile]
[-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
[-T tagsfile] [-x tab] [-y lines] [-[z] lines]
[+[+]cmd] [--] [filename]...
(長いオプション名による代替オプション文法に関してはオプション節を参照してく ださい。)

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

コマンドは more と vi の両方に基づいています。 コマンドに対し、10 進数値を前に付けることが可能です。 この数値は、以下の説明においては N で表します。 コマンドによってはこの数字を使用するものがあり、 この用法は以下に示します。

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

h or H
    ヘルプ: これらのコマンドの概要を表示します。 もし他のコマンド全てを忘れたとしても、このコマンドだけは忘れないでください。

SPACE or ^V or f or ^F
    前方に N 行、デフォルトでは 1 ウィンドウスクロールします (後述する -z オプションを参照してください)。 N が画面サイズより大きい場合には、 最後の表示可能な部分のみが表示されます。 警告: いくつかのシステムでは、 ^V は特殊な機能打ち消し文字として使われています。

z   SPACE と似ていますが、N を指定すると N が新しいウィンドウサイズとなります。

ESC-SPACE
    SPACE と似ていますが、ファイルの終わりに達した場合でも 1 画面分スクロールします。

RETURN or ^N or e or ^E or j or ^J
    前方に N 行、デフォルトでは 1 行スクロールします。 たとえ N が画面サイズより大きい場合でも、N 行全てを表示します。

d or ^D
    前方に N 行、デフォルトでは半画面スクロールします。 N が指定された場合、その後の d コマンドと u コマンドの 新しいデフォルトサイズが N になります。

b or ^B or ESC-v
    後方に N 行、デフォルトでは 1 ウィンドウスクロールします (後述する -z オプションを参照してください)。 N が画面サイズより大きい場合には、 最後の表示可能な部分のみが表示されます。

w   ESC-v と似ていますが、N を指定すると、N が新しいウィンドウサイズとなります。

y or ^Y or ^P or k or ^K
    後方に N 行、デフォルトでは 1 行スクロールします。 たとえ N が画面サイズより大きい場合でも、N 行全てを表示します。 警告: いくつかのシステムでは、^Y が特殊なジョブ制御文字として使われています。

u or ^U
    後方に N 行、デフォルトでは半画面スクロールします。 N が指定された場合、その後の d コマンドと u コマンドの 新しいデフォルトサイズが N になります。

ESC-) or RIGHTARROW
    右水平方向に N 文字、デフォルトでは画面幅の半分スクロールします (-# オプションを参照)。 文字がスクロールされている間、(長い行を切り落とす) -S オプションが 有効であるかのように動作します。 文字数 N を入力する場合は、 右矢印キーが行編集コマンド (行編集の節を参照) で使われるため、 ESC-) を使用しなければなりません。

ESC-( or LEFTARROW
    左水平方向に N 文字、デフォルトでは画面幅の半分スクロールします (-# オプションを参照)。

r or ^R or ^L
    画面を再描画します。

R   画面の再描画をしますが、バッファリングされた入力を破棄します。 ファイルを閲覧中に、ファイルが変更される場合に便利です。

F   前方にスクロールし、ファイルの末尾に達した後も読み続けようとします。 通常このコマンドは、既にファイルの終わりに達している場合に使われます。 このコマンドにより、閲覧中に大きくなり続けるファイルの末尾を 監視できます。 ("tail -f" コマンドと同じような動作をします。)

g or < or ESC-<
    ファイルの N 行目、デフォルトでは 1 行目 (ファイルの始め) に移動します。 (警告: N が大きいと遅くなります。)

G or > or ESC->
    ファイルの N 行目、デフォルトではファイルの終わりに移動します。 (警告: N が大きい場合や、N が指定されておらず しかもファイルでなく標準入力から読み込んでいる場合には遅くなります。)

p or %
    ファイルの N パーセント目の位置に移動します。 N は 0 から 100 の間でなければなりません。

{   画面内で一番上の行にある左中括弧に対し、 { コマンドで対応する右中括弧の位置に移動します。 対応した右中括弧は画面の最下行に表示されます。 複数の左中括弧が画面の先頭行にある場合、 数字 N で行の N 個目の括弧かを指定できます。

}   画面内で一番下の行にある右中括弧に対し、 } コマンドで対応する左中括弧の位置に移動します。 対応した左中括弧は画面の先頭行に表示されます。 複数の右中括弧が画面の先頭行にある場合、 数字 N で行の N 個目の括弧かを指定できます。

(   { コマンドと似ていますが、中括弧ではなく小括弧に対して動作します。

)   } コマンドと似ていますが、中括弧ではなく小括弧に対して動作します。

[   { コマンドと似ていますが、中括弧ではなく大括弧に対して動作します。

]   } コマンドと似ていますが、中括弧ではなく大括弧に対して動作します。

ESC-^F
    2 つの文字を続けて入力することで、{ コマンドと似た動作をします。 2 つの文字はそれぞれ開括弧と閉括弧として扱われます。 例えば "ESC ^F < >" を実行すると、 一番上の行に表示されている < に対応する > に進むことができます。

ESC-^B
    2 つの文字を続けて入力することで、} コマンドと似た動作をします。 2 つの文字はそれぞれ開括弧と閉括弧として扱われます。 例えば "ESC ^B < >" を実行すると、 一番下の行に表示されている > に対応する < に戻ることができます。

m   任意の小文字を続けて入力することで、現在の位置を、入力した文字でマークします。

'   (シングルクォート)。 任意の小文字を続けて入力することで、以前この文字でマークした位置に戻ります。 シングルクォートをもう 1 つ続けることで、 「大きく」移動するコマンド実行前の位置に戻ります。 ^ や $ で、それぞれファイルの先頭行と最終行にジャンプします。 新しいファイルを読み込んでもマークは保存されるので、' コマンドは 入力ファイルの切り替えに使うことができます。

^X^X
    シングルクォートと同じです。

/pattern
    ファイルの中で N 番目の pattern を含む行を前方検索します。 N のデフォルトは 1 です。 このパターンは ed で認識される正規表現です。 検索は画面に表示されている第 2 行から始まります (しかし -a と -j オプションはこれを変更しますので、参照してください)。

    いくつかの文字はパターンの始めに置かれた場合は特殊文字とされます。 これらの文字はパターンの一部としてではなく 検索方法を変更するために使われます:

    ^N or !
        パターンにマッチしない行を検索します。

    ^E or *
        複数のファイルを検索します。 つまり、検索がマッチしないまま現在のファイルの終わりに達した場合、 コマンドラインリストにある次のファイルで検索を続行します。

    ^F or @
        現在の画面表示や -a または -j オプションの設定に関係なく、 コマンドラインリストの最初のファイルの先頭行から 検索を開始します。

    ^K  現在の画面中でマッチする全てのパターンをハイライト表示しますが、 一番始めのマッチする位置へは移動しません (現在の位置を保持します)。

    ^R  正規表現のメタキャラクタを解釈しません。 つまり、単純な文字列比較を行います。

?pattern
    ファイルの中で N 番目の pattern を含む行を後方検索します。 検索は、画面の一番上に表示されている行の直前の行から行います。

    / コマンドの時と同様に、いくつかの文字は特殊です:

    ^N or !
        パターンにマッチしない行を検索します。

    ^E or *
        複数のファイルで検索します。 つまり、検索がマッチしないまま現在のファイルの先頭に達した場合、 コマンドラインリストにある前のファイルで検索を続行します。

    ^F or @
        現在の画面表示や -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 コマンド参照) が読み直されます。 filename 中のパーセント記号 (%) は現在のファイル名で置き換えられます。 filename 中のシャープ記号 (#) は前に読み込んだファイル名で置き換えられます。 しかし、2 つ続けたパーセント記号は、 単純に 1 つのパーセント記号に置き換えられます。 これはパーセント記号を含むファイル名を入力できるようにするためです。 同様に、2 つ続けたシャープ記号は、 1 つのシャープ記号に置き換えられます。 このファイル名は、ファイルのコマンドラインリストに挿入されるので、 その後の :n コマンドと :p コマンドで閲覧できるようになります。 filename に複数のファイルを指定すると、全てをファイルリストに加え、 最初のファイルを読み込みます。 ファイル名が、複数のスペースを含む場合、 ファイル名全体はダブルクォートで囲まれていなければなりません (-" オプションも参照してください)。

^X^V or E
    :e コマンドと同じです。 警告: いくつかのシステムでは ^V が特殊な機能打ち消し文字として 使われています。 そのようなシステムでは、^V を使うことはできないでしょう。

:n  (コマンドラインで与えられたファイルリストから) 次のファイルを読み込みます。 数字 N が指定されている場合は、N 個後のファイルを読み込みます。

:p  コマンドラインリストの中にある前のファイルを読み込みます。 数字 N が指定されている場合は、N 個前のファイルを読み込みます。

:x  コマンドラインリストの中の一番最初のファイルを読み込みます。 数字 N が指定されている時は、N 番目のファイルを読み込みます。

:d  現在閲覧中のファイルをファイルリストから削除します。

= or ^G or :f
    閲覧中のファイルについて、ファイル名、 表示中の最下行の行番号とバイトオフセットといった情報を表示します。 可能な場合には、ファイルの長さ、ファイルの行数、 表示中の最下行より上にあるファイルの割り合い (パーセント) も表示します。

-   コマンドラインオプション文字 (後述するオプション参照) のうちの 1 つを続けて 入力することで、オプション設定を変更し新しい設定を解説するメッセージを 表示します。 ダッシュの直後に ^P (CONTROL-P) が入力された場合、 オプションの設定は変更されますが、メッセージは表示されません。 オプション文字が、(-b や -h のように) 数値を持ったり、 (-P や -t のように) 文字列値を持つ場合、 オプション文字の後に新しい値を入力します。 値を入力しなかった場合、現在の設定を示すメッセージを 表示するのみで、設定は変わりません。

--  - コマンドと似ていますが、1 文字オプションではなく、 長いオプション名 (後述するオプション節を参照) を受け付けます。 オプション名を打ち込んだ後に RETURN を押す必要があります。 2 個目のダッシュ直後の ^P は - コマンドと同じように、新しい設定を 解説するメッセージの表示を抑制します。

-+  コマンドラインオプション文字のうちの 1 つを続けて入力することで、 オプションをデフォルト設定に戻して、新しい設定を表示します。 ("-+X" コマンドは、 コマンドラインで "-+X" とするのと同じです。) このコマンドは文字列の値を持つオプションには働きません。

--+ -+ コマンドと似ていますが、1 文字オプションではなく、 長いオプション名を受け付けます。

-!  コマンドラインオプション文字のうちの 1 つを続けて入力することで、 オプションをデフォルト設定の「反対」にして、新しい設定を表示します。 このコマンドは数値または文字列の値を持つオプションには働きません。

--! -! コマンドと似ていますが、1 文字オプションではなく、 長いオプション名を受け付けます。

_   (アンダスコア。) コマンドラインオプション文字のうちの 1 つを続けて入力することで、 そのオプションの現在設定を表示します。 オプションの設定は変化しません。

__  (2 つのアンダスコア。) _ (アンダスコア) コマンドと似ていますが、1 文字オプションではなく、 長いオプション名を受け付けます。 オプション名を打ち込んだ後に RETURN を押す必要があります。

+cmd
    新しいファイルを読み込む度に、指定したコマンド cmd を実行します。 例えば +G は less がファイルを最初に表示する際に、始めではなく終わりから表示させます。

V   現在起動している less のバージョンを表示します。

q or Q or :q or :Q or 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 つのダッシュの後に 1 つの文字か、または 2 つのダッシュの後に長いオプション名の 2 つの形式のうち片方で指定できます。 長いオプション名は省略があいまいでない長さまで省略できます。 例えば --quit-at-eof は --quit と省略できますが、 --quit-at-eof と --quiet の両方が --qui で始まるので、 --qui とは省略できません。 いくつかの長いオプション名は --QUIT-AT-EOF のように、 --quit-at-eof とは別に大文字になっています。 このようなオプション名は最初の 1 文字が大文字になっていればよく、 名前の残りは大文字でも小文字でも構いません。 例えば --Quit-at-eof は --QUIT-AT-EOF と同等です。

オプションは環境変数 "LESS" の値からも取られます。 例えば less を起動する度に "less -options ..." とタイプするのを避けるには、 csh では:

setenv LESS "-options"

sh を使っている場合は:

LESS="-options"; export LESS

とします。 MS-DOS 上では、クォートする必要はありませんが、オプション文字列中の パーセント記号を 2 つのパーセント記号に置き換える必要があります。

環境変数は、コマンドラインより先に解析されますので、 コマンドラインオプションは、環境変数 LESS に優先します。 あるオプションが環境変数 LESS にあった場合でも、 コマンドラインオプションに "-+" を含めて起動すると、そのオプションは デフォルトにリセットされます。

-P または -D オプションのように、後に文字列が続くオプションでは、 ドル記号 ($) が文字列の終わりを表す記号として使われます。 例えば MS-DOS 上で -D オプションを 2 つ設定するには、下記のように それらの間にドル記号を入れる必要があります:

LESS="-Dn9.1$-Ds4.1"

-? or --help
    このオプションは、 less が受け付けるコマンドの概要を表示します (h コマンドと同じです)。 (使用しているシェルが疑問符をどのように解釈するかに依存し、 "-\?" のように疑問符をクォートする必要があるかもしれません。)

-a or --search-skip-screen
    画面に表示されている最下行の次の行から検索を開始します。 つまり、現在画面に表示されている行中の検索は行いません。 デフォルトでは、検索は画面中の第 2 行目 (もしくは最後に検索対象が見付かった行のあと; -j オプション参照) から行われます。

-bn or --buffers=n
    less が各ファイルに対して使うバッファの数を指定します。 各バッファは 1K で、 デフォルトでは各ファイルに対し 10 個のバッファが使われます (ただし、ファイルがパイプの場合は例外です; -B オプションを参照)。 数字 n で、使用するバッファの数を指定します。

-B or --auto-buffers
    データがパイプから読み込まれる場合、 デフォルトではバッファは必要に応じて自動的に割り当てられます。 そのため、大容量のデータがパイプから読み込まれる場合、 多くのメモリを割り当ててしまいます。 -B オプションはパイプでの自動的な割り当てを禁止しますので、 -b オプションで指定されたバッファ数のみを使用します。 警告: -B オプションを使った場合、ファイルの最も最近閲覧している 部分しかメモリに保持されず以前のデータが無くなっているため、 誤った表示になる場合があります。

-c or --clear-screen
    全画面の再描画を、先頭行から下に向かって行わせるようにします。 デフォルトでは、 全画面の再描画は、画面の最終行からのスクロールによって行われます。

-C or --CLEAR-SCREEN
    -C オプションは、-c オプションと似ていますが、 画面をクリアしてから再描画します。

-d or --dumb
    -d オプションは端末がダム端末の場合、 通常表示されるエラーメッセージの表示を抑制します。 ダム端末とは画面のクリア、後方にスクロールといった いくつかの重要な機能がない端末のことをいいます。 -d オプションは、それ以外の点についてはダム端末における less の挙動を変化させません。

-Dxcolor or --color=xcolor
    [MS-DOS のみ] 表示する文字の色を設定します。 x は設定する文字の種類を表す 1 文字です: n=標準, s=強調, d=太字, u=下線, k=点滅。 color は、ピリオドで区切られた数値の組です。 1 つ目の数値で文字の前景色、2 つ目の数値で文字の背景色を選びます。 単独の数値、N は、N.0 と同じです。

-e or --quit-at-eof
    ファイルの終わりに 2 度達した際に、自動的に less を終了させます。 デフォルトでは、 less は "q" コマンドでのみ終了できます。

-E or --QUIT-AT-EOF
    ファイルの終わりに 1 度達した際に、自動的に less を終了させます。

-f or --force
    非標準ファイルを強制的にオープンさせます。 (非標準ファイルとは、ディレクトリまたは デバイス型特殊ファイルのことです。) またバイナリファイルをオープンする際の警告メッセージも表示しません。 デフォルトでは less は非標準ファイルのオープンを拒否します。

-F or --quit-if-one-screen
    ファイル全体が最初の画面に表示可能だった場合には、 less を自動的に終了させます。

-g or --hilite-search
    通常、 less は、前回の検索コマンドでマッチした画面中全ての文字列をハイライト表示します。 -g オプションは、この動作を前回の検索コマンドでマッチした文字列のみを ハイライト表示するように変更します。 このオプションは、 less の動作をデフォルトより多少速くします。

-G or --HILITE-SEARCH
    -G オプションは、検索コマンドで見付かった文字列に対する 全てのハイライト表示を抑制します。

-hn or ---max-back-scroll=n
    後方にスクロールする最大行数を指定します。 もし n 行を上回って後方にスクロールする必要がある場合は、 代わりに画面が前方に向かって再描画されます。 (ターミナルが後方に戻る機能を持たない場合は、-h0 が暗に意味されています。)

-i or --ignore-case
    大文字小文字の区別をしません。 つまり、大文字と小文字を同一と見なして検索を行います。 このオプションは、検索パターンに大文字が含まれていた場合には無視されます。 いいかえると、検索パターンに大文字が含まれていた場合、 大文字小文字の区別をした検索をします。

-I or --IGNORE-CASE
    -i コマンドと似ていますが、検索パターンが大文字を含んでいた場合でも、 大文字小文字の違いを無視して検索をします。

-jn or --jump-target=n
    「ターゲット」行の位置を画面上の何行目に表示するか指定します。 ターゲット行とは、文字検索、タグ検索、行番号へのジャンプ、 ファイルのパーセンテージでのジャンプ、マーク位置へのジャンプ の対象となる行です。 画面の行は数字で指定します: 画面の一番上の行は 1、その次の行は 2、 以下同様に指定します。 画面の最終行から何行目かを指定する場合は、数値を負に指定します: 画面の一番下の行は -1、下から 2 行目は -2、以下同様に指定します。 -j オプションが用いられている場合、 検索はターゲット行の直後の行から始まります。 例えば "-j4" の場合、ターゲット行は画面の 4 行目なので、 検索は画面の 5 行目から始まります。

-J or --status-column
    画面の左端にステータスカラムを表示します。 ステータスカラムは -w または -W オプションが有効な場合のみ使用されます。

-kfilename or --lesskey-file=filename
    指定したファイルを lesskey (1) のファイルであるとして less にオープンさせ、処理させます。 複数の -k オプションを指定することもできます。 環境変数 LESSKEY または LESSKEY_SYSTEM が設定された場合、あるいは lesskey ファイルが標準位置 (キー割り当ての節を参照) に見付かった場合、 そのファイルも lesskey ファイルとして使用されます。

-m or --long-prompt
    less に (more のような)、 冗長なパーセント表示のプロンプトを表示させます。 デフォルトでは、 less は、コロンのプロンプトを表示します。

-M or --LONG-PROMPT
    more より、さらに冗長なプロンプトを less に表示させます。

-n or --line-numbers
    行番号の使用を抑制します。 (行番号を使用する) デフォルトの設定では、 特に、入力ファイルが非常に大きな場合に less の速度の低下を引き起こすことがあります。 -n オプションで行番号の使用を抑制することで、この問題を避けられます。 行番号の使用とは、冗長なプロンプトと = コマンドでの行番号の表示と、 v コマンドが現在の行番号をエディタに渡すことです (下記のプロンプト節における LESSEDIT に関する話題も参照してください)。

-N or --LINE-NUMBERS
    画面の各行の先頭に行番号を表示します。

-ofilename or --log-file=filename
    less の入力ファイルを閲覧されている状態のまま、 指定した名前のファイルにコピーします。 このオプションは入力ファイルが通常ファイルではなく、 パイプである場合にのみ適用されます。 ファイルが既に存在する場合は、 less は上書きする前に確認を求めます。

-Ofilename or --LOG-FILE=filename
    -O オプションは -o に似ていますが、 既にあるファイルを確認することなく上書きします。

    ログファイルが指定されてない場合、 -o と -O オプションは、 less のなかから、ログファイルを指定するために使えます。 ファイル名を指定しない場合は、単にログファイル名を表示するだけです。 "s" コマンドは、 less のなかから、-o を指定するのと同等です。

-ppattern or --pattern=pattern
    コマンドラインでの -p オプションは、 +/pattern を指定するのと同じです。つまり、 less はファイル中で pattern が最初に現れるところから表示を開始します。

-Pprompt or --prompt=prompt
    3 つのプロンプトスタイルを好みに合わせて仕立てる方法を提供します。 このオプションは通常、 less コマンドを呼び出す度に打込んだりせずに、 環境変数 LESS で指定します。 このオプションは、変数 LESS の中で 最後のオプションになっているか、 ドル記号で終了している必要があります。 -Ps の後の文字列は、デフォルトの (短い) プロンプトを その文字列に変更します。 -Pm は、中間の (-m) プロンプトを変更します。 -PM は、長い (-M) プロンプトを変更します。 -Ph は、ヘルプ画面のプロンプトを変更します。 -P= は、= コマンドで表示されるメッセージを変更します。 全てのプロンプト文字列は、 文字と特別なエスケープシーケンスの連続から構成されます。 詳細は、プロンプト節を参照してください。

-q or --quiet or --silent
    適度に「静かな」動作にします: ファイルの終わりを越えて、またはファイルの始まりを越えて スクロールしようとした場合に端末ベルが鳴らなくなります。 端末が「ビジュアルベル」を持っている場合は代わりにそれを使います。 無効な文字を打った時のような、 その他の確かなエラーに関してはベルを鳴らします。 デフォルトでは、全ての場合において端末ベルを鳴らします。

-Q or --QUIET or --SILENT
    完全に「静かな」動作にします: 端末ベルは全く鳴らしません。

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

-R or --RAW-CONTROL-CHARS
    -r と似ていますが、可能な限り画面の表示状態を追おうとします。 この機能は入力が通常の文字といくつかの ANSI 「カラー」エスケープシーケンス からなっている場合にのみ働きます。 ANSI 「カラー」エスケープシーケンスとは

        ESC [ ... m

    のような形式で、"..." には 0 個以上の "m" でない文字が入ります。 画面表示状態を追うために、全ての制御文字と 全ての ANSI カラーエスケープシーケンスは カーソルを動かさないと仮定されます。 カラーエスケープシーケンスを終了させることのできる文字のリストを LESSANSIENDCHARS 環境変数に設定することにより、"m" 以外の文字が ANSI カラーエスケープシーケンスを終了できることを less に教えることができます。

-s or --squeeze-blank-lines
    連続した空白行を、1 行の空白行にまとめます。 これは、 nroff の出力を閲覧する際に便利です。

-S or --chop-long-lines
    画面幅より長い行を折り返さずに切り捨てます。 つまり、長い行の残りの部分を単純に捨ててしまいます。 デフォルトでは長い行を折り返します。つまり残りが次の行に表示されます。

-ttag or --tag=tag
    -t オプションの直後にはタグ名が続き、そのタグを含むファイルを編集します。 このオプションを使うためには、 ctags (1) コマンドであらかじめ作られた "tags" と呼ばれる ファイルがカレントディレクトリにある必要があります。 このオプションは、 less の中から (- コマンドを用いて) 新しいファイルを読み込む方法として 指定することもできます。 コマンド ":t" は、 less の中で、-t を指定するのと同じです。

-Ttagsfile or --tag-file=tagsfile
    "tags" の代わりに使用するタグファイルを指定します。

-u or --underline-special
    バックスペースと復帰文字 (carrage return) を印刷可能文字として扱います。 つまり、これらが入力に現れた時は端末に送られます。

-U or --UNDERLINE-SPECIAL
    バックスペース、タブ、復帰文字を制御文字として扱います。 つまり、これらの文字は -r オプションで指定されたものとして扱います。

    -u と -U のどちらも指定されていない場合、デフォルトでは 下線文字の隣にあるバックスペースは特別に扱われます。 すなわち、 下線の引かれた文字が、端末のハードウェア下線機能を使って表示されます。 さらに、同一の 2 文字の間にあるバックスペースも特別な扱われ方をします。 すなわち、 重ね打ちされた文字が、端末のハードウェア太字機能を使って表示されます。 その他のバックスペースは、前の文字と共に削除されます。 直後に改行が続く復帰文字は、削除されます。 その他の復帰文字は -r オプションで指定されたように扱われます。 重ね打ちや下線の引かれた文字の検索は -u と -U のどちらも有効でない場合にのみ可能です。

-V or --version
    less のバージョン番号を表示します。

-w or --hilite-unread
    1 ページ前方に移動した後最初の「新しい」行を一時的にハイライト表示します。 最初の「新しい」行とは、移動前に画面の最後だった行の直後の行のことです。 また g や p コマンドの後、ターゲット行をハイライト表示します。 ハイライト表示は次の移動を伴うコマンドで消去されます。 行の全てがハイライト表示されますが、-J オプションが有効な場合は、 ステータスカラムのみがハイライト表示されます。

-W or --HILITE-UNREAD
    -w と似ていますが、1 行より多く前方に移動する全てのコマンドのあと、 最初の新しい行を一時的にハイライト表示します。

-xn or --tabs=n
    タブストップを n 文字ごとに設定します。 デフォルトの n は 8 です。

-X or --no-init
    ターミナルに、termcap 初期化文字列と非初期化文字列を送らないようにします。 画面をクリアする際のように非初期化文字列が何か不必要なことをする場合には、 望ましい場合があります。

-yn or --max-forw-scroll=n
    前方にスクロールする最大行数を指定します。 もし n 行を上回って前方にスクロールする必要がある場合は、 代わりに画面が再描画されます。 必要ならば、-c か -C オプションを使用して、 画面の先頭から再描画できます。 デフォルトでは、全ての前方移動はスクロールになります。

-[z]n or --window=n
    デフォルトのスクロールするウィンドウの大きさを n 行に変更します。 デフォルトは 1 画面分の行数です。 z と w コマンドはウィンドウの大きさを変更するためにも使えます。 z は、 more との互換性のために省略できます。 数値 n が負の場合は、現在の画面サイズより n 行小さくウィンドウサイズを設定することを意味しています。 例えば画面が 24 行の場合、-z-4 はスクロールする ウィンドウを 20 行に設定することを意味しています。 画面が 40 行に変更された場合には、 スクロールウィンドウは自動的に 36 行に変更されます。

-"cc or --quotes=cc
    ファイル名をクォートする文字を変更します。 スペースとクォート文字の両方を含むファイル名を指定する場合には このオプションが必要となるでしょう。 1 文字続けた場合、クォート文字が指定した文字に変更されます。 この場合スペースを含むファイル名はダブルクォートではなく、 この文字で囲まなければなりません。 また、2 文字続けた場合は、 1 文字目が開クォートに、2 文字目が閉クォートになります。 この場合スペースを含むファイル名の前に開クォート文字をおき、 ファイル名の後に閉クォート文字をおきます。 引用文字を変更した後でも、このオプションは -" (ダッシュの後にダブルクォート) のままであることに注意してください。

-~ or --tilde
    通常、ファイルの終わりより後の行は、1 つのチルダ (~) で表示されます。 このオプションを使うと、ファイルの終わりより後の行を空白行で表示します。

-# or --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 or ESC-LEFTARROW ]
    (CONTROL と LEFTARROW を同時入力) カーソルを 1 単語分左へ移動します。

^RIGHTARROW [ ESC-w or ESC-RIGHTARROW ]
    (CONTROL と RIGHTARROW を同時入力) カーソルを 1 単語分右へ移動します。

HOME [ ESC-0 ]
    カーソルを行頭へ移動します。

END [ ESC-$ ]
    カーソルを行末へ移動します。

BACKSPACE
    カーソルの左にある文字の消去、 または、コマンドラインが空の場合にコマンドをキャンセルします。

DELETE or [ ESC-x ]
    カーソルの下にある文字を消去します。

^BACKSPACE [ ESC-BACKSPACE ]
    (CONTROL と BACKSPACE を同時入力) カーソルの左にある単語を消去します。

^DELETE [ ESC-X or ESC-DELETE ]
    (CONTROL と DELETE を同時入力) カーソルの下にある単語を消去します。

UPARROW [ ESC-k ]
    前のコマンドラインを呼び出します。

DOWNARROW [ ESC-j ]
    次のコマンドラインを呼び出します。

TAB カーソルの左にある部分的なファイル名を補完します。 複数のファイル名にマッチした場合は、 最初にマッチしたファイル名がコマンドラインに入力されます。 TAB を繰り返し打つと、マッチした他のファイル名を順番に表示します。 補完したファイル名がディレクトリの場合、"/" がファイル名に付け加えられます。 (MS-DOS システムでは、"\" が付け加えられます。) ディレクトリ名に異なる文字を付け加えたい場合は、 環境変数 LESSSEPARATOR で指定できます。

BACKTAB [ ESC-TAB ]
    TAB と似ていますが、マッチしたファイル名を逆順に循環して入力します。

^L  カーソルの左にある部分的なファイル名を補完します。 複数のファイル名にマッチした場合は、 (もし収まれば) マッチした全てのファイル名がコマンドラインに入力されます。

^U (Unix) or ESC (MS-DOS)
    全てのコマンドラインを消去するか、 またはコマンドが空の場合にはコマンドをキャンセルします。 Unix において、line-kill 文字を ^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_SYSTEM が設定されていた場合は、 less はシステム標準 lesskey ファイルとしてその値を使用します。 設定されてない場合、 less はシステム標準 lesskey ファイルを標準の場所で探します。 Unix システムでは、システム標準ファイルは /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" を 1 つ含んでいなければなりません。 これは、入力プリプロセッサコマンドが呼び出される際に、 ファイル名に置き換えられます。

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

例えば多くの Unix システムでは、次の 2 つのスクリプトにより 圧縮されているファイルを圧縮された状態のまま 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

これらのスクリプトを使うためには、それらの両方を実行可能な場所に置き、 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 を使用できますが、 削除する代替ファイルがないので通常必要ありません。 この例では、LESSCLOSE ポストプロセッサに渡される 代替ファイル名は "-" です。

各国文字集合
入力ファイルには、3 種類の文字が含まれています。

通常文字
    画面に直接表示できる文字。

制御文字
    画面に直接表示すべきではありませんが、(バックスペースやタブのように) 普通のテキストファイル中で見つかることが予期される文字。

バイナリ文字
    画面に直接表示すべきではなく、 テキストファイル中で見つかることが予期されていない文字。

「文字集合」は簡潔にいうとどの文字が通常文字、制御文字、 バイナリ文字として考えられるかということです。 環境変数 LESSCHARSET で文字セットを選択できます。 環境変数 LESSCHARSET に設定できるのは:

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 符号を選択します。

環境変数 LESSCHARSET が設定されていない場合の デフォルト文字集合は latin1 です。 しかし、環境変数 LC_ALL, LC_CTYPE, LANG のなかに "UTF-8" の文字列が 見つかった場合は、代わりに utf-8 がデフォルトの文字集合になります。

ある特殊な場合には、 less が LESSCHARSET で指定できない文字セットを使うように調整したい場合があります。 このような場合、環境変数 LESSCHARDEF を用いて文字集合を定義できます。 この環境変数は、文字列中の各文字が、 文字集合中の 1 文字を表すように設定します。 文字 "." は通常文字を表すのに使われ、 文字 "c" は制御文字を、文字 "b" はバイナリ文字を表します。 10 進数は繰り返しに使用できます。 例えば "bccc4b." は値 0 の文字がバイナリ、 1, 2, 3 は制御、4, 5, 6, 7 はバイナリ、 そして 8 は通常文字を意味します。 最後の文字より後の文字は全て最後の文字と同じと扱われるので、 9 から 255 までの文字は通常となります。 (これは例なので、 必ずしもなにか実際の文字集合セットを表しているわけではありません。)

下の表は、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 オプションに与えられた文字列は、指定したプロンプト文字列を置き換えます。 文字列中のある文字は特殊な解釈をされます。 プロンプト機構は柔軟性を持たせるために少々複雑になっていますが、 一般のユーザは、個人用プロンプト文字列の作り方の詳細を理解する必要は ありません。

パーセント記号は後に続く 1 文字が何かによって展開のされ方が異なります:

%bX 現在の入力ファイルでのバイトオフセットで置き換えられます。 b の後には、(上記で X で示されている) 1 文字が続き、 どの行のバイトオフセットを使用するかを指定します。 その文字が "t" の場合は、画面の先頭行のバイトオフセットが使われます。 "m" の場合は真中の行、"b" の場合は最下行、 "B" の場合は最下行の直後の行の、 "j" の場合には -j オプションで指定したターゲット行の バイトオフセットを使うことを意味しています。

%B  現在の入力ファイルの大きさに置き換えられます。

%c  画面の最初の桁に表示されている文字の桁番号に置き換えられます。

%dX ある行が存在する入力ファイル中のページ番号に置き換えられます。 使用する行は %b オプションと同じように X で決定されます。

%D  入力ファイルのページ数、 いいかえると入力ファイルの最終行のページ番号に置き換えられます。

%E  エディタの名前 (環境変数 VISUAL、VISUAL が定義されていない場合は 環境変数 EDITOR) に置き換えられます。 後述する LESSEDIT 機能に関する話題を参照してください。

%f  現在の入力ファイル名に置き換えられます。

%i  入力ファイルのリスト中における現在のファイルのインデックスで置き換えらます。

%lX ある行の入力ファイル中での行番号で置き換えられます。 使用する行は %b オプションと同じように X で決定されます。

%L  入力ファイルの最終行の行番号で置き換えられます。

%m  入力ファイルの合計数で置き換えられます。

%pX 現在の入力ファイルでのバイトオフセットに基づいたパーセントで置き換えられます。 使用する行は %b オプションと同じように X で決定されます。

%PX 現在の入力ファイルでの行番号に基づいたパーセントで置き換えられます。 使用する行は %b オプションと同じように X で決定されます。

%s  %B と同じです。

%t  後に続くスペースを取り除きます。 通常は文字列の最後に使われますが、どこに置いても構いません。

%x  ファイルリストのうち次の入力ファイル名で置き換えられます。

もし (例えば入力がパイプのためファイルサイズが分からない場合など) 項目が不明な場合は、代わりに疑問符が表示されます。

プロンプト文字列のフォーマットは、ある条件によって変更できます。 疑問符とその後に続く 1 文字で、"IF" のように働き、 どのようような文字が続くかで、条件が評価されます。 条件が真ならば、疑問符と条件文字の後に続く文字列から ピリオドまでがプロンプトの中に表示されます。 条件が偽ならば、そのような文字列はプロンプトに挿入されません。 疑問符とピリオドの間にあるコロンは、"ELSE" として働き、 コロンとピリオドの間にある文字列は、IF の条件が偽の場合にのみ プロンプト文字列に挿入されます。 (疑問符に続く) 条件文字には次のようなものがあります:

?a  プロンプトに既に任意の文字列が含まれている場合に真。

?bX 指定した行のバイトオフセットが既知の場合に真。

?B  現在の入力ファイルの大きさが既知の場合に真。

?c  文字が水平に移動している (%c が 0 でない) 場合に真。

?dX 指定した行のページ番号が既知の場合に真。

?e  ファイルの終わりの場合に真。

?f  入力ファイル名がある (つまり、入力がパイプでない) 場合に真。

?lX 指定した行の行番号が既知の場合に真。

?L  ファイルの最終行の行番号が既知の場合に真

?m  複数の入力ファイルがある場合に真。

?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 %i of %m) ..?e(END) ?x- Next\: %x..%t

このプロンプトがファイルにおける最初のプロンプトの場合には ファイル名を表示します。 さらに、複数のファイルがある場合には、 "file N of N" というメッセージを加えます。 そして、ファイルの終わりに達した場合には、文字列 "(END)" が表示され、 引き続いて次のファイルがある場合にはそのファイル名を表示します。 最後に、後に続くスペースを切り詰めます。 これはデフォルトのプロンプトです。 参考として、(-m と -M オプションに対応する) 2 つのプロンプトのデフォルトを挙げます。 ここでは読みやすさのために 2 行に分けています。

?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.:
	?pB%pB\%:byte %bB?s/%s...%t

?f%f .?n?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. :
	byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t

そして、次に挙げるのは = コマンドで表示されるデフォルトのメッセージです。

?f%f .?m(file %i of %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 に渡されるオプション。

LESSANSIENDCHARS
    ANSI カラーエスケープシーケンスを終了させるとみなす文字 (デフォルトは "m")。

LESSBINFMT
    印字可能文字でもなく、制御文字でもない文字を 表示する際のフォーマット。

LESSCHARDEF
    文字集合を定義します。

LESSCHARSET
    あらかじめ定義された文字集合を選択します。

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 コマンドが複数のファイルに対して使われ、 ファイルのうちの 1 つが既に閲覧されている場合、 新しいファイルは予期しない順番でリストに入るかもしれません。

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

検索の際のハイライト表示が有効で、検索パターンが ^ で始まっている場合、 ある特定の条件下では マッチした文字列以上の部分までハイライト表示されることがあります。 (この問題は less が POSIX 正規表現パッケージを用いて コンパイルされている場合には起きません。)

あるシステムでは、 setlocale が 0 から 31 の ASCII 文字をバイナリ文字ではなく 制御文字であると主張します。 そのためいくつかのバイナリファイルが less に普通の非バイナリファイルとして扱われてしまいます。 この問題を回避するには、環境変数 LESSCHARSET を "ascii" (もしくは、何か適切な文字集合) に設定します。

このバージョンの less の最新の既知なバグのリストは http://www.flash.net/~marknu/less を参照してください。

COPYRIGHT
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 へ 送ってください。