空白行は無視されます。行内でエスケープされていないハッシュマーク (#) の後に続くテキストは、以下に示す場合を除き、無視されます。
#command
コマンドセクションがファイル内の最初のセクションである場合、この行は省略できます。コマンドセクションは、次の形式の行で構成されます。
string <whitespace> action <whitespace>
[extra-string] <newline>
空白は、1つ以上のスペースやタブの任意のシーケンスです。string は、アクションを呼び出すコマンドキーです。string は、単一のコマンドキーの場合もあれば、最大 15個のキーのシーケンスの場合もあります。action は less アクションの名前で、以下の"使用例"セクションのリストにあります。string 中の文字は文字通りに表示される場合もあれば、コントロールキーを示すためにキャレットが先頭に付く場合もあります。バックスラッシュの後に 1~3 桁の 8 進数を指定すると、8 進数の値で文字を指定できます。バックスラッシュとそれに続く特定の文字は、次のように入力文字を指定します:
| \b | BACKSPACE | (0x08) |
| \e | ESCAPE | (0x1B) |
| \n | NEWLINE | (0x0A) |
| \r | RETURN | (0x0D) |
| \t | TAB | (0x09) |
\k の後に続く 1 文字または 2 文字は、これらのキーのいずれかを押したときに生成される文字を表します。
| \kb | BACKSPACE (BackSpaceキー。\b と異なる場合があります) |
| \kB | ctrl-BACKSPACE |
| \kd | DOWN ARROW |
| \kD | PAGE DOWN |
| \ke | END |
| \kE | ctrl-END |
| \kF | shift-END |
| \kh | HOME |
| \kH | ctrl-HOME |
| \kI | shift-HOME |
| \ki | INSERT |
| \kl | LEFT ARROW |
| \kL | ctrl-LEFT ARROW |
| \kM | shift-LEFT ARROW |
| \kr | RIGHT ARROW |
| \kR | ctrl-RIGHT ARROW |
| \kS | shift-RIGHT ARROW |
| \kt | BACKTAB |
| \ku | UP ARROW |
| \kU | PAGE UP |
| \kx | DELETE |
| \kX | ctrl-DELETE |
| \k1 | F1 |
| \kp1 | テンキーの左下のキー |
| \kp2 | テンキーの中央下のキー |
| \kp3 | テンキーの右下のキー |
| \kp4 | テンキーの中央の左キー |
| \kp5 | テンキーの中央のキー |
| \kp6 | テンキーの中央の右キー |
| \kp7 | テンキーの左上のキー |
| \kp8 | テンキーの上中央のキー |
| \kp9 | テンキーの右上のキー |
| \kp0 | テンキーパッドの 0 |
| \kp* | テンキーパッドの * |
| \kp/ | テンキーパッドの / |
| \kp- | テンキーパッドの - |
| \kp+ | テンキーの + |
| \kp. | テンキーの.(ピリオド) |
| \kp, | テンキーパッドの , |
バックスラッシュとそれに続くその他の文字は、その文字が文字通りに解釈されることを示します。バックスラッシュの前に置く必要がある文字には、キャレット、スペース、タブ、ハッシュマーク、およびバックスラッシュ自体が含まれます。
アクションの後に "追加の" 文字列が続く場合があります。less の実行中にこのようなコマンドが入力されると、アクションが実行され、less に入力されたかのように、余分な文字列が解析されます。この機能は、場合によってはコマンドの機能を拡張するために使用できます。たとえば、次の例の "{" および ":t" コマンドを参照してください。また、キーを押したときに複数のコマンドを実行することもできます。たとえば、この行が lesskey ファイルにある場合、"B" キーを押すと、最初に "b" マークが設定され、次に文字列 "next" が検索されます。
B set-mark b/next\n
この余分な文字列は、"終了" アクションに対して特別な意味を持ちます。less が終了すると、余分な文字列の最初の文字の ASCII 値が終了ステータスとして使用されます。
| #command | |
| \r | forw-line |
| \n | forw-line |
| e | forw-line |
| j | forw-line |
| \kd | forw-line |
| E | forw-line |
| N | forw-line |
| k | back-line |
| y | back-line |
| Y | back-line |
| K | back-line |
| P | back-line |
| \ku | back-line |
| J | forw-line-force |
| K | back-line-force |
| Y | back-line-force |
| d | forw-scroll |
| D | forw-scroll |
| u | back-scroll |
| U | back-scroll |
| \40 | forw-screen |
| f | forw-screen |
| F | forw-screen |
| V | forw-screen |
| \kD | forw-screen |
| b | back-screen |
| B | back-screen |
| \ev | back-screen |
| \kU | back-screen |
| z | forw-window |
| w | back-window |
| \e\40 | forw-screen-force |
| \eb | back-screen-force |
| \ej | forw-newline |
| \ek | back-newline |
| F | forw-forever |
| \eF | forw-until-hilite |
| \ef | forw-bell-hilite |
| R | repaint-flush |
| r | repaint |
| R | repaint |
| L | repaint |
| \eu | undo-hilite |
| \eU | clear-search |
| g | goto-line |
| \kh | goto-line |
| \kH | goto-line \e{ |
| \kI | goto-line \e{ |
| \ke | goto-end |
| \kE | goto-end \e} |
| \kF | goto-end \e} |
| < | goto-line |
| \e< | goto-line |
| p | percent |
| % | percent |
| \e( | left-scroll |
| \e) | right-scroll |
| \e{ | no-scroll |
| \e} | end-scroll |
| \kl | left-scroll |
| \kr | right-scroll |
| \kL | no-scroll |
| \kM | no-scroll |
| \kR | end-scroll |
| \kS | end-scroll |
| { | forw-bracket {} |
| } | back-bracket {} |
| ( | forw-bracket () |
| ) | back-bracket () |
| [ | forw-bracket [] |
| ] | back-bracket [] |
| \eF | forw-bracket |
| \eB | back-bracket |
| G | goto-end |
| \e> | goto-end |
| > | goto-end |
| P | goto-pos |
| \eG | goto-end-buffered |
| = | status |
| G | status |
| :f | status |
| / | forw-search |
| ? | back-search |
| \e/ | forw-search * |
| \e? | back-search * |
| n | repeat-search |
| \en | repeat-search-all |
| N | reverse-search |
| \eN | reverse-search-all |
| & | filter |
| m | set-mark |
| M | set-mark-bottom |
| \em | clear-mark |
| goto-mark | |
| XX | goto-mark |
| E | examine |
| :e | examine |
| XV | examine |
| :n | next-file |
| :p | prev-file |
| ON | osc8-forw-search |
| On | osc8-forw-search |
| OP | osc8-back-search |
| Op | osc8-back-search |
| OO | osc8-open |
| Oo | osc8-open |
| OL | osc8-jump |
| Ol | osc8-jump |
| t | next-tag |
| T | prev-tag |
| :x | index-file |
| :d | remove-file |
| - | toggle-option |
| :t | toggle-option t |
| s | toggle-option o |
| ## Use a long option name by starting the | |
| ## extra string with ONE dash; eg: | |
| ## s toggle-option -log-file\n | |
| _ | display-option |
| | | pipe |
| v | visual |
| ! | shell |
| # | pshell |
| + | firstcmd |
| \e[M | mouse |
| \e[< | mouse6 |
| \kp1 | goto-end |
| \kp2 | forw-line |
| \kp3 | forw-screen |
| \kp4 | left-scroll |
| \kp6 | right-scroll |
| \kp7 | goto-line |
| \kp8 | back-line |
| \kp9 | back-screen |
| \kp0 | noaction 0 |
| \kp* | noaction * |
| \kp/ | noaction / |
| \kp- | noaction - |
| \kp+ | noaction + |
| \kp. | noaction . |
| \kp, | noaction , |
| H | help |
| h | help |
| \k1 | help |
| V | version |
| 0 | digit |
| 1 | digit |
| 2 | digit |
| 3 | digit |
| 4 | digit |
| 5 | digit |
| 6 | digit |
| 7 | digit |
| 8 | digit |
| 9 | digit |
| q | quit |
| Q | quit |
| :q | quit |
| :Q | quit |
| ZZ | quit |
#stop
これにより、すべての既定値コマンドが無視されます。#stop 行は、ファイルのそのセクションの最後の行である必要があります。
#stop は危険であることに注意してください。すべての既定値コマンドが無効になっているため、必要なすべてのアクションを有効にするには、#stop 行の前に十分なコマンドを指定する必要があります。例えば、"終了"コマンドを提供しないことは、フラストレーションにつながる可能性があります。
#line-edit
このセクションでは、通常のコマンドのキー割り当てを #command セクションで指定するのと同様の方法で、行編集コマンドの新しいキー割り当てを指定します。行編集セクションは、次の例に示すように、1 行に 1 つずつのキーとアクションのリストで構成されます。
| #line-edit | |
| \t | forw-complete |
| \17 | back-complete |
| \ekt | back-complete |
| \e\t | back-complete |
| ^L | expand |
| ^V | literal |
| ^A | literal |
| \el | right |
| \kr | right |
| \eh | left |
| \kl | left |
| \eb | word-left |
| \e\kl | word-left |
| \e\kL | word-left |
| \ew | word-right |
| \e\kr | word-right |
| \e\kR | word-right |
| \ei | insert |
| \ki | insert |
| \ex | delete |
| \kx | delete |
| \eX | word-delete |
| \ekx | word-delete |
| \kX | word-delete |
| \e\b | word-backspace |
| \kB | word-backspace |
| \e0 | home |
| \kh | home |
| \e$ | end |
| \ke | end |
| \ek | up |
| \ku | up |
| \ej | down |
| \kd | down |
| ^G | abort |
| \kp1 | end |
| \kp2 | down |
| \kp4 | left |
| \kp6 | right |
| \kp7 | home |
| \kp8 | up |
| \kp0 | noaction 0 |
| \kp* | noaction * |
| \kp/ | noaction / |
| \kp- | noaction - |
| \kp+ | noaction + |
| \kp. | noaction . |
| \kp, | noaction , |
| \e[M | mouse |
| \e[< | mouse6 |
#env
この行の後に環境変数の割り当てのリストが続きます。各行は、環境変数名、等号 (=)、および環境変数に割り当てる値で構成されます。等号の前後の空白は無視されます。この方法で割り当てられた変数は、less のみで見えます。システム環境と lesskey ファイルの両方で変数が指定されている場合は、lesskey ファイルの値が優先されます。
変数名の後に = ではなく += が付いている場合、文字列は変数の既存の値に追加されます。これは現在、+= 行が同じ変数の元の定義 (= 行)の直後にあり、他の変数の定義が介在していない場合にのみ機能します。ファイル内で以前に定義された変数にのみ追加できます。システム環境内の変数には追加できません。文字列は文字どおりに追加され、余分な空白は追加されません。したがって、空白が必要な場合は、前の行の末尾に追加する必要があります。(上記のように、等号の後のスペースは無視されるため、+= 文字列の先頭に追加することはできません。)
等号の後の文字列では、${NAME} という形式の部分文字列が環境変数 "NAME" の値に置き換えられます。変数の値は、システム環境、以前の lesskey ファイル、または現在の lesskey ファイル内の以前の定義のいずれかから取得できます。単純なテキスト置換は、構文 ${NAME/STRING/REPL} を使用して実行できます。これにより、指定した環境変数内のすべての "STRING" がテキスト "REPL" に置換されます。STRING は、単純なテキスト比較を使用して照合されます。メタ文字はサポートされていません。STRING また はREPL のスラッシュまたは右中括弧のインスタンスは、その前にtwo バックスラッシュを付けてエスケープする必要があります。REPL が空の文字列の場合、STRING のすべてのインスタンスが削除されます。右中括弧の直前のスラッシュは省略してもかまいません。複数の置換は、構文 ${NAME/STRING1/REPL1/STRING2/REPL2} などを使用して実行できます。
たとえば、'sideways-search' という名前の新しいコマンドが less バージョン 777 に追加されたとします。次に、次の行はコマンドを Q キーに割り当てますが、これはless のバージョンがその時のみサポートします。777 より前のバージョンでは、この行は無視されます。
#version >= 777 Q sideways-search
次の 6 つの演算子がサポートされています。
| > | より大きい |
| < | より小さい |
| >= | 以上 |
| <= | 以下 |
| = | 同じ |
| != | 等しくない |
バージョン機能は、less およびバージョン 594 より前のlesskey ではサポートされていません。これらの古いバージョンでは、#version 行はすべて無視されます。
#env
## (Note that there must be a space at the end of the next line,
## to separate the --color option from the -S option.)
LESS = -i -S #version >= 595 LESS += --color=Hkc
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.