Por defecto, se man
usa less
para generar texto. ¿Cómo puedo decirle que solo salga a stdout? Mi emulador de terminal tiene una barra de desplazamiento y una función de búsqueda y quiero usarlas en lugar de las teclas de flecha.
En realidad se utiliza lo que se especifica en el MANPAGER
o la PAGER
variable de entorno.
Dependiendo de su man
implementación y versión, también podría haber un interruptor de línea de comando para especificar el localizador.
Con la implementación de man-db utilizo todas las formas siguientes de trabajo:
MANPAGER=cat man man
PAGER=cat man man
MANOPT='-P cat' man man
man -P cat man
Para configurarlo permanentemente, simplemente agréguelo a su ~/.bashrc
(u otro archivo de inicialización utilizado por su shell):
export MANPAGER=cat
Eso también funciona con algunas man
implementaciones anteriores , mientras que MANOPT
es específico de man-db:
export MANOPT='-P cat'
(Mejor no lo establezca de PAGER
esa manera. Esa también es utilizada por muchas otras aplicaciones).
También podría haber un archivo de configuración global. man-db tiene /etc/man_db.conf
o /etc/manpath.config
. Ahí puedes configurar:
DEFINE pager cat
Pero desafortunadamente eso se toma en consideración solo si MANPAGER
ni PAGER
se establece.
~/.bashrc
, También podría envolver la exportación en un condicional por lo que sólo establece el localizador si es el terminal apropiado / emulador:if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi
; obviamente reemplazarxterm
con el emulador apropiado.MANPAGER
. Usé la palabra "desafortunadamente" por el hecho de que el comportamiento también se aplicaPAGER
, que es una configuración genérica (utilizada por muchas herramientas) y preferiría que no anule una configuración específica (utilizada por una sola herramienta), incluso si eso uno es el nivel del sistema.PAGER=cat man
por ejemplo:alias man='PAGER=cat MANPAGER=cat man'
Simplemente canalizar la salida de
man
acat
?fuente
man
implementación, que 1) genera un error, 2) muestra códigos de formato de troff en el terminal, 3) elimina todo el formato, 4) funciona como se esperaba.man
parece usar el localizador establecidoMANPAGER
incluso cuando la salida es un archivo o una tubería. Y si el buscapersonas esless
, entonces todo está bien porque seless
comporta comocat
cuando la salida es una tubería ... Pero si usa algo más (como Vim, que yo uso), entonces no es tan bueno.Pruebe estos comandos para generar salida man sin un buscapersonas.
man ls | cat
(ancho fijo generado)man -P cat ls
(ancho variable generado)Estaba en un sistema GNU Linux
fuente
Otro ángulo: similar a la respuesta de Tony.
También puede redirigir la salida de hombre a un archivo y verlo con su editor de texto favorito o incluso agregarle marcadores, comentarios, etc.
Tengo una copia de la página de manual de bash, así como solo las secciones sobre control de flujo de bash y marcas de prueba de bash guardadas como archivos de texto en mi directorio bin para poder cargarlas directamente en mi editor de texto (kate) para referencia mientras estoy escribir guiones bash.
Advertencia: dependiendo de su sistema y la página del manual, el comando anterior puede dar como resultado información de formato y caracteres de control en el archivo.
Para evitar esto, haga lo sugerido en
LESS='+/^TIPS' man man
:fuente