매뉴얼 페이지를 더 좁게 만들고 터미널 중앙에 배치

매뉴얼 페이지를 더 좁게 만들고 터미널 중앙에 배치

와이드 모니터가 있는데 터미널이 전체 화면으로 열립니다. 나는 매뉴얼 페이지를 emacs Olivetti 모드처럼 100자로 축소하고 화면 중앙에 배치하고 싶습니다.https://github.com/rnkn/olivetti.

어떻게 해야 하나요?

답변1

man다음과 같이 작동합니다:

  1. groffnroff 마크업 언어의 매뉴얼 페이지 소스 파일을 인쇄 가능한 텍스트로 변환하는 데 사용됩니다 .
  2. 그런 다음 groff출력을 호출기로 전달하여 사용자에게 표시합니다. 기본 호출기는 입니다 less.

groffman사용하려는 너비로 페이지 형식을 지정합니다. 기본적으로 man콘솔의 전체 너비가 사용되지만 MANWIDTH환경 변수를 사용하여 이를 재정의할 수 있습니다.

export MANWIDTH=100

들여쓰기를 안내하는 방법을 찾지 못했는데 다행히도 이라는 방법이 groff있습니다 .less입력 전처리기( man less더 알아보기). 입력을 전달하는 명령을 제공할 수 있습니다 less. 그래서 입력의 각 줄을 들여쓰기하는 스크립트를 작성했습니다.

$ cat $HOME/bin/olivetti
#!/bin/sh
# Define desired width of the text.
WIDTH=100
# Evaluate left indentation based on terminal width.
INDENT=$(( ( $(tput cols) - $WIDTH ) / 2 ))
# Make line of that amount of spaces.
INDENT_LINE=$( printf %${INDENT}s )
# Put it on the beginning of each line of the input file.
sed "s/^/${INDENT_LINE}/" -

less$LESSOPEN환경 변수에서 입력 전처리기 명령을 가져옵니다.

export LESSOPEN="|- olivetti %s"

|-전처리기를 파이프로 사용하도록 지시합니다 less. 표준 입력을 파이프로 리디렉션하고 표준 출력을 읽습니다.

관련 정보