more の反対 (more のようなページャー)
less
は
more
(1) と同様なプログラムであるが、
ファイル内での前方移動と同様に後方移動も可能となっている。
また、
less
は起動時に入力ファイル全体を読み込む必要がないため、
大きな入力ファイルの場合には
vi
(1)
のようなテキストエディタより起動が速い。
less
は termcap (システムによっては terminfo) を使用するため、
多くの端末で実行できる。
ハードコピー端末では、まだサポートが限定されている
(ハードコピー端末では、画面の一番上に表示されるべき行に
キャレット (^) が付く)。
コマンドは
more
と
vi
の両方を基本にしている。
(以下の説明において N で表す) 10 進数の後に続けて使用できるコマンドもある。
ed
で認識される正規表現である。
検索は、画面に表示されている第 2 行から始まる
(変更する場合は、-a と -j オプションを参照すること)。
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 の値もオプションとして使われる。
例えば、
less
を起動するたびに less -options ... とタイプするのを避けるために、
csh
では、
sh
を使っているならば、
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
の動作は変更されない。
-Dxcolor または --color=xcolor
[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
ファイルとして使われる。
-K または --quit-on-intr
インタラプト文字 (通常は ^C) を入力した時、すぐさま
less
を終了させる。通常インタラプト文字は何をしていようとも
less
を停止させ、コマンドプロンプトを返す。
-L または --no-lessopen
環境変数 LESSOPEN を無視する (以下の「入力プリプロセッサ」セクションを参照)。
このオプションは
less
の中から設定可能だが、それ以降開いたファイルにのみ適用され、
現在開いているファイルには適用されない。
-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 に似ているが、
既にあるファイルを確認することなく上書きする。
less
のなかで、ログファイルを指定するために使うことができる。
ファイル名を指定しない時は、単にログファイル名を表示するだけである。
s コマンドは、
less
で、-o を指定するのと同じである。
-ppattern または --pattern=pattern
コマンドラインでの -p オプションは、
+/pattern を指定するのと同じである。つまり、
ファイル中で pattern が最初に現れるところを
less
の第 1 行目として表示する。
-Pprompt または --prompt=prompt
3 つのプロンプトのスタイルを好みによって調整する方法を提供する。
このオプションは通常、
less
コマンドを呼び出すたびに打ち込んだりせずに、
環境変数 LESS で指定する。
そのようなオプションは、環境変数 LESS の中で
最後のオプションになっているか、
もしくは、ダラー記号で終了していなければならない。
-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 の「カラー」エスケープシーケンスが含まれていてもよい。
このシーケンスは
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 オプションで指定されたものとして扱う。
less
のバージョンナンバーを表示する。
-w または --hilite-unread
前方に 1 ページ進んだ場合、最初の「新しい」行を一時的にハイライト表示する。
最初の「新しい」行は、前の画面の最下行の次の行である。
g または p コマンドの対象となった行もハイライトする。
ハイライトは、移動させる次のコマンドがあったときに消される。
ステータス行だけをハイライトさせる -J オプションが有効でない限り、
行全体がハイライトされる。
-W または --HILITE-UNREAD
-w と似ているが、前方に 2 行以上移動した場合に
最初の新しい行を一時的にハイライトする。
-XXX または --mark-wrong-char
表示できない誤った文字を表示するために、
マーク文字 (〓) が使われるようにする。
デフォルトでは、そのような表示できない誤った文字は、バイナリとして表示される。
-xn,... または --tabs=n,...
タブストップを n 文字に設定する。n をひとつだけ指定した場合は、
n の倍数でタブストップが設定される。コンマで区切られた複数の値を指定した場合、
それらの位置にタブストップは設定され、最後の二つと同じ間隔で続く。例えば、
-x9,17 は 9, 17, 25, 33 のような位置でタブが設定される。
n のデフォルトは 8 である。
-X または --no-init
端末に、termcap 初期化文字列と非初期化文字列を送れないようにする。
これは、画面をクリアするときのように非初期化文字列が不必要な場合には、
望ましいことがある。
--no-keypad
端末に、keypad 初期化文字列と非初期化文字列を送れないようにする。
これは、テンキーを構成する keypad 文字列が好ましくないやり方で振る舞う場合には、
望ましいことがある。
-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 行に変更される。
-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 コマンドの注意書きを参照すること)。
オプションが ++ で始まっている場合、初期化コマンドは
閲覧している一番始めのファイルだけでなく、全てのファイルに対して適用される。
以前説明した + コマンドも、
全てのファイルに対する初期化コマンドの設定 (および変更) に使われる。
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 とは異なる場所にビルドされていた場合、
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 のポストプロセッサに渡される
代替ファイル名は - である。
less
を調整したいという場合もある。
このようなとき、環境変数 LESSCHARDEF が文字セットを定義するのに使われる。
この変数の定義において、文字 . はノーマルキャラクタ、
文字 c は制御文字、文字 b はバイナリキャラクタを表す。
また、10進数は定義文字の繰り返しを示す。
例を挙げると、bccc4b. は値 0 の文字がバイナリ、
1, 2, 3 はコントロール、4, 5, 6 はバイナリ、
8 はノーマルキャラクタという意味である。
最後に文字タイプが指定された文字より後の全ての文字は、
最後の文字と同じタイプとみなされるので、9 から 255 までの
値を持つ文字はノーマルとなる。
(これは 1 つの例であるので、
必ずしも実際の文字セットを表しているわけではない。)
下の表は、各 LESSCHARSET と等しい LESSCHARDEF の値を示している。
setlocale
インターフェースをサポートしていれば、
less
は文字セットを決定するのに setlocale を使用する。
setlocale は環境変数 LANG もしくは LC_CTYPE で制御される。
最後に、もし
setlocale
インターフェースが利用可能でない場合は、デフォルトの文字セットは
latin1 になる。
制御文字とバイナリキャラクタは目立たせて (反転して) 表示される。
これらの文字は、可能であるならば (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<%02X> である。
注意: LESSBINFMT を経て文字を拡張した結果は、31文字より少なくてはならない。
文字セットが utf-8 の場合、環境変数 LESSUTFBINFMT は LESSBINFMT と同様に振る舞うが、
正常に複合され、表示するのに不適当な Unicode コードポイントのみに適用される
(例えば、未割り当てのコードポイント)。デフォルト値は <U+%04lX> である。
LESSUTFBINFMT や LESSBINFMT は表示属性設定 (*x) を共有することに注意。つまり
何かを指定すると双方に適用される; LESSUTFBINFMT は LESSBINFMT の後に読み込まれ、設定される。
もしあれば、優先度を持つことになる。
UTF-8 ファイル内の問題のあるオクテット (不完全なシーケンスのオクテット、
完全ではあるが、non-shortest formシーケンスのオクテット、不正なオクテット、そしてstray trailing オクテット)
が LESSBINFMT 使い個別に表示される。これは UTF-8 ファイルが不適切に構成されているかの
診断を容易にする。
そして、次に挙げるのは、= コマンドで出されるデフォルトのメッセージである。
?pB%pB\\%:byte %bB?s/%s...%t
byte %bB?s/%s. .?e(END) ?x- Next\\: %x.:?pB%pB\\%..%t
プロンプト展開の機能は、他の目的でも使われる。 環境変数 LESSEDIT が定義されている場合、 この変数は v コマンドで実行されるコマンドとして使われる。 LESSEDIT の文字列は、プロンプト文字列と同じ方法で展開される。 LESSEDIT のデフォルトの値を以下に示す。
byte %bB?s/%s. ?e(END) :?pB%pB\\%..%t
この文字列は、「エディタ名」・「+ と行数」・「ファイル名」に展開される。 指定したエディタが、+行数 という書式を受け付けない場合や、 呼び出しの書式が違う場合は、このデフォルトの LESSEDIT を修正することができる。
%E ?lm+%lm. %f
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 コマンドで使われる) エディタのプロトタイプ文字列。
「プロンプト」セクションでの話題を参照。
LESSGLOBALTAGS
グローバルタグを探すための -t オプションで使われるコマンドの名前。
global
(1) コマンドがインストールされている場合は、通常 global が設定されるべき。
設定されていない場合、グローバルタグは使われない。
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 コマンドで使われる) エディタの名前。
setlocale
が 0 から 31 の値を持つ ASCII 文字をバイナリキャラクタでなく
制御文字とするシステムもある。
そのため、
less
がある種のバイナリファイルをバイナリでない通常のファイルとして扱かってしまう。
この問題を解決するには、環境変数 LESSCHARSET を ascii
(もしくは、何か適切な文字セット) に設定すればよい。
このバージョンの less に関する既知のバグの最新リストは、
http://www.flash.net/~marknu/less を参照すること。