减少突出显示的搜索模式,而不是使其变为斜体


23

据我了解,男人less用作传呼机,并且在使用less它搜索关键字时会以斜体“突出”关键字。我觉得这确实很不方便,所以我想将其更改为vim那样的东西set hlsearch,其中发现的模式具有不同的背景。

我尝试运行,man -P vim systemd但是由于错误状态1而退出,因此看起来像是我坚持了less

我没有找到man less任何帮助(相反,我发现该选项-G将关闭同时突出显示所有内容,这比斜体字更糟)。

话虽如此,有人知道如何在手册页中实现搜索突出显示(更改背景颜色)吗?

仅供参考,我运行Ubuntu 14.10

我碰到了这个问题,似乎是在问同样的问题,但是我不确定是否遵循该工作原理(LESS_TERMCAP_so)。该less手册页并没有提到这一点。(通过此解决方案,我得到了奇怪的结果)


这意味着您将该行放置在~/.bashrc文件中。export LESS_TERMCAP_so=$'\E[30;43m'以及参见unix.stackexchange.com/questions/38634/…的
iyrin 2015年

1
有时候我man man | vim -会利用我的vim配置,键和功能
JJoao 2015年

您有解决方案吗?我在一台机器上有完全相同的问题,我不知道有什么区别。上面的LESS_TERMCAP_so变量导致整个文件变成橙色背景...
user1338062 2015年

恐怕我还在为此挣扎
sgp667

Answers:


16

在超级用户上找到了答案:https : //superuser.com/questions/566082/less-doesnt-highlight-search

看起来它与您的TERM设置有关。例如,在普通的gnome终端窗口中,较少的突出显示正常起作用(白色背景突出显示),但是当我使用tmux时,会出现斜体。对我来说,不同之处在于,在tmux中,TERM被设置为“屏幕”,而在非tmux中,则设置为“ xterm-256color”。当我在tmux窗口中设置“ TERM = xterm-256color”时,突出显示较少会返回到背景突出显示。


我已经忘记了这个问题,但这是令人振奋的消息。一旦接触到计算机,我将对其进行测试!
sgp667 2015年

1
这是不切实际的解决方案,因为其他应用程序(例如WeeChat)依赖于在tmux中将TERM设置为screen *。如果未在tmux中将其设置为screen *,则WeeChat出现奇怪的渲染问题。
布莱恩·拉弗里尼尔

我注意到我的tmux <2.0有问题,而从tmux v2开始没有问题。
artfulrobot

很棒的发现。我现在set -g default-terminal "xterm-256color"在CentOS 7盒子(及其他)上的〜/ .tmux.conf中。
sshow

另请检查是否screen-256color存在:尝试ls /usr/share/terminfo/s/
aDroid

8

提及LESS_TERMCAP_so不完整。那是less的特殊环境变量,用于覆盖termcap so(突出显示)功能。要使用此功能,您还必须提供se(标准)功能。

的terminfo(5)手册页给出了这些功能的terminfo(SMSO / rmso)总结和termcap的(所以/ SE)名称:

   enter_standout_mode           smso       so        begin standout mode
   exit_standout_mode            rmso       se        exit standout mode  

突出显示部分说明:

如果您的终端具有一种或多种显示属性,则可以用多种不同的方式表示这些属性。您应该选择一种显示形式作为突出模式,代表一种良好的,高对比度的,易于观察的,突出显示错误消息的格式以及其他吸引人的内容。(如果您可以选择,则反向视频加半亮度是不错的选择,或者单独使用反向视频。)进入和退出突出模式的顺序分别用smso 和 给出 rmso

如果要将颜色用于突出显示,则必须提供相应的LESS_TERMCAP_se颜色重置值。只要您不希望出于其他原因(例如使用groff的SGR颜色功能)而在手册页中不使用颜色,此操作就相对简单。

假设注释中建议的值:

export LESS_TERMCAP_so=$'\E[30;43m'

那么您可以使用

export LESS_TERMCAP_se=$'\E[39;49m'

顺便说一句,斜体的原因是GNU的终端描述screen使用标准的斜体转义序列作为自己的突出/突出能力。其中一些在终端数据库条目中讨论。


这是第一个对我有效的解决方案(在Mac上为tmux)。我只是将以上两个导出行添加到我的bash配置文件中。
Marlun's

但是,如果我写“ export”来查看我所有的环境变量,这些行将被突出显示,并且终端一直被突出显示,因此我必须将其关闭并重新开始。
Marlun's

在这种情况下,我将变量放入脚本中,该脚本调用需要特定变量的程序。更改的变量仅适用于脚本。
托马斯·迪基

export | less也可以作为一种解决方法
Marlun

4

点击ESCu以关闭搜索less后的搜索突出显示;新的搜索将再次将其打开,因此要永久关闭会话突出显示的搜索突出显示-G

或者放置LESS='-G'在您的环境中,或man像这样运行:

LESS='-G' man less

具有讽刺意味的是,所有这些都记录在手册中less...

您还可以将以下内容放入环境中,例如.bash_profile

export MANPAGER='less -G'

正如我在问题中解释的那样,我不想完全关闭它,我想更改它在屏幕上的显示方式。我的问题可能是误导性的,因为有人为我编辑了它。
sgp667

1

对于tmux,我设置TERMtmux-256color。除其他的好东西,这已在“正常”反白。当使用诸如fedora或cygwin之类的现代工具时,效果很好。

$ cat ~/.tmux.conf
⋮
set-option -g default-terminal tmux-256color

但是Centos上的ncurses软件包没有两个tmux定义(tmuxtmux-256color)。我很容易从fedora导入它们。轻微的变化是Centos的ncurses太旧,无法直接理解fedora的terminfo文件。

在软呢帽上:

$ infocmp tmux256-color >temp.txt

在Centos上:

$ scp fedora-machine:temp.txt .
$ tic temp.txt

然后在tmux中

$ TERM=tmux-256-color man tmux

结果!

仅供参考,tic命令将已编译的终端描述放入您的个人terminfo数据库中,即 ~/.terminfo/t/tmux-256color(在这种情况下)。如果需要,请随时将其移至全局数据库:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.