lesskey(1) - Linux man page

名称

lesskey - 指定 less 的键绑定

概要

lesskey [-o 输出文件] [--] [输入文件]
lesskey [--output=输出文件] [--] [输入文件]
lesskey -V
lesskey --version

描述

Lesskey 用于指定 less 使用的一组键绑定。输入文件是一个描述键绑定的文本文件。如果输入文件是“-”,则读取标准输入。如果没有指定输入文件,则使用一个标准文件名作为输入文件的名称,具体取决于使用的系统:在 Unix 系统上,使用 $HOME/.lesskey;在 MS-DOS 系统上,使用 $HOME/_lesskey;在 OS/2 系统上,使用 $HOME/lesskey.ini 或 $INIT/lesskey.ini(如果 $HOME 未定义)。输出文件是 less 使用的二进制文件。如果没有指定输出文件,并且设置了环境变量 LESSKEY,则 LESSKEY 的值用作输出文件的名称。否则,使用一个标准文件名作为输出文件的名称,具体取决于使用的系统:在 Unix 和 OS-9 系统上,使用 $HOME/.less;在 MS-DOS 系统上,使用 $HOME/_less;在 OS/2 系统上,使用 $HOME/less.ini 或 $INIT/less.ini(如果 $HOME 未定义)。如果输出文件已经存在,lesskey 将覆盖它。

使用 -V 或 --version 选项会导致 lesskey 打印其版本号并立即退出。如果存在 -V 或 --version,则忽略其他选项和参数。

输入文件由一个或多个 部分 组成。每个部分以标识部分类型的行开头。可能的部分有

#command
定义新的命令键。
#line-edit
定义新的行编辑键。
#env
定义环境变量。

空行和以井号 (#) 开头的行将被忽略,除了特殊的章节标题行。

命令部分

命令部分以以下行开头

#command

如果命令部分是文件中的第一个部分,则可以省略此行。命令部分由以下形式的行组成

字符串 <空白> 动作 [额外字符串] <换行符>

空白是空格和/或制表符的一个或多个序列。字符串 是调用该动作的命令 (们)。字符串 可以是单个命令键,也可以是最多 15 个键的序列。动作 是 less 动作的名称,来自下面的列表。字符串 中的字符可以按字面意思出现,也可以用插入号 (^) 前缀来表示控制键。反斜杠后跟一个到三个八进制数字可用于通过其八进制值指定字符。反斜杠后跟某些字符指定输入字符如下

\b
BACKSPACE
\e
ESCAPE
\n
NEWLINE
\r
RETURN
\t
TAB
\ku
UP ARROW
\kd
DOWN ARROW
\kr
RIGHT ARROW
\kl
LEFT ARROW
\kU
PAGE UP
\kD
PAGE DOWN
\kh
HOME
\ke
END
\kx
DELETE

反斜杠后跟任何其他字符表示该字符应按字面意思获取。必须由反斜杠前缀的字符包括插入号、空格、制表符和反斜杠本身。

动作后可以跟一个“额外”字符串。当输入此类命令时运行 less 时,将执行该动作,然后解析额外的字符串,就像将其输入到 less 中一样。此功能在某些情况下可用于扩展命令的功能。例如,请参阅下面的“{”和“:t”命令。

示例

以下输入文件描述了 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
    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
    F        forw-forever
    R        repaint-flush
    r        repaint
    ^R        repaint
    ^L        repaint
    \eu        undo-hilite
    g        goto-line
    \kh    goto-line
    <        goto-line
    \e<        goto-line
    p        percent
    %        percent
    \e[        left-scroll
    \e]        right-scroll
    \e(        left-scroll
    \e)        right-scroll
    {        forw-bracket {}
    }        back-bracket {}
    (        forw-bracket ()
    )        back-bracket ()
    [        forw-bracket []
    ]        back-bracket []
    \e^F        forw-bracket
    \e^B        back-bracket
    G        goto-end
    \e>        goto-end
    >        goto-end
    \ke    goto-end
    =        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
    '        goto-mark
    ^X^X        goto-mark
    E        examine
    :e        examine
    ^X^V        examine
    :n        next-file
    :p        prev-file
    t        next-tag
    T        prev-tag
    :x        index-file
    :d        remove-file
    -        toggle-option
    :t        toggle-option t
    s        toggle-option o
    _        display-option
    |        pipe
    v        visual
    !        shell
    +        firstcmd
    H        help
    h        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 行之前提供足够的命令才能启用所有必要的动作。例如,未能提供“quit”命令可能会导致沮丧。

行编辑部分

行编辑部分以以下行开头

#line-edit

本节指定了行编辑命令的新键绑定,其方式与在 #command 部分中指定普通命令的键绑定方式类似。行编辑部分由一个键和动作列表组成,每行一个,如下例所示。

示例

以下输入文件描述了 less 使用的默认行编辑键集
    #line-edit
    \t        forw-complete
    \17        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
    \ew        word-right
    \e\kr    word-right
    \ei        insert
    \ex        delete
    \kx        delete
    \eX        word-delete
    \ekx        word-delete
    \e\b        word-backspace
    \e0        home
    \kh        home
    \e$        end
    \ke        end
    \ek        up
    \ku        up
    \ej        down

Less 环境变量

环境变量部分以以下行开头

#env

该行后面是环境变量分配列表。每行由环境变量名称、等号 (=) 和要分配给环境变量的值组成。等号前后空格将被忽略。以这种方式分配的变量仅对 less 可见。如果在系统环境中和 lesskey 文件中指定了变量,则 lesskey 文件中的值优先。虽然 lesskey 文件可用于覆盖环境变量中设置的变量,但将变量分配到 lesskey 文件的主要目的是将所有 less 配置信息存储在一个文件中。

示例

以下输入文件在每次运行 less 时设置 -i 选项,并指定字符集为“latin1”
    #env
    LESS = -i
    LESSCHARSET = latin1

参见

less(1)

警告

不可能以键盘无关的方式指定特殊键,例如上箭头。指定此类键的唯一方法是指定特定键盘在按下此类键时发送的转义序列。

在 MS-DOS 和 OS/2 系统上,某些键会发送以 NUL 字符 (0) 开头的字符序列。此 NUL 字符应在 lesskey 文件中表示为 \340。

版权

版权所有 © 2000-2009 Mark Nudelman

lesskey 是 GNU 项目的一部分,是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证重新分发和/或修改它;版本 2 或(根据您的选择)任何更高版本。

lesskey 的分发希望它对您有用,但没有任何保证;甚至没有适销性和特定用途适用性的暗示保证。有关更多详细信息,请参阅 GNU 通用公共许可证。

您应该已经收到 GNU 通用公共许可证的副本以及 lesskey;请参阅文件 COPYING。如果不是,请写信给自由软件基金会,地址为:59 Temple Place, Suite 330, Boston, MA 02111-1307, USA。

作者

Mark Nudelman <markn@greenwoodsoftware.com>
将错误报告或评论发送到上述地址或 bug-less@gnu.org