Haga menos resaltar patrones de búsqueda en lugar de ponerlos en cursiva

23

Según tengo entendido, el hombre lo usa lesscomo buscapersonas y, cuando busca palabras clave, lo usa less"resalta" palabras clave con cursiva. Lo encuentro realmente inconveniente, así que me gustaría cambiar esto a algo así como vim set hlsearchdonde el patrón encontrado tiene un fondo diferente.

Intenté ejecutar man -P vim systemdpero eso se cerró con el estado de error 1, por lo que parece que estoy atascado less.

No había nada que pudiera encontrar man lessque ayudara (en su lugar, descubrí que esa opción -Gdesactivará resaltar todos juntos, lo que es aún peor que la cursiva).

Dicho esto, ¿alguien sabe cómo lograr el resaltado de búsqueda (cambiar el color de fondo) en las páginas man?

FYI ejecuto Ubuntu 14.10

Me encontré con esta pregunta que parece preguntar sobre lo mismo, pero no estoy seguro de si sigo cómo funciona esto ( LESS_TERMCAP_so). La lesspágina del manual no menciona esto. (Obtengo resultados extraños con esta solución)

sgp667
fuente
Significa que coloca esa línea en su ~/.bashrcarchivo. export LESS_TERMCAP_so=$'\E[30;43m'Vea también esta respuesta unix.stackexchange.com/questions/38634/…
iyrin
1
A veces uso man man | vim -para aprovechar mi configuración de vim, teclas y funciones
JJoao
¿Encontraste una solución para esto? Tengo exactamente el mismo problema en una máquina, y no puedo entender cuál es la diferencia. La LESS_TERMCAP_sovariable anterior hace que todo el archivo se convierta en fondo naranja ...
user1338062
Me temo que todavía estoy luchando con esto
sgp667

Respuestas:

16

Encontré una respuesta en el superusuario: /superuser/566082/less-doesnt-highlight-search

Parece que tiene que ver con su configuración TERM. Por ejemplo, menos resaltado actúa normalmente (resaltado de fondo blanco) cuando está en una ventana normal de gnome-terminal, pero cuando estoy en tmux, aparecen cursivas. La diferencia para mí es que TERM se está configurando en "pantalla" cuando está en tmux, pero "xterm-256color" cuando no lo está. Cuando configuro "TERM = xterm-256color" en la ventana de tmux, resaltar en menos vuelve al resaltado de fondo.

purgar
fuente
Ya me las arreglé para olvidar esta pregunta, pero esta es una noticia emocionante. ¡Tan pronto como ponga mi mano en la computadora, probaré esto!
sgp667
1
Esta es una solución poco práctica, ya que otras aplicaciones dependen de que TERM esté configurado en screen * cuando está dentro de tmux, como WeeChat. Cuando no está configurado para pantalla * en tmux, WeeChat tiene problemas de representación extraños.
Blaine Lafreniere
He notado que tuve el problema con tmux <2.0 y no tengo el problema desde tmux v2.
artfulrobot
Gran hallazgo Ahora tengo set -g default-terminal "xterm-256color"en mi ~ / .tmux.conf en mi caja CentOS 7 (y otras).
mostrar
Compruebe también para ver si screen-256colorexiste: intente ls /usr/share/terminfo/s/.
aDroid
8

La mención de LESS_TERMCAP_sofue incompleta. Esa es la variable de entorno especial de less utilizada para anular la socapacidad de termcap (sobresaliente). Para utilizar esta capacidad, también debe proporcionar una secapacidad (estándar).

La página del manual de terminfo (5) ofrece un resumen de estas características para los nombres de terminfo (smso / rmso) y termcap (so / se):

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

Su sección sobre resaltado explica:

Si su terminal tiene uno o más tipos de atributos de visualización, estos se pueden representar de varias maneras diferentes. Debe elegir una forma de visualización como modo destacado , que represente un formato bueno, de alto contraste, fácil de ver, para resaltar mensajes de error y otros captadores de atención. (Si tiene una opción, el video inverso más el medio brillo es bueno, o solo el video inverso). Las secuencias para ingresar y salir del modo destacado se muestran como smso y rmso, respectivamente.

Si desea utilizar el color para sobresalir , debe proporcionar un correspondiente LESS_TERMCAP_seque restablezca el color. Esto es relativamente simple de hacer, siempre y cuando no espere usar colores en la página del manual por otros motivos (como el uso de la función de color SGR de groff).

Asumiendo el valor sugerido en un comentario:

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

entonces podría restablecer eso para la mayoría de las terminales usando

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

Por cierto, la razón de las itálicas es que la descripción del terminal para GNU screenusa la secuencia de escape estándar para las itálicas como sus propias capacidades sobresalientes. Algo de eso se discute en la entrada de la base de datos del terminal .

Thomas Dickey
fuente
Esta fue la primera solución que realmente funcionó para mí (en tmux en una Mac). Solo agrego ambas líneas de exportación anteriores en mi archivo de configuración de bash.
Marlun
Sin embargo, si escribo "exportar" para ver todas mis variables de entorno, todo después de que estas líneas se resalten y el terminal se siga resaltando, así que tengo que cerrarlo e iniciar uno nuevo.
Marlun
En casos como ese, pongo las variables en un script que llama al programa que necesita las variables particulares. Las variables alteradas solo se aplican dentro del script.
Thomas Dickey
export | lessfunciona como una solución alternativa también
Marlun
4

Presione ESCupara desactivar el resaltado de búsqueda lessdespués de una búsqueda; una nueva búsqueda lo activará nuevamente, por lo que desactivará permanentemente el resaltado de búsqueda para un hit de sesión -G.

Como alternativa, colóquelo LESS='-G'en su entorno o ejecútelo manasí:

LESS='-G' man less

Irónicamente, todo esto está documentado en la página de lessmanual ...

También puede poner lo siguiente en el entorno, por ejemplo, en su .bash_profile:

export MANPAGER='less -G'
wurtel
fuente
Como expliqué en mi pregunta, no quiero cambiarlo por completo, quiero cambiar cómo aparece en mi pantalla. Mi pregunta podría haber sido engañosa porque alguien la editó por mí.
sgp667
1

Para tmux conjunto I TERMa tmux-256color . Entre otras cosas buenas, esto tiene el resaltado inverso "habitual" en menos . Funciona bien cuando se usa algo moderno como fedora o cygwin.

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

Los ncurses paquetes en Centos sin embargo no tienen las dos definiciones TMux ( tmux y tmux-256color ). Los importé con bastante facilidad desde fedora. Una ligera arruga es que ncurses de Centos es demasiado viejo para entender los archivos terminfo de fedora directamente.

En fedora:

$ infocmp tmux256-color >temp.txt

En Centos:

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

Luego dentro de tmux :

$ TERM=tmux-256-color man tmux

¡Resultado!

Para su información, el comando tic coloca la descripción compilada del terminal en su base de datos personal de terminfo, es decir, ~/.terminfo/t/tmux-256color(en este caso). Siéntase libre de mover esto a la base de datos global si eso es lo que desea:

$ sudo mv ~/.terminfo/t/tmux-256color /usr/share/terminfo/t/
bobbogo
fuente