当 less 用作手动寻呼机时,less 选项“--save-marks”不执行任何操作

当 less 用作手动寻呼机时,less 选项“--save-marks”不执行任何操作

我使用less版本 590(GNU 正则表达式)。

我用

export LESSFILE="/root/.lesshst_for_manpages"
export MANPAGER="pager --save-marks -I"
man -L en <<somemanpage>>

...但--save-marks在手册中设置标记时似乎没有效果(使用m寻呼机中的命令)。当再次阅读同一本手册时,寻呼机似乎不记得以前设置的标记。

我能做些什么?

答案1

当您使用lesswith --save-marks,在名为 的文件中设置一些标记file,然后退出分页器时,您的~/.lesshst文件将包含有关这些标记的几行信息:

$ cat ~/.lesshst
.less-history-file:
.mark
m a 1 6659 /home/myself/tmp/file
m c 1 33259 /home/myself/tmp/file

在这里,我使用文件中的命令 in ,在不同位置设置了a和标记。正如您所看到的,这两个标记与文件的路径名相关联。这允许我们稍后查看同一文件,并使用命令转到或标记。cmless~/tmp/filelessac'

在另一个文件中设置a和标记将更新保存的标记并添加标记:bab

$ cat ~/.lesshst
.less-history-file:
.mark
m a 1 46559 /home/myself/tmp/other-file
m b 1 13309 /home/myself/tmp/other-file
m c 1 33259 /home/myself/tmp/file

请注意,a标记中~/tmp/file不再存在。这观点是标记是特定路径名的文件中的位置。

当您用作less阅读手册的寻呼机时,您阅读的文本文档的路径名是什么?您可以使用=命令、:f命令或按Ctrl+G寻呼机来获取此信息。提示:没有文件名。

没有文件名的原因是因为手册(即less正在显示的文本文档)来自管道。它类似于less这样使用:

$ cat file | less --save-marks

...如果您这样做并设置一个标记,您会注意到该标记.mark已从~/.lesshst.

简而言之,less无法记住管道文档中的标记。这就是为什么在用于less查看手册时不保存标记的原因。此外,您的任何标记尝试在手册中设置将是清除从你的~/.lesshst文件中。

答案2

您可能正在寻找:

export LESSHISTFILE="..." ...

您是否拥有写入所需的权限/root/.less...

有帮助吗?

相关内容