我使用less
版本 590(GNU 正则表达式)。
我用
export LESSFILE="/root/.lesshst_for_manpages"
export MANPAGER="pager --save-marks -I"
man -L en <<somemanpage>>
...但--save-marks
在手册中设置标记时似乎没有效果(使用m
寻呼机中的命令)。当再次阅读同一本手册时,寻呼机似乎不记得以前设置的标记。
我能做些什么?
答案1
当您使用less
with --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
和标记。正如您所看到的,这两个标记与文件的路径名相关联。这允许我们稍后查看同一文件,并使用命令转到或标记。c
m
less
~/tmp/file
less
a
c
'
在另一个文件中设置a
和标记将更新保存的标记并添加标记:b
a
b
$ 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...
?
有帮助吗?