Scroll to navigation

LESSKEY(1) General Commands Manual LESSKEY(1)

名前

lesskey - less のキー割り当てを指定します

書式(廃止予定)

lesskey [-o output] -- input
lesskey [--output=output] -- input

lesskey -V
lesskey --version

スコープ

このドキュメントでは、 less バージョン 582 以降で使用される lesskey ソースファイルの形式について説明します。less の以前のバージョンでは、lesskey ソースファイルを less が理解できる形式にコンパイルするために、lesskey と呼ばれる別のプログラムが使用されていました。このコンパイル手順は不要になったため、lesskeyプログラムは廃止されましたが、ファイル形式は less 自体によってサポートされたままです。

説明

lesskey ファイルは、less の後続の呼び出しで使用されるキー・バインディングと環境変数のセットを指定します。

ファイル形式

入力ファイルには、1 つ以上の sections が含まれています。各セクションは、セクションのタイプを識別する行で始まります。指定できるセクションは次のとおりです:

#command
コマンドキーの組み合わせをカスタマイズします。
#line-edit
行編集キーの割り当てをカスタマイズします。
#env
環境変数を定義します。

空白行は無視されます。行内でエスケープされていないハッシュマーク (#) の後に続くテキストは、以下に示す場合を除き、無視されます。

コマンドセクション

コマンドセクションは、次の行で始まります。

#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 値が終了ステータスとして使用されます。

次の入力ファイルには、less が使用する既定値コマンドキーのセットが記述されています。各コマンドのドキュメントは、less マニュアルページの、コマンドを実行するキーシーケンスの下にあります。

#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

優先順位

lesskey によって指定されたコマンドは、既定値コマンドよりも優先されます。既定のコマンドキーは、アクション "invalid" を使用して入力ファイルに含めることで無効にできます。あるいは、アクション "noaction" を使用して、キーが何もしないように定義することもできます。"noaction" は "invalid" と似ていますが、less は "invalid" コマンドに対してエラービープ音を出しますが、"noaction" コマンドに対してはエラービープ音を出しません。さらに、以下の制御行を追加することで、すべての既定値コマンドを無効にすることができます。

#stop

これにより、すべての既定値コマンドが無視されます。#stop 行は、ファイルのそのセクションの最後の行である必要があります。

#stop は危険であることに注意してください。すべての既定値コマンドが無効になっているため、必要なすべてのアクションを有効にするには、#stop 行の前に十分なコマンドを指定する必要があります。例えば、"終了"コマンドを提供しないことは、フラストレーションにつながる可能性があります。

行編集セクション

行編集セクションは、次の行で始まります。

#line-edit

このセクションでは、通常のコマンドのキー割り当てを #command セクションで指定するのと同様の方法で、行編集コマンドの新しいキー割り当てを指定します。行編集セクションは、次の例に示すように、1 行に 1 つずつのキーとアクションのリストで構成されます。

次の入力ファイルは、less が使用する既定値の行編集キーのセットを記述しています:

#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

LESS 環境変数

環境変数セクションは、次の行で始まります。

#env

この行の後に環境変数の割り当てのリストが続きます。各行は、環境変数名、等号 (=)、および環境変数に割り当てる値で構成されます。等号の前後の空白は無視されます。この方法で割り当てられた変数は、less のみで見えます。システム環境と lesskey ファイルの両方で変数が指定されている場合は、lesskey ファイルの値が優先されます。

変数名の後に = ではなく += が付いている場合、文字列は変数の既存の値に追加されます。これは現在、+= 行が同じ変数の元の定義 (= 行)の直後にあり、他の変数の定義が介在していない場合にのみ機能します。ファイル内で以前に定義された変数にのみ追加できます。システム環境内の変数には追加できません。文字列は文字どおりに追加され、余分な空白は追加されません。したがって、空白が必要な場合は、前の行の末尾に追加する必要があります。(上記のように、等号の後のスペースは無視されるため、+= 文字列の先頭に追加することはできません。)

等号の後の文字列では、${NAME} という形式の部分文字列が環境変数 "NAME" の値に置き換えられます。変数の値は、システム環境、以前の lesskey ファイル、または現在の lesskey ファイル内の以前の定義のいずれかから取得できます。単純なテキスト置換は、構文 ${NAME/STRING/REPL} を使用して実行できます。これにより、指定した環境変数内のすべての "STRING" がテキスト "REPL" に置換されます。STRING は、単純なテキスト比較を使用して照合されます。メタ文字はサポートされていません。STRING また はREPL のスラッシュまたは右中括弧のインスタンスは、その前にtwo バックスラッシュを付けてエスケープする必要があります。REPL が空の文字列の場合、STRING のすべてのインスタンスが削除されます。右中括弧の直前のスラッシュは省略してもかまいません。複数の置換は、構文 ${NAME/STRING1/REPL1/STRING2/REPL2} などを使用して実行できます。

条件付き設定

行が #version で始まり、その後に関係演算子とバージョン番号が続く場合、less または lesskey の実行バージョンが演算子と一致する場合に限り、行の残りが解析されます。これは、lesskey ファイルがless の異なるバージョンで使用されている場合に便利です。

たとえば、'sideways-search' という名前の新しいコマンドが less バージョン 777 に追加されたとします。次に、次の行はコマンドを Q キーに割り当てますが、これはless のバージョンがその時のみサポートします。777 より前のバージョンでは、この行は無視されます。


#version >= 777 Q sideways-search

次の 6 つの演算子がサポートされています。

> より大きい
< より小さい
>= 以上
<= 以下
= 同じ
!= 等しくない

バージョン機能は、less およびバージョン 594 より前のlesskey ではサポートされていません。これらの古いバージョンでは、#version 行はすべて無視されます。

次の入力ファイルは、less を実行し、バージョン 595 以降で --color オプションを追加した場合に、-i オプションと -S オプションを設定します。


#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(1)

警告:

MS-DOS および OS/2 システムでは、特定のキーが NUL文字 (0) で始まる一連の文字を送信します。このNUL文字は、lesskey ファイルでは \340 として表現されるべきです。

著作権

Copyright (C) 1984-2026 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
バグレポートは https://github.com/gwsw/less/issues までお寄せください。

29 Jan 2026 less 692