less(1) - Linux 手册页

名称

less - more 的反义词

概要

less -?
less --help
less -V
less --version
less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
[-b 空格] [-h 行数] [-j 行号] [-k 密钥文件]
[-{oO} 日志文件] [-p 模式] [-P 提示符] [-t 标签]
[-T 标签文件] [-x 制表符,...] [-y 行数] [-[z] 行数]
[-# 位移] [+[+]命令] [--] [文件名]...
(有关长选项名称的备选语法,请参阅“选项”部分。)

描述

Less 是一个类似于 more (1) 的程序,但它允许在文件中进行向前和向后移动。此外,less 在启动前不必读取整个输入文件,因此对于大型输入文件,它的启动速度比 vi (1) 等文本编辑器更快。Less 使用 termcap(在某些系统上使用 terminfo),因此它可以在多种终端上运行。它甚至对硬拷贝终端也有有限的支持。(在硬拷贝终端上,应打印在屏幕顶部的行前会加上一个插入符号。)

命令基于 morevi。 命令前面可以加上一个十进制数字,在下文中称为 N。如所述,该数字被某些命令使用。

命令

在以下描述中,^X 表示 control-X。ESC 代表 ESCAPE 键;例如,ESC-v 表示“ESCAPE”和“v”这两个字符序列。
h 或 H
帮助:显示这些命令的摘要。如果您忘记了所有其他命令,请记住这条。
SPACE 或 ^V 或 f 或 ^F
向前滚动 N 行,默认值为一屏(参见下文 -z 选项)。如果 N 大于屏幕尺寸,则仅显示最后一屏。警告:某些系统将 ^V 用作特殊的字面量字符。
z
类似于 SPACE,但如果指定了 N,它将成为新的窗口大小。
ESC-SPACE
类似于 SPACE,但滚动整整一屏,即使在此过程中到达了文件末尾。
RETURN 或 ^N 或 e 或 ^E 或 j 或 ^J
向前滚动 N 行,默认值为 1。即使 N 大于屏幕尺寸,也会显示全部 N 行。
d 或 ^D
向前滚动 N 行,默认值为半屏。如果指定了 N,它将成为后续 d 和 u 命令的默认值。
b 或 ^B 或 ESC-v
向后滚动 N 行,默认值为一屏(参见下文 -z 选项)。如果 N 大于屏幕尺寸,则仅显示最后一屏。
w
类似于 ESC-v,但如果指定了 N,它将成为新的窗口大小。
y 或 ^Y 或 ^P 或 k 或 ^K
向后滚动 N 行,默认值为 1。即使 N 大于屏幕尺寸,也会显示全部 N 行。警告:某些系统将 ^Y 用作特殊的作业控制字符。
u 或 ^U
向后滚动 N 行,默认值为半屏。如果指定了 N,它将成为后续 d 和 u 命令的默认值。
ESC-) 或 右箭头
水平向右滚动 N 个字符,默认值为半屏宽度(参见 -# 选项)。如果指定了数字 N,它将成为未来右箭头和左箭头命令的默认值。当文本滚动时,其效果如同启用了 -S 选项(截断行)。
ESC-( 或 左箭头
水平向左滚动 N 个字符,默认值为半屏宽度(参见 -# 选项)。如果指定了数字 N,它将成为未来右箭头和左箭头命令的默认值。
r 或 ^R 或 ^L
重绘屏幕。
R
重绘屏幕,丢弃所有已缓冲的输入。如果文件在查看过程中发生变化,此功能非常有用。
F
向前滚动,并在到达文件末尾时持续尝试读取。通常此命令在已经到达文件末尾时使用。它是监控文件在查看过程中增长(尾部)的一种方式。(其行为类似于“tail -f”命令。)
g 或 < 或 ESC-<
转到文件中的第 N 行,默认值为 1(文件开头)。(警告:如果 N 很大,此操作可能会很慢。)
G 或 > 或 ESC->
转到文件中的第 N 行,默认值为文件末尾。(警告:如果 N 很大,或者未指定 N 且正在读取标准输入而不是文件,此操作可能会很慢。)
p 或 %
转到文件位置的 N% 处。N 应介于 0 和 100 之间,并且可以包含小数点。
P
转到包含文件字节偏移量 N 的行。
{
如果屏幕显示的顶行中出现左花括号,{ 命令将跳转到匹配的右花括号。匹配的右花括号位于屏幕的底行。如果顶行有多个左花括号,可以使用数字 N 指定该行上的第 N 个括号。
}
如果屏幕显示的底行中出现右花括号,} 命令将跳转到匹配的左花括号。匹配的左花括号位于屏幕的顶行。如果底行有多个右花括号,可以使用数字 N 指定该行上的第 N 个括号。
(
类似于 {,但应用于圆括号而不是花括号。
)
类似于 },但应用于圆括号而不是花括号。
[
类似于 {,但应用于方括号而不是花括号。
]
类似于 },但应用于方括号而不是花括号。
ESC-^F
后跟两个字符,作用类似于 {,但将这两个字符分别作为开括号和闭括号使用。例如,“ESC ^F < >”可用于向前跳转到与显示顶行中的 < 相匹配的 >。
ESC-^B
后跟两个字符,作用类似于 },但将这两个字符分别作为开括号和闭括号使用。例如,“ESC ^B < >”可用于向后跳转到与显示底行中的 > 相匹配的 <。
m
后跟任何小写字母,用该字母标记当前位置。
'
(单引号。)后跟任何小写字母,返回到先前用该字母标记的位置。后跟另一个单引号,返回到执行上一个“大型”移动命令的位置。后跟 ^ 或 $,分别跳转到文件的开头或结尾。检查新文件时会保留标记,因此 ' 命令可用于在输入文件之间切换。
^X^X
与单引号相同。
/模式
在文件中向前搜索包含模式的第 N 行。N 默认为 1。模式是系统提供的正则表达式库所识别的正则表达式。搜索从显示的第二行开始(但参见 -a 和 -j 选项,它们会改变此行为)。

如果某些字符在模式开头输入,它们是特殊的;它们会修改搜索类型,而不是成为模式的一部分

^N 或 !
搜索与模式不匹配的行。
^E 或 *
搜索多个文件。也就是说,如果搜索到达当前文件的末尾而没有找到匹配项,搜索将继续在命令行列表中的下一个文件中进行。
^F 或 @
无论屏幕当前显示什么或 -a 或 -j 选项的设置如何,都从命令行列表中的第一个文件的第一行开始搜索。
^K
高亮显示当前屏幕上与模式匹配的任何文本,但不移动到第一个匹配项(保持当前位置)。
^R
不解释正则表达式元字符;也就是说,进行简单的文本比较。
?模式
在文件中向后搜索包含模式的第 N 行。搜索从显示顶行之前的一行开始。

某些字符与 / 命令一样是特殊的

^N 或 !
搜索与模式不匹配的行。
^E 或 *
搜索多个文件。也就是说,如果搜索到达当前文件的开头而没有找到匹配项,搜索将继续在命令行列表中的上一个文件中进行。
^F 或 @
无论屏幕当前显示什么或 -a 或 -j 选项的设置如何,都从命令行列表中的最后一个文件的最后一行开始搜索。
^K
与向前搜索一样。
^R
与向前搜索一样。
ESC-/模式
与 "/*" 相同。
ESC-?模式
与 "?*" 相同。
n
重复上一次搜索,查找包含上一个模式的第 N 行。如果上一次搜索被 ^N 修改,则搜索不包含该模式的第 N 行。如果上一次搜索被 ^E 修改,则如果当前文件中未满足搜索条件,搜索将继续在下一个(或上一个)文件中进行。如果上一次搜索被 ^R 修改,则不使用正则表达式进行搜索。如果上一次搜索被 ^F 或 ^K 修改,则无效。
N
重复上一次搜索,但方向相反。
ESC-n
重复上一次搜索,但跨越文件边界。其效果就像上一次搜索被 * 修改过一样。
ESC-N
重复上一次搜索,但方向相反并跨越文件边界。
ESC-u
撤消搜索高亮显示。关闭与当前搜索模式匹配的字符串的高亮显示。如果由于先前的 ESC-u 命令已关闭高亮显示,则将其重新打开。任何搜索命令也会重新打开高亮显示。(高亮显示也可以通过切换 -G 选项来禁用;在这种情况下,搜索命令不会重新打开高亮显示。)
&模式
仅显示与模式匹配的行;不显示与模式不匹配的行。如果模式为空(如果您输入 & 后紧跟 ENTER),则关闭所有过滤,并显示所有行。过滤生效时,提示符开头会显示一个“&”,提醒您文件中可能隐藏了某些行。

某些字符与 / 命令一样是特殊的

^N 或 !
仅显示与模式不匹配的行。
^R
不解释正则表达式元字符;也就是说,进行简单的文本比较。
:e [文件名]
检查新文件。如果缺少文件名,则从命令行文件列表中重新检查“当前”文件(参见下面的 :n 和 :p 命令)。文件名中的百分号 (%) 将被当前文件的名称替换。井号 (#) 将被先前检查过的文件的名称替换。但是,两个连续的百分号只会替换为一个百分号。这允许您输入名称中包含百分号的文件名。同样,两个连续的井号替换为一个井号。文件名被插入到命令行文件列表中,以便后续的 :n 和 :p 命令可以看到它。如果文件名包含多个文件,它们都将被插入到文件列表中,并检查第一个文件。如果文件名包含一个或多个空格,则整个文件名应括在双引号中(另请参见 -" 选项)。
^X^V 或 E
与 :e 相同。警告:某些系统将 ^V 用作特殊的字面量字符。在此类系统上,您可能无法使用 ^V。
:n
检查下一个文件(来自命令行中给出的文件列表)。如果指定了数字 N,则检查第 N 个下一个文件。
:p
检查命令行列表中的上一个文件。如果指定了数字 N,则检查第 N 个上一个文件。
:x
检查命令行列表中的第一个文件。如果指定了数字 N,则检查列表中的第 N 个文件。
:d
从文件列表中删除当前文件。
t
转到下一个标签(如果当前标签有多个匹配项)。有关标签的更多详细信息,请参阅 -t 选项。
T
转到上一个标签(如果当前标签有多个匹配项)。
= 或 ^G 或 :f
打印有关正在查看的文件的一些信息,包括文件名、显示底行的行号和字节偏移量。如果可能,它还会打印文件长度、文件中的行数以及已显示最后一行的文件百分比。
-
后跟命令行选项字母之一(参见下面的“选项”),这将更改该选项的设置并打印一条描述新设置的消息。如果在短划线后立即输入 ^P (CONTROL-P),则选项设置会更改,但不会打印任何消息。如果选项字母具有数值(例如 -b 或 -h)或字符串值(例如 -P 或 -t),则可以在选项字母后输入新值。如果未输入新值,则打印描述当前设置的消息,且不更改任何内容。
--
类似于 - 命令,但采用长选项名称(参见下面的“选项”)而不是单个选项字母。输入选项名称后,必须按 RETURN。第二个短划线后的 ^P 会抑制打印描述新设置的消息,如同 - 命令一样。
-+
后跟命令行选项字母之一,这将重置该选项为其默认设置并打印描述新设置的消息。("-+X" 命令执行与命令行上的 "-+X" 相同的功能。)这对于字符串值的选项无效。
--+
类似于 -+ 命令,但采用长选项名称而不是单个选项字母。
-!
后跟命令行选项字母之一,这将把选项重置为其默认设置的“反面”并打印描述新设置的消息。这对于数值或字符串值的选项无效。
--!
类似于 -! 命令,但采用长选项名称而不是单个选项字母。
_
(下划线。)后跟命令行选项字母之一,这将打印一条描述该选项当前设置的消息。选项的设置不会更改。
__
(双下划线。)类似于 _(下划线)命令,但采用长选项名称而不是单个选项字母。输入选项名称后,必须按 RETURN。
+命令
导致每次检查新文件时都执行指定的命令。例如,+G 会导致 less 最初从文件末尾而不是开头显示每个文件。
V
打印正在运行的 less 的版本号。
q 或 Q 或 :q 或 :Q 或 ZZ
退出 less。

以下四个命令可能有效,也可能无效,具体取决于您的特定安装。

v
调用编辑器来编辑当前正在查看的文件。编辑器取自环境变量 VISUAL(如果已定义),或 EDITOR(如果未定义 VISUAL),如果 VISUAL 和 EDITOR 均未定义,则默认为 “vi”。另请参见下面“提示符”部分关于 LESSEDIT 的讨论。
! shell-命令
调用 shell 运行给定的 shell 命令。命令中的百分号 (%) 将被当前文件的名称替换。井号 (#) 将被先前检查过的文件的名称替换。“!!”重复上一个 shell 命令。“!”后跟无 shell 命令则仅调用 shell。在 Unix 系统上,shell 取自环境变量 SHELL,或默认为 “sh”。在 MS-DOS 和 OS/2 系统上,shell 是常规的命令处理器。
| <m> shell-命令
<m> 表示任何标记字母。将输入文件的一部分通过管道传输到给定的 shell 命令。要传输的文件部分位于当前屏幕的第一行和字母标记的位置之间。<m> 也可以是 ^ 或 $,分别表示文件的开头或结尾。如果 <m> 是 . 或换行符,则传输当前屏幕的内容。
s 文件名
将输入保存到文件。这仅在输入是管道而不是普通文件时有效。

选项

命令行选项描述如下。大多数选项可以通过 “-” 命令在 less 运行时更改。

大多数选项可以以两种形式之一给出:短划线后跟单个字母,或两个短划线后跟长选项名称。只要缩写明确,长选项名称可以缩写。例如,--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:

setenv LESS "-options"

或者如果您使用 sh:

LESS="-options"; export LESS

在 MS-DOS 上,您不需要引号,但应将选项字符串中的任何百分号替换为双百分号。

环境变量在命令行之前解析,因此命令行选项会覆盖 LESS 环境变量。如果选项出现在 LESS 变量中,可以通过以 “-+” 开头在命令行上将其重置为默认值。

对于像 -P 或 -D 这样带有后续字符串的选项,必须使用美元符号 ($) 来标志字符串的结尾。例如,要在 MS-DOS 上设置两个 -D 选项,您必须在它们之间加一个美元符号,如下所示

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

-? 或 --help
此选项显示 less 接受的命令摘要(与 h 命令相同)。(取决于您的 shell 如何解释问号,可能需要引用问号,如下所示:“-\?”。)
-a 或 --search-skip-screen
导致搜索从屏幕上显示的最后一行之后开始,从而跳过屏幕上显示的所有行。默认情况下,搜索从屏幕上的第二行开始(或在最后找到的行之后;参见 -j 选项)。
-bn 或 --buffers=n
指定 less 为每个文件使用的缓冲区空间量,单位为千字节 (1024 字节)。默认情况下,每个文件使用 64K 缓冲区空间(除非文件是管道;参见 -B 选项)。-b 选项指定每个文件应使用 n 千字节的缓冲区空间。如果 n 为 -1,则缓冲区空间不受限制;也就是说,整个文件都可以读入内存。
-B 或 --auto-buffers
默认情况下,当从管道读取数据时,会根据需要自动分配缓冲区。如果从管道读取大量数据,这可能会导致分配大量内存。-B 选项禁止这种管道缓冲区的自动分配,因此管道仅使用 64K(或 -b 选项指定的空间量)。警告:使用 -B 可能会导致显示错误,因为只有管道数据的最近查看部分保留在内存中;任何早期数据都会丢失。
-c 或 --clear-screen
导致全屏重绘从顶行向下绘制。默认情况下,全屏重绘是通过从屏幕底部滚动来完成的。
-C 或 --CLEAR-SCREEN
与 -c 相同,为了与旧版本的 less 兼容。
-d 或 --dumb
-d 选项抑制了如果终端是“哑终端”(即缺少某些重要功能,例如清除屏幕或向后滚动的能力)时通常显示的错误消息。-d 选项不会以其他方式改变 less 在哑终端上的行为。
-Dxcolor 或 --color=xcolor
[仅限 MS-DOS] 设置显示文本的颜色。x 是单个字符,用于选择要设置颜色的文本类型:n=正常,s=突出,d=粗体,u=下划线,k=闪烁。color 是用句点分隔的一对数字。第一个数字选择前景色,第二个选择文本的背景色。单个数字 N 等同于 N.M,其中 M 是正常背景颜色。
-e 或 --quit-at-eof
导致 less 在第二次到达文件末尾时自动退出。默认情况下,退出 less 的唯一方法是通过 “q” 命令。
-E 或 --QUIT-AT-EOF
导致 less 在第一次到达文件末尾时自动退出。
-f 或 --force
强制打开非普通文件。(非普通文件是指目录或设备特殊文件。)还抑制了打开二进制文件时的警告消息。默认情况下,less 将拒绝打开非普通文件。请注意,即使设置了 -f,某些操作系统也不允许读取目录。
-F 或 --quit-if-one-screen
导致 less 如果整个文件可以在第一屏上显示,则自动退出。
-g 或 --hilite-search
通常,less 会高亮显示与最后搜索命令匹配的所有字符串。-g 选项将此行为更改为仅高亮显示最后搜索命令找到的特定字符串。这可以使 less 的运行速度比默认情况快一些。
-G 或 --HILITE-SEARCH
-G 选项抑制所有由搜索命令找到的字符串的高亮显示。
--old-bot
恢复到旧的屏幕底部行为。如果长行在滚动向前到达终端底部时没有正确换行,这有时是可取的。
-hn 或 --max-back-scroll=n
指定向后滚动的最大行数。如果需要向后滚动超过 n 行,则屏幕会以向前方向重绘。(如果终端没有向后滚动的功能,则隐含 -h0。)
-i 或 --ignore-case
导致搜索忽略大小写;也就是说,大写和小写被视为相同。如果搜索模式中出现任何大写字母,则此选项将被忽略;换句话说,如果模式包含大写字母,则该搜索不忽略大小写。
-I 或 --IGNORE-CASE
与 -i 相同,但即使模式包含大写字母,搜索也会忽略大小写。
-jn 或 --jump-target=n
指定屏幕上要定位“目标”行的行号。目标行是任何用于搜索模式、跳转到行号、跳转到文件百分比或跳转到标签的命令所指定的行。屏幕行可以通过数字指定:屏幕顶行为 1,下一行为 2,依此类推。数字可以是负数,以指定相对于屏幕底部的行:屏幕底行为 -1,倒数第二行为 -2,依此类推。或者,屏幕行可以指定为屏幕高度的分数,以小数点开头:.5 是屏幕中间,.3 是从第一行向下三十分之三,依此类推。如果行指定为分数,则如果终端窗口调整大小,实际行号会重新计算,以便目标行保持在屏幕高度的指定分数处。如果使用任何形式的 -j 选项,向前搜索从目标行之后的一行开始,向后搜索从目标行开始。例如,如果使用 “-j4”,目标行是屏幕上的第四行,因此向前搜索从屏幕上的第五行开始。
-J 或 --status-column
在屏幕左边缘显示状态列。状态列显示与当前搜索匹配的行。如果启用了 -w 或 -W 选项,也会使用状态列。
-kfilename 或 --lesskey-file=filename
导致 less 打开并解释指定的文件作为 lesskey (1) 文件。可以指定多个 -k 选项。如果设置了 LESSKEY 或 LESSKEY_SYSTEM 环境变量,或者在标准位置(参见“键绑定”)找到了 lesskey 文件,它也会被用作 lesskey 文件。
-K 或 --quit-on-intr
导致 less 在输入中断字符(通常为 ^C)时立即退出。通常,中断字符会导致 less 停止其正在执行的任何操作并返回到命令提示符。请注意,使用此选项使得无法从 “F” 命令返回到命令提示符。
-L 或 --no-lessopen
忽略 LESSOPEN 环境变量(参见下文“输入预处理器”部分)。此选项可以在 less 内部设置,但它仅适用于随后打开的文件,而不适用于当前打开的文件。
-m 或 --long-prompt
导致 less 冗长地提示(类似于 more),并显示文件内的百分比。默认情况下,less 使用冒号提示。
-M 或 --LONG-PROMPT
导致 less 的提示比 more 更冗长。
-n 或 --line-numbers
抑制行号。默认值(使用行号)可能导致 less 在某些情况下运行更慢,特别是对于非常大的输入文件。使用 -n 选项抑制行号将避免此问题。使用行号意味着:行号将显示在详细提示和 = 命令中,并且 v 命令会将当前行号传递给编辑器(另请参见下面关于提示符中 LESSEDIT 的讨论)。
-N 或 --LINE-NUMBERS
导致在显示器的每一行开头显示行号。
-ofilename 或 --log-file=filename
导致 less 在查看时将其输入复制到指定文件。这仅适用于输入文件是管道而非普通文件的情况。如果文件已存在,less 将在覆盖之前请求确认。
-Ofilename 或 --LOG-FILE=filename
-O 选项类似于 -o,但它会覆盖现有文件而无需请求确认。

如果未指定日志文件,则可以在 less 内部使用 -o 和 -O 选项来指定日志文件。如果没有文件名,它们将简单地报告日志文件的名称。“s” 命令等效于在 less 内部指定 -o。

-ppattern 或 --pattern=pattern
命令行上的 -p 选项等效于指定 +/pattern;也就是说,它告诉 less 从文件中 pattern 的第一次出现处开始。
-Pprompt 或 --prompt=prompt
提供了一种根据您的偏好定制三种提示样式的方法。此选项通常会放在 LESS 环境变量中,而不是与每个 less 命令一起输入。此类选项必须是 LESS 变量中的最后一个选项,或者以美元符号结尾。-Ps 后跟字符串将默认(短)提示更改为该字符串。-Pm 更改中等 (-m) 提示。-PM 更改长 (-M) 提示。-Ph 更改帮助屏幕的提示。-P= 更改 = 命令打印的消息。-Pw 更改等待数据时打印的消息(在 F 命令中)。所有提示字符串都由一系列字母和特殊转义序列组成。有关更多详细信息,请参阅“提示符”部分。
-q 或 --quiet 或 --silent
导致适度“安静”的操作:如果尝试滚动超过文件末尾或在文件开头之前滚动,则不会响铃。如果终端有“视觉提示”,则改为使用它。在某些其他错误(例如输入无效字符)时会响起铃声。默认是在所有此类情况下响铃。
-Q 或 --QUIET 或 --SILENT
导致完全“安静”的操作:终端铃声从不响起。
-r 或 --raw-control-chars
导致显示“原始”控制字符。默认值是使用脱字号表示法显示控制字符;例如,control-A(八进制 001)显示为 “^A”。警告:使用 -r 选项时,less 无法跟踪屏幕的实际外观(因为这取决于屏幕对每种控制字符的响应方式)。因此,可能会导致各种显示问题,例如长行在错误位置被拆分。
-R 或 --RAW-CONTROL-CHARS
类似于 -r,但仅以“原始”形式输出 ANSI “颜色”转义序列。与 -r 不同,屏幕外观在大多数情况下都能正确维护。ANSI “颜色”转义序列的形式为

ESC [ ... m

其中 “...” 是零个或多个颜色规格字符。为了保持屏幕外观跟踪,假设 ANSI 颜色转义序列不会移动光标。您可以通过将环境变量 LESSANSIENDCHARS 设置为可以结束颜色转义序列的字符列表,让 less 认为除 “m” 以外的字符也可以结束 ANSI 颜色转义序列。您可以通过将环境变量 LESSANSIMIDCHARS 设置为可以出现的字符列表,让 less 认为除标准字符以外的字符也可以出现在 ESC 和 m 之间。

-s 或 --squeeze-blank-lines
导致连续的空行被压缩成单个空行。这在查看 nroff 输出时很有用。
-S 或 --chop-long-lines
导致长于屏幕宽度的行被截断而不是折叠。也就是说,不显示长行中不适合屏幕宽度的部分。默认值是折叠长行;也就是说,在下一行显示剩余部分。
-ttag 或 --tag=tag
-t 选项后面紧跟 TAG,将编辑包含该标签的文件。为了使其工作,必须有可用的标签信息;例如,当前目录中可能有一个名为 “tags” 的文件,该文件先前由 ctags (1) 或等效命令构建。如果设置了环境变量 LESSGLOBALTAGS,它被视为与 global (1) 兼容的命令的名称,并且执行该命令以查找标签。(参见 https://gnu.ac.cn/software/global/global.html)。-t 选项也可以从 less 内部指定(使用 - 命令),作为检查新文件的一种方式。命令 “:t” 等效于从 less 内部指定 -t。
-Ttagsfile 或 --tag-file=tagsfile
指定要使用而不是 “tags” 的标签文件。
-u 或 --underline-special
导致退格键和回车键被视为可打印字符;也就是说,当它们出现在输入中时,它们会被发送到终端。
-U 或 --UNDERLINE-SPECIAL
导致退格键、制表符和回车键被视为控制字符;也就是说,它们按照 -r 选项的规定进行处理。

默认情况下,如果未给出 -u 或 -U,则出现在下划线字符附近的退格键会被特殊处理:带下划线的文本使用终端的硬件下划线功能显示。此外,出现在两个相同字符之间的退格键会被特殊处理:重叠的文本使用终端的硬件粗体功能打印。其他退格键会连同前面的字符一起被删除。紧跟换行符的回车键会被删除。其他回车键按照 -r 选项的规定进行处理。如果未启用 -u 或 -U,则可以搜索重叠或加下划线的文本。

-V 或 --version
显示 less 的版本号。
-w 或 --hilite-unread
在整页向前移动后暂时高亮显示第一行“新”行。第一行“新”行是先前位于屏幕底部的行之后紧接着的行。还在 g 或 p 命令后高亮显示目标行。高亮显示在导致移动的下一个命令时被移除。除非启用了 -J 选项,否则整行都会被高亮显示,在这种情况下仅高亮显示状态列。
-W 或 --HILITE-UNREAD
类似于 -w,但在大于一行的任何向前移动命令后暂时高亮显示第一行新行。
-xn,... 或 --tabs=n,...
设置制表位。如果仅指定一个 n,则制表位设置在 n 的倍数处。如果指定了多个用逗号分隔的值,则制表位设置在这些位置,然后以与最后两个相同的间距继续。例如,-x9,17 将在位置 9、17、25、33 等处设置制表符。n 的默认值为 8。
-X 或 --no-init
禁用向终端发送 termcap 初始化和反初始化字符串。如果反初始化字符串执行不必要的操作(例如清除屏幕),这有时是可取的。
-yn 或 --max-forw-scroll=n
指定向前滚动的最大行数。如果需要向前滚动超过 n 行,则改为重绘屏幕。如果需要,可以使用 -c 或 -C 选项从屏幕顶部重绘。默认情况下,任何向前移动都会导致滚动。
-[z]n 或 --window=n
将默认滚动窗口大小更改为 n 行。默认值为一屏。z 和 w 命令也可以用于更改窗口大小。为了与某些版本的 more 兼容,可以省略 “z”。如果数字 n 为负数,则表示比当前屏幕尺寸少 n 行。例如,如果屏幕为 24 行,-z-4 将滚动窗口设置为 20 行。如果屏幕调整大小为 40 行,滚动窗口将自动更改为 36 行。
-dqcc 或 --quotes=cc
更改文件名引用字符。如果您尝试命名一个既包含空格又包含引号字符的文件,这可能是必要的。后跟单个字符,这会将引用字符更改为该字符。包含空格的文件名应由该字符而不是双引号括起来。后跟两个字符,将打开引号更改为第一个字符,将关闭引号更改为第二个字符。包含空格的文件名应以打开引号字符开头,并以关闭引号字符结尾。请注意,即使引用字符已更改,此选项仍为 -”(短划线后跟双引号)。
-~ 或 --tilde
通常文件末尾之后的行显示为单个波浪号 (~)。此选项导致文件末尾之后的行显示为空行。
-# 或 --shift
指定在右箭头和左箭头命令中水平滚动的默认位置数。如果指定的数字为零,则将默认位置数设置为屏幕宽度的一半。或者,数字可以指定为屏幕宽度的分数,以小数点开头:.5 是屏幕宽度的一半,.3 是屏幕宽度的三十分之三,依此类推。如果数字指定为分数,则如果终端窗口调整大小,则重新计算实际滚动位置数,以便实际滚动保持在屏幕宽度的指定分数处。
--no-keypad
禁用向终端发送小键盘初始化和反初始化字符串。如果小键盘字符串导致数字小键盘的行为不理想,这有时很有用。
--follow-name
通常,如果输入文件在 F 命令执行期间被重命名,less 将继续显示原始文件的内容,尽管其名称已更改。如果指定了 --follow-name,在 F 命令期间,less 将定期尝试按名称重新打开文件。如果重新打开成功并且文件与原始文件不同(这意味着已经创建了一个与原始(现已重命名)文件同名的新文件),less 将显示该新文件的内容。
--
命令行参数 “--” 标记选项参数的结尾。其后的任何参数都被解释为文件名。当查看以 “-” 或 “+” 开头的文件名时,这很有用。
+
如果命令行选项以 + 开头,则该选项的其余部分被视为 less 的初始命令。例如,+G 告诉 less 从文件末尾而不是开头开始,+/xyz 告诉它从文件中 “xyz” 的第一次出现处开始。作为一种特殊情况,+<number> 的作用类似于 +<number>g;也就是说,它从指定的行号开始显示(但是,请参见上面关于 “g” 命令的警告)。如果选项以 ++ 开头,则初始命令应用于正在查看的每个文件,而不仅仅是第一个文件。前面描述的 + 命令也可用于为每个文件设置(或更改)初始命令。

行编辑

在屏幕底部输入命令行时(例如,用于 :e 命令的文件名,或用于搜索命令的模式),某些键可用于操作命令行。大多数命令在 [ 括号 ] 中有一种替代形式,如果特定键盘上不存在某个键,则可以使用该形式。(请注意,以 ESC 开头的形式在某些 MS-DOS 和 Windows 系统中不起作用,因为 ESC 是行删除字符。)可以通过在任何特殊键前加上“字面量”字符(^V 或 ^A)来逐字输入该键。反斜杠本身也可以通过输入两个反斜杠来逐字输入。
左箭头 [ ESC-h ]
将光标向左移动一个空格。
右箭头 [ ESC-l ]
将光标向右移动一个空格。
^左箭头 [ ESC-b 或 ESC-左箭头 ]
(即同时按下 CONTROL 和左箭头。)将光标向左移动一个单词。
^右箭头 [ ESC-w 或 ESC-右箭头 ]
(即同时按下 CONTROL 和右箭头。)将光标向右移动一个单词。
HOME [ ESC-0 ]
将光标移动到行首。
END [ ESC-$ ]
将光标移动到行尾。
BACKSPACE
删除光标左侧的字符,如果命令行为空,则取消命令。
DELETE 或 [ ESC-x ]
删除光标下的字符。
^BACKSPACE [ ESC-BACKSPACE ]
(即同时按下 CONTROL 和 BACKSPACE。)删除光标左侧的单词。
^DELETE [ ESC-X 或 ESC-DELETE ]
(即同时按下 CONTROL 和 DELETE。)删除光标下的单词。
上箭头 [ ESC-k ]
检索上一条命令行。
下箭头 [ ESC-j ]
检索下一条命令行。
TAB
完成光标左侧的部分文件名。如果它匹配多个文件名,则第一个匹配项将进入命令行。重复按 TAB 键将循环浏览其他匹配的文件名。如果完成的文件名是一个目录,则会在文件名后附加一个 “/”。(在 MS-DOS 系统上,会附加一个 “\”。)环境变量 LESSSEPARATOR 可用于指定要附加到目录名称的不同字符。
BACKTAB [ ESC-TAB ]
类似于 TAB,但以相反的方向循环浏览匹配的文件名。
^L
完成光标左侧的部分文件名。如果它匹配多个文件名,则所有匹配项都将进入命令行(如果它们适合)。
^U (Unix 和 OS/2) 或 ESC (MS-DOS)
删除整个命令行,如果命令行为空,则取消命令。如果您已将 Unix 中的行删除字符更改为 ^U 以外的字符,则使用该字符代替 ^U。

键绑定

您可以通过使用 lesskey (1) 程序创建 lesskey 文件来定义自己的 less 命令。此文件指定了一组命令键以及与每个键相关联的操作。您还可以使用 lesskey 更改行编辑键(参见“行编辑”),并设置环境变量。如果设置了环境变量 LESSKEY,less 将其用作 lesskey 文件的名称。否则,less 会在标准位置查找 lesskey 文件:在 Unix 系统上,less 查找名为 “$HOME/.less” 的 lesskey 文件。在 MS-DOS 和 Windows 系统上,less 查找名为 “$HOME/_less” 的 lesskey 文件,如果没找到,则查找 PATH 环境变量中指定的任何目录中名为 “_less” 的 lesskey 文件。在 OS/2 系统上,less 查找名为 “$HOME/less.ini” 的 lesskey 文件,如果没找到,则查找 INIT 环境变量中指定的任何目录中名为 “less.ini” 的 lesskey 文件,如果还是没找到,则查找 PATH 环境变量中指定的任何目录中名为 “less.ini” 的 lesskey 文件。有关更多详细信息,请参阅 lesskey 手册页。

系统范围的 lesskey 文件也可以设置为提供键绑定。如果一个键在本地 lesskey 文件和系统范围的文件中都有定义,则本地文件中的键绑定优先于系统范围文件中的键绑定。如果设置了环境变量 LESSKEY_SYSTEM,less 将其用作系统范围 lesskey 文件的名称。否则,less 会在标准位置查找系统范围的 lesskey 文件:在 Unix 系统上,系统范围的 lesskey 文件是 /usr/local/etc/sysless。(但是,如果 less 是使用与 /usr/local/etc 不同的 sysconf 目录构建的,则在该目录中可以找到 sysless 文件。)在 MS-DOS 和 Windows 系统上,系统范围的 lesskey 文件是 c:\_sysless。在 OS/2 系统上,系统范围的 lesskey 文件是 c:\sysless.ini。

输入预处理器

您可以为 less 定义一个“输入预处理器”。在 less 打开文件之前,它首先会让您的输入预处理器有机会修改文件内容的显示方式。输入预处理器只是一个可执行程序(或 shell 脚本),它将文件内容写入不同的文件(称为替换文件)。然后,替换文件的内容将代替原始文件的内容显示。但是,对于用户来说,它看起来像是打开了原始文件;也就是说,less 会显示原始文件名作为当前文件的名称。

输入预处理器接收一个命令行参数,即用户输入的原始文件名。它应该创建替换文件,完成后,将其标准输出打印为替换文件的名称。如果输入预处理器没有输出替换文件名,则 less 像往常一样使用原始文件。查看标准输入时,不调用输入预处理器。要设置输入预处理器,请将 LESSOPEN 环境变量设置为将调用您的输入预处理器的命令行。此命令行应包含一次字符串 “%s”,当调用输入预处理器命令时,它将被文件名替换。

less 以这种方式关闭打开的文件时,它将调用另一个程序(称为输入后处理器),该程序可以执行任何所需的清理操作(例如删除由 LESSOPEN 创建的替换文件)。此程序接收两个命令行参数:用户输入的原始文件名和替换文件的名称。要设置输入后处理器,请将 LESSCLOSE 环境变量设置为将调用您的输入后处理器的命令行。它可能包含两次字符串 “%s”;第一次替换为文件的原始名称,第二次替换为替换文件的名称(由 LESSOPEN 输出)。

例如,在许多 Unix 系统上,这两个脚本允许您保持压缩格式的文件,但仍允许 less 直接查看它们

lessopen.sh
#! /bin/sh

case "$1" in

*.Z) uncompress - $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 后处理器的替换文件名是 “-”。

为了与 less 的先前版本兼容,如果 less 正在查看标准输入,则不使用输入预处理器或管道。但是,如果 LESSOPEN 的第一个字符是短划线 (-),则输入预处理器将用于标准输入以及其他文件。在这种情况下,短划线不被视为预处理器命令的一部分。如果正在查看标准输入,则输入预处理器会接收到一个由单个短划线组成的文件名。同样,如果 LESSOPEN 的前两个字符是竖线和短划线 (|-),则输入管道将用于标准输入以及其他文件。同样,在这种情况下,短划线不被视为输入管道命令的一部分。

国家字符集

输入文件中共有三种字符类型
普通字符
可以直接显示到屏幕上。
控制字符
不应直接显示,但预期会在普通文本文件中找到(例如退格键和制表符)。
二进制字符
不应直接显示,也不预期会在文本文件中找到。

“字符集”只是对哪些字符应视为普通字符、控制字符和二进制字符的描述。LESSCHARSET 环境变量可用于选择字符集。LESSCHARSET 的可能值为

ascii
BS、TAB、NL、CR 和换页符是控制字符,所有值介于 32 和 126 之间的字符是普通字符,所有其他字符是二进制字符。
iso8859
选择 ISO 8859 字符集。这与 ASCII 相同,不同之处在于 160 到 255 之间的字符被视为普通字符。
latin1
与 iso8859 相同。
latin9
与 iso8859 相同。
dos
选择适用于 MS-DOS 的字符集。
ebcdic
选择 EBCDIC 字符集。
IBM-1047
选择 OS/390 Unix Services 使用的 EBCDIC 字符集。这是 latin1 的 EBCDIC 模拟。您可以通过在环境中设置 LESSCHARSET=IBM-1047 或 LC_CTYPE=en_US 来获得类似结果。
koi8-r
选择俄语字符集。
next
选择适用于 NeXT 计算机的字符集。
utf-8
选择 ISO 10646 字符集的 UTF-8 编码。UTF-8 的特殊之处在于它支持输入文件中的多字节字符。它是唯一支持多字节字符的字符集。
windows
选择适用于 Microsoft Windows 的字符集 (cp 1251)。

在极少数情况下,可能希望定制 less 以使用除 LESSCHARSET 可定义的那些之外的字符集。在这种情况下,环境变量 LESSCHARDEF 可用于定义字符集。它应设置为一个字符串,其中字符串中的每个字符代表字符集中的一个字符。字符 “.” 用于普通字符,“c” 用于控制字符,“b” 用于二进制字符。十进制数字可用于重复。例如,“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.

IBM-1047 4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc

191.b

iso8859 8bcccbcc18b95.33b.

koi8-r 8bcccbcc18b95.b128.

latin1 8bcccbcc18b95.33b.

next 8bcccbcc18b95.bb125.bb

如果未设置 LESSCHARSET 和 LESSCHARDEF,但在 LC_ALL、LC_TYPE 或 LANG 环境变量中找到字符串 “UTF-8”、“UTF8”、“utf-8” 或 “utf8”,则默认字符集为 utf-8。

如果找不到该字符串,但您的系统支持 setlocale 接口,less 将使用 setlocale 来确定字符集。setlocale 由设置 LANG 或 LC_CTYPE 环境变量来控制。

最后,如果 setlocale 接口也不可用,则默认字符集为 latin1。

控制字符和二进制字符以突出显示(反转视频)显示。如果可能,每个此类字符都以脱字号表示法显示(例如 ^A 代表 control-A)。仅当反转 0100 位结果为普通可打印字符时,才使用脱字号表示法。否则,该字符显示为尖括号内的十六进制数字。此格式可以通过设置 LESSBINFMT 环境变量来更改。LESSBINFMT 可以以 “*” 和一个选择显示属性的字符开头:“*k” 为闪烁,“*d” 为粗体,“*u” 为下划线,“*s” 为突出显示,“*n” 为正常。如果 LESSBINFMT 不以 “*” 开头,则假定为正常属性。LESSBINFMT 的其余部分是一个字符串,可能包括一个 printf 风格的转义序列(一个 % 后跟 x、X、o、d 等)。例如,如果 LESSBINFMT 为 “*u[%x]”,则二进制字符显示在带下划线的十六进制中,并括在括号内。如果未指定 LESSBINFMT,则默认值为 “*s<%02X>”。警告:通过 LESSBINFMT 展开字符的结果必须少于 31 个字符。

当字符集为 utf-8 时,LESSUTFBINFMT 环境变量的行为类似于 LESSBINFMT,但它适用于已成功解码但不适合显示的 Unicode 代码点(例如,未分配的代码点)。其默认值为 “<U+%04lX>”。请注意,LESSUTFBINFMT 和 LESSBINFMT 共享它们的显示属性设置(“*x”),因此指定一个会影响两者;LESSUTFBINFMT 在 LESSBINFMT 之后读取,因此它的设置(如果有)将具有优先级。UTF-8 文件中的问题八位字节(截断序列的八位字节、完整但非最短形式序列的八位字节、非法八位字节和杂散尾随八位字节)使用 LESSBINFMT 单独显示,以便于诊断 UTF-8 文件格式错误的原因。

提示符

-P 选项允许您根据自己的偏好定制提示符。提供给 -P 选项的字符串将替换指定的提示字符串。字符串中的某些字符会被特殊解释。提示机制相当复杂,以提供灵活性,但普通用户无需理解构建个性化提示字符串的细节。

后跟单个字符的百分号会根据后续字符的内容进行展开

%bX
被替换为当前输入文件中的字节偏移量。b 后跟单个字符(上面显示为 X),该字符指定要使用其字节偏移量的行。如果字符为 “t”,则使用显示顶行的字节偏移量,“m” 表示使用中间行,“b” 表示使用底行,“B” 表示使用底行之后的一行,“j” 表示使用 -j 选项指定的目标行。
%B
被替换为当前输入文件的大小。
%c
被替换为屏幕第一列中显示的文本的列号。
%dX
被替换为输入文件中某行的页码。要使用的行由 X 决定,与 %b 选项相同。
%D
被替换为输入文件中的页数,或等效地,输入文件中最后一行的页码。
如果不存在,则 -p 的模式是基本名称;初始文件的扩展名将被附加(由
被替换为编辑器的名称(取自 VISUAL 环境变量,如果未定义 VISUAL,则取自 EDITOR 环境变量)。请参见下面关于 LESSEDIT 功能的讨论。
%f
被替换为当前输入文件的名称。
%i
被替换为输入文件列表中当前文件的索引。
%lX
被替换为输入文件中某行的行号。要使用的行由 X 决定,与 %b 选项相同。
%L
被替换为输入文件中最后一行的行号。
%m
被替换为输入文件的总数。
%pX
被替换为基于字节偏移量的当前输入文件百分比。所使用的行由 X 决定,与 %b 选项相同。
%PX
被替换为基于行号的当前输入文件百分比。所使用的行由 X 决定,与 %b 选项相同。
%s
与 %B 相同。
%t
导致删除任何尾随空格。通常在字符串末尾使用,但可以出现在任何地方。
%x
被替换为列表中下一个输入文件的名称。

如果任何项目未知(例如,如果输入是管道,则文件大小未知),则打印问号。

提示字符串的格式可以根据某些条件进行更改。后跟单个字符的问号的作用类似于 “IF”:根据以下字符,评估一个条件。如果条件为真,则问号和条件字符之后到句点为止的任何字符都包含在提示中。如果条件为假,则此类字符不包含在内。问号和句点之间出现的冒号可用于建立 “ELSE”:冒号和句点之间的任何字符仅在 IF 条件为假时才包含在字符串中。条件字符(跟在问号后面)可以是

?a
如果目前已在提示中包含任何字符,则为真。
?bX
如果指定行的字节偏移量已知,则为真。
?B
如果当前输入文件的大小已知,则为真。
?c
如果文本被水平移动(%c 不为零),则为真。
?dX
如果指定行的页码已知,则为真。
?e
如果位于文件末尾,则为真。
?f
如果存在输入文件名(即,如果输入不是管道),则为真。
?lX
如果指定行的行号已知,则为真。
?L
如果文件中最后一行的行号已知,则为真。
?m
如果存在多个输入文件,则为真。
?n
如果这是新输入文件中的第一个提示,则为真。
?pX
如果指定行的基于字节偏移量的当前输入文件百分比已知,则为真。
?PX
如果指定行的基于行号的当前输入文件百分比已知,则为真。
?s
与 “?B” 相同。
?x
如果存在下一个输入文件(即,如果当前输入文件不是最后一个),则为真。

除特殊字符(问号、冒号、句点、百分号和反斜杠)外的任何字符都成为提示的一部分。通过在特殊字符前加上反斜杠,可以将任何特殊字符按字面量包含在提示中。

一些例子

?f%f:标准输入。

此提示打印文件名(如果已知);否则打印字符串 “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) 的默认值。为了可读性,每个都分成了两行。

?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
请注意,这会展开为编辑器名称,后跟 + 和行号,再后跟文件名。如果您的编辑器不接受 “+linenumber” 语法,或者在调用语法上有其他差异,可以更改 LESSEDIT 变量以修改此默认值。

安全性

当环境变量 LESSSECURE 设置为 1 时,less 在 “安全” 模式下运行。这意味着这些功能被禁用
!
shell 命令
|
管道命令
:e
检查命令。
v
编辑命令
s -o
日志文件
-k
lesskey 文件的使用
-t
标签文件的使用
文件名中的元字符,例如 *
文件名补全 (TAB, ^L)

Less 也可以编译为永久处于 “安全” 模式。

与 More 的兼容性

如果环境变量 LESS_IS_MORE 设置为 1,或者如果程序是通过名为 “more” 的文件链接调用的,则 less 的行为(大多)符合 POSIX “more” 命令规范。在此模式下,less 在以下方面表现不同

-e 选项的工作方式不同。如果未设置 -e 选项,less 的行为就像设置了 -E 选项一样。如果设置了 -e 选项,less 的行为就像设置了 -e 和 -F 选项一样。

-m 选项的工作方式不同。如果未设置 -m 选项,则使用中等提示,并在其前面加上字符串 “--More--”。如果设置了 -m 选项,则使用短提示。

-n 选项的作用类似于 -z 选项。此模式下不提供 -n 选项的正常行为。

-p 选项的参数被视为 less 命令,而不是搜索模式。

LESS 环境变量被忽略,改用 MORE 环境变量。

环境变量

环境变量既可以在系统环境中照常指定,也可以在 lesskey (1) 文件中指定。如果环境变量在多个地方定义,本地 lesskey 文件中定义的变量优先于系统环境中定义的变量,而系统环境中定义的变量优先于系统范围 lesskey 文件中定义的变量。
COLUMNS
设置屏幕上的列数。优先于 TERM 变量指定的列数。(但是,如果您有一个支持 TIOCGWINSZ 或 WIOCGETD 的窗口系统,窗口系统对屏幕尺寸的理解优先于 LINES 和 COLUMNS 环境变量。)
EDITOR
编辑器的名称(用于 v 命令)。
HOME
用户主目录的名称(用于在 Unix 和 OS/2 系统上查找 lesskey 文件)。
HOMEDRIVE, HOMEPATH
如果未设置 HOME 变量(仅在 Windows 版本中),则 HOMEDRIVE 和 HOMEPATH 环境变量的连接是用户主目录的名称。
INIT
用户 init 目录的名称(用于在 OS/2 系统上查找 lesskey 文件)。
LANG
确定字符集的语言。
LC_CTYPE
确定字符集的语言。
LESS
自动传递给 less 的选项。
LESSANSIENDCHARS
可能结束 ANSI 颜色转义序列的字符(默认 “m”)。
LESSANSIMIDCHARS
在 ANSI 颜色转义序列中,出现在 ESC 字符和结束字符之间的字符(默认值为 "0123456789;[?!"'#%()*+ ")。
LESSBINFMT
显示不可打印、非控制字符的格式。
LESSCHARDEF
定义字符集。
LESSCHARSET
选择预定义的字符集。
LESSCLOSE
用于调用(可选)输入后处理程序的命令行。
LESSECHO
lessecho 程序的名称(默认值为 "lessecho")。在 Unix 系统上,lessecho 程序用于扩展文件名中的元字符(如 * 和 ?)。
LESSEDIT
编辑器原型字符串(用于 v 命令)。请参阅 PROMPTS 下的讨论。
LESSGLOBALTAGS
用于 -t 选项查找全局标签的命令名称。如果您的系统上有 global (1) 命令,通常应将其设置为 "global"。如果未设置,则不使用全局标签。
LESSHISTFILE
用于在 less 多次调用之间记忆搜索命令和 shell 命令的历史文件名称。如果设置为 "-" 或 "/dev/null",则不使用历史文件。默认值在 Unix 系统上为 "$HOME/.lesshst",在 DOS 和 Windows 系统上为 "$HOME/_lesshst",在 OS/2 系统上为 "$HOME/lesshst.ini" 或 "$INIT/lesshst.ini"。
LESSHISTSIZE
历史文件中保存的最大命令数。默认值为 100。
LESSKEY
默认 lesskey(1) 文件的名称。
LESSKEY_SYSTEM
默认系统级 lesskey(1) 文件的名称。
LESSMETACHARS
被 shell 视为“元字符”的字符列表。
LESSMETAESCAPE
less 在发送给 shell 的命令中,在每个元字符前添加的前缀。如果 LESSMETAESCAPE 为空字符串,则包含元字符的命令将不会传递给 shell。
LESSOPEN
用于调用(可选)输入预处理程序的命令行。
LESSSECURE
在“安全”模式下运行 less。请参阅 SECURITY 下的讨论。
LESSSEPARATOR
在文件名补全中追加到目录名称后的字符串。
LESSUTFBINFMT
用于显示不可打印的 Unicode 码位的格式。
LESS_IS_MORE
模拟 more (1) 命令。
LINES
设置屏幕行数。其优先级高于 TERM 变量指定的行数。(但如果您使用的窗口系统支持 TIOCGWINSZ 或 WIOCGETD,则窗口系统对屏幕大小的识别优先于 LINES 和 COLUMNS 环境变量。)
PATH
用户的搜索路径(用于在 MS-DOS 和 OS/2 系统上查找 lesskey 文件)。
SHELL
用于执行 ! 命令以及扩展文件名的 shell。
TERM
运行 less 的终端类型。
VISUAL
编辑器的名称(用于 v 命令)。

参见

lesskey(1)

版权

版权所有 © 1984-2009 Mark Nudelman

less 是 GNU 项目的一部分,属于自由软件。您可以在以下任一条款下重新发布和/或修改它:(1) 自由软件基金会发布的 GNU 通用公共许可证;或 (2) Less 许可证。有关重新发布的更多详细信息,请参阅 less 发行版中的 README 文件。您应该已经随 less 的源代码收到了一份 GNU 通用公共许可证副本;如果没有,请致信 Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA。您也应该收到了一份 Less 许可证副本;请参阅 LICENSE 文件。

less 的发布是希望它有用,但不提供任何保证;甚至没有针对特定目的的适销性或适用性的默示保证。详情请参阅 GNU 通用公共许可证。

作者

Mark Nudelman <markn@greenwoodsoftware.com>
有关 less 中已知 Bug 的最新列表,请参阅 https://www.greenwoodsoftware.com/less/bugs.html
请将 Bug 报告或意见发送至上述地址或
bug-less@gnu.org.
欲了解更多信息,请访问 less 主页
https://www.greenwoodsoftware.com/less.

引用自

bzless(1), calcurse(1), colorit(1), debuge4fs(8), debugfs(8), dict_lookup(1), dwdiff(1), groffer(1), grotty(1), html2text(1), lessecho(1), man(1), man.config(5), more(1), perlamiga(1), perlos2(1), reptyr(1), roff(7), tailf(1), talkfilters(1), texdoc(1), topless(1), txt2man(1), wrap(1), xzless(1), zless(1)