와이드 모니터가 있는데 터미널이 전체 화면으로 열립니다. 나는 매뉴얼 페이지를 emacs Olivetti 모드처럼 100자로 축소하고 화면 중앙에 배치하고 싶습니다.https://github.com/rnkn/olivetti.
어떻게 해야 하나요?
답변1
man
다음과 같이 작동합니다:
groff
nroff 마크업 언어의 매뉴얼 페이지 소스 파일을 인쇄 가능한 텍스트로 변환하는 데 사용됩니다 .- 그런 다음
groff
출력을 호출기로 전달하여 사용자에게 표시합니다. 기본 호출기는 입니다less
.
groff
man
사용하려는 너비로 페이지 형식을 지정합니다. 기본적으로 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
. 표준 입력을 파이프로 리디렉션하고 표준 출력을 읽습니다.