Reformar dinámicamente las páginas man en cambios de dimensión de terminal

Un flujo de trabajo común mío es abrir una página de manual en un terminal, luego otra terminal en la que probar cosas. La página man está formateada a las dimensiones iniciales de la primera terminal. Cuando modifico el tamaño de mis windows (o hago que mi WM haga eso automáticamente), hay un espacio a la derecha de la página preformateada o las líneas se envuelven. En este punto usualmente q (uit) y !! (ejecutar nuevamente), que pierde mi position en la página.

Supongo que el process de formateo consume bastante CPU, o tal vez proviene de times remotos de tamaños de terminales fijos. Cuanto less buscapersonas reactjs dinámicamente a los events de cambio de tamaño del terminal, por lo que debería ser posible en teoría.

Intenté leer páginas de manual, search en la Web, preguntar en el IRC, todo, pero no pude encontrar nada.

  • ¿Puedo activar el formateo desde dentro o fuera de la utilidad man?

  • ¿Hay una versión de la utilidad man que networkingimensiona la página de forma dinámica?

  • ¿Hay alguna forma de personalizar alguna parte del process de formateo / visualización para que se actualice en SIGWINCH ?

El problema básico es que el formatting lo hace un progtwig y el paginado lo hace otro. Incluso si el formateador recibiera una señal de que el tamaño de la window ha cambiado y reformateado el text para el nuevo tamaño de la window, todo lo que puede hacer es enviar nuevo text por la tubería al buscapersonas. No hay forma de que el buscapersonas sepa con certeza qué position en la nueva secuencia corresponde a la position en la secuencia anterior que estaba mostrando actualmente.

Lo que necesita es que el buscapersonas pueda hacer el reformateo. Como dijo @Robin Green, eso es HTML.

Si desea utilizar HTML pero aún funciona en un terminal, puede indicar a man(1) que genere en HTML y llamar a un browser de modo de text para visualizarlo.

 man -Hlynx man 

Esto mostrará la página de man(1) en el browser de modo de text de lynx. Lynx no responde directamente a los cambios de tamaño de window, pero puede presionar ctrl-R y lynx volverá a renderizar la página para el nuevo tamaño de window.

Hay otros dos browseres en modo text que conozco: enlaces y enlaces. Puedes experimentar con esos y linces y determinar cuáles te dan la mejor experiencia para navegar por páginas man. Es posible que desee utilizar una configuration personalizada solo para páginas man e invocar una secuencia de commands que invoca el browser con esa configuration específica.

Puede poner las opciones de hombre que desee en la variable de entorno MANOPT .

 $ export MANOPT=-Hlynx $ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration. 

Deberá instalar el package groff para que el man pueda generar HTML.

Convierta las páginas man en html sobre la marcha usando un script adecuado como manserver , visualizándolos en un browser web (que por supuesto puede ser un browser web basado en text como lynx).

Probablemente, esto es por lo que nadie ha resuelto este problema, porque el problema se volvió irrelevante con el desarrollo de los scripts man-> html.