Un flujo de trabajo común mío es abrir una página de manual en una terminal, luego otra terminal en la que probar cosas. La página del manual está formateada con las dimensiones iniciales del primer terminal. Cuando ahora cambio el tamaño de mis ventanas (o hago que mi WM lo haga automáticamente), hay un espacio a la derecha de la página preformateada o líneas ajustadas. En este punto, generalmente q
(uit) y !!
(corro nuevamente), lo que pierde mi posición en la página.
Supongo que el proceso de formateo es bastante intensivo en la CPU, o tal vez se deriva de tiempos antiguos de tamaños de terminales fijos. El less
buscapersonas reacciona dinámicamente a eventos terminales de cambio de tamaño, por lo que debería ser posible en teoría.
Traté de leer detenidamente las páginas de manual, buscar en la Web, preguntar por IRC, todo, pero no pude encontrar nada.
¿Puedo activar el formateo desde dentro o fuera de la utilidad man?
¿Existe una versión de la utilidad man que redimensione la página dinámicamente?
¿Hay alguna forma de personalizar alguna parte del proceso de formateo / visualización para que se actualice
SIGWINCH
?
man
en realidad se usaless
como buscapersonas; puede presionarh
en una página de manual para obtener laless
pantalla de ayuda. No estoy seguro de por qué no cambia dinámicamente el tamaño de las páginas de manualman
representa la salida al ancho del término. Lo que necesita es un buscapersonas que pueda marcar donde se encuentra en el documento, volver a ejecutar man (que realmente no tiene idea ya que está conectado a él) y volver al marcador. Alternativamente, un nuevo comando man que incorpora un buscapersonas.Respuestas:
El problema básico es que el formato lo realiza un programa y la paginación la realiza otro. Incluso si el formateador recibiera una señal de que el tamaño de la ventana ha cambiado y reformatee el texto para el nuevo tamaño de la ventana, todo lo que puede hacer es alimentar el nuevo texto por el canalizador al localizador. No hay forma de que el localizador sepa con certeza qué posición en la nueva secuencia corresponde a la posición en la secuencia anterior que estaba mostrando actualmente.
Lo que necesita es que el localizador pueda hacer el reformateo. Como dijo @Robin Green, eso es HTML.
Si desea usar HTML pero aún funciona en una terminal, puede indicar
man(1)
que se envíe en HTML y llamar a un navegador en modo de texto para mostrarlo.Eso mostrará la página de
man(1)
manual en el navegador de modo de texto Lynx. Lynx no responde directamente a los cambios en el tamaño de la ventana, pero puede presionar ctrl-R y lynx volverá a representar la página para el nuevo tamaño de la ventana.Hay otros dos navegadores en modo texto que conozco: enlaces y enlaces. Podrías experimentar con esos y Lynx y determinar cuál te brinda la mejor experiencia para navegar por las páginas de manual. Es posible que desee utilizar una configuración personalizada solo para páginas de manual e invocar un script que invoca al navegador con esa configuración específica.
Puede poner las opciones de hombre que desee en la
MANOPT
variable de entorno.Deberá instalar el
groff
paquete paraman
poder generar HTML.fuente
-H
argumento al hombre es que no usa un servidor web, sino simplemente un archivo pequeño. Si bien esto evita cualquier problema con los cortafuegos mal configurados, no permite que se generen hipervínculos a otras páginas man (que al menos son compatibles con scripts man-> html de terceros).less
no tienen hipervínculos.Convierta las páginas man a html sobre la marcha utilizando un script adecuado como manserver , viéndolas en un navegador web (que, por supuesto, puede ser un navegador web basado en texto como lynx).
Presumiblemente, esta es la razón por la que nadie ha resuelto este problema, porque el problema se volvió irrelevante con el desarrollo de scripts man-> html.
fuente