일반적인 워크 플로 중 하나는 터미널에서 수동 페이지를 연 다음 다른 터미널에서 사물을 테스트하는 것입니다. 매뉴얼 페이지는 첫 번째 터미널의 초기 크기로 포맷됩니다. 이제 창 크기를 조정하거나 (WM에서 자동으로 수행하도록) 미리 서식이 지정된 페이지 오른쪽에 간격이 있거나 줄 바꿈이 발생합니다. 이 시점에서 나는 일반적으로 q
(uit) and !!
(다시 실행) 페이지에서 내 위치를 잃습니다.
포맷 프로세스가 CPU를 많이 사용하거나 고정 터미널 크기의 고대에 기인한다고 가정합니다. less
은 이론적으로 가능해야하므로 호출기 동적으로 터미널 크기 조정 이벤트에 반응한다.
나는 매뉴얼 페이지를 꼼꼼히 살펴보고, 웹을 검색하고, IRC를 요청했다.
-
man 유틸리티 내부 또는 외부에서 재 포맷을 트리거 할 수 있습니까?
-
페이지 크기를 동적으로 조정하는 man 유틸리티 버전이 있습니까?
-
포맷 / 표시 프로세스의 일부를 사용자 정의하여 업데이트 할 수
SIGWINCH
있습니까?
답변
기본 문제는 한 프로그램에서 서식을 지정하고 다른 프로그램에서 페이징을 수행한다는 것입니다. 포맷터가 창 크기가 변경되었다는 신호를 받고 새 창 크기에 맞게 텍스트를 다시 포맷하더라도 파이프 라인 아래로 새 텍스트를 페이저로 공급하기 만하면됩니다. 호출기가 새 스트림의 현재 위치가 현재 표시중인 이전 스트림의 위치와 일치하는지 확실하게 알 수있는 방법이 없습니다.
호출기가 재 포맷을 수행 할 수 있어야합니다. @Robin Green이 말했듯이 HTML입니다.
HTML을 사용하고 싶지만 터미널에서 계속 작업하려면 HTML man(1)
로 출력하도록 지시하고 텍스트 모드 브라우저를 호출하여 표시 할 수 있습니다.
man -Hlynx man
man(1)
lynx 텍스트 모드 브라우저에서 맨 페이지 가 표시됩니다 . Lynx는 창 크기 변경에 직접 응답하지 않지만 ctrl-R을 누르면 lynx가 새 창 크기에 대한 페이지를 다시 렌더링합니다.
내가 아는 다른 텍스트 모드 브라우저에는 링크와 elink가 있습니다. 그것들과 lynx를 실험하고 매뉴얼 페이지를 탐색하는 데 가장 좋은 경험을 제공하는 것을 결정할 수 있습니다. 매뉴얼 페이지에 대해서만 사용자 정의 구성을 사용하고 해당 특정 구성으로 브라우저를 호출하는 스크립트를 호출 할 수 있습니다.
원하는 man 옵션을 MANOPT
환경 변수에 넣을 수 있습니다 .
$ export MANOPT=-Hlynx
$ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration.
HTML을 생성 하려면 groff
패키지 를 설치해야합니다 man
.
답변
manserver 와 같은 적절한 스크립트를 사용하여 매뉴얼 페이지를 html로 즉시 변환하여 웹 브라우저에서 볼 수 있습니다 (물론 lynx와 같은 텍스트 기반 웹 브라우저 일 수 있음).
이것은 아마도 아무도이 문제를 해결하지 못한 이유 일 것입니다. 문제는 man-> html 스크립트 개발과 관련이 없기 때문입니다.