기본 "읽기" 프로그램을 어떻게 변경하나요?

기본 "읽기" 프로그램을 어떻게 변경하나요?

이제 를 실행하면 man (something)less수 있습니다. 하지만 Mac OS X에서는 스크롤할 때 up/ down또는 page-up/ page-down버튼 대신 터치패드를 사용하는 것을 정말 선호합니다 . less또는를 사용하지 않고 터미널에 텍스트를 인쇄하는 방법이 있습니까 more?

답변1

OSX에 대해서는 잘 모르겠지만 Unix-y이면 충분할 것 같습니다.

$HOME/.bashrc에 다음 줄을 추가합니다.

export MANPAGER=cat

모든 호출기가 이런 방식으로 작동하도록 하려면 PAGER설정하십시오. 설정된 경우 man사용되며 MANPAGER, 그렇지 않은 경우 반환되고 PAGER, 설정되지 않은 경우 반환됩니다 more.

답변2

매뉴얼 페이지가 별도의 창에 있고 보기가 첫 번째 페이지에서 시작되는 경우 원하는 효과를 얻으려면 다음을 추가하십시오 ~/.bash_profile.

function man {
    mf=`mktemp /tmp/$1-formatted-XXXXXXXXX`
    /usr/bin/man -t "$@" | pstopdf -i -o $mf
    mv $mf $mf.pdf
    open -W $mf.pdf
    rm $mf.pdf
}

로그아웃했다가 다시 로그인하여 활성화하거나 다음을 사용하여 파일을 다시 로드할 수 있습니다.

. ~/.bash_profile

후자는 중복된 정보가 있는 변수 등을 재정의할 위험이 있습니다 PATH.

이 기능은 man임시 파일에 매뉴얼 페이지의 PDF 형식 버전을 작성하고 PDF 뷰어(기본적으로 미리 보기)에서 파일을 연 다음 뷰어가 닫힐 때 임시 PDF를 삭제하도록 명령을 대체합니다. 기본 PDF 보기 프로그램이 원하는 방식으로 터치패드에 반응할 수 있다는 아이디어입니다.

마지막 기능(임시 PDF 삭제)을 사용하려면 open(1)계속하기 전에 PDF 뷰어가 닫힐 때까지 기다려야 합니다. 즉, PDF가 열려 있는 동안에는 터미널 창을 계속 사용할 수 없습니다. 이 문제를 해결하는 한 가지 방법은 -W플래그를 제거하고 open유사한 명령을 따르는 것입니다 sleep 1. 그러면 미리보기를 열 수 있는 충분한 시간이 제공됩니다. 또 다른 해킹은 마지막 줄을 다음과 같이 바꾸는 것입니다.

( sleep 60 ; rm $mf.pdf ) &

이렇게 하면 rm앞으로 60초 동안 명령이 실행되도록 예약되며 이는 확실히 충분한 시간입니다.

답변3

인터넷 검색 후 우연히 이 페이지를 발견했습니다.

원래 질문에 답하기 위해 less -R마우스 휠/터치패드 스크롤이 활성화됩니다.

최신 macOS에서는 셸 $LESS변수가 -R. $PAGER로 설정되어 있고 less스크롤이 작동하지 않으면 다음을 실행해 보십시오.

export LESS="-R"

~에 대한워렌 영의 답변: man쉘에 매핑된 함수를 업데이트하여 사용할 수 있습니다.ps2pdf이는 Ghostscript 패키지(Homebrew: 를 통해 설치 가능)의 일부이며 brew install ghostscript기능에 약간의 수정이 있습니다(더 이상 및 플래그가 없으며 -i이제 stdin/stdout을 -o사용함 ).-

function man() {
    mf=`mktemp /tmp/$1-formatted-XXXXXXXXX`
    /usr/bin/man -t "$@" | ps2pdf - $mf
    mv $mf $mf.pdf
    open -W $mf.pdf
    rm $mf.pdf
}

또한 파일이/tmp지난 3일 동안 액세스하지 않은 경우 자동으로 지워집니다(적어도 최신 macOS에서는).

관련 정보