그래서 우리 man whatever
는 whatever
명령 과 관련된 사용법과 다른 정보를 얻는 데 사용합니다. 정보 의 관련 섹션이 발견되면 man
화면에 정보가 남은 상태에서 명령 을 종료하고 싶습니다 . 위의 심판과 함께 다음 명령을 입력 할 수 있습니다. 그러나 man
명령은 전체 화면을 종료하여와 유사한 이전 화면을 복구합니다 vim
. 이것을 달성 할 수있는 방법이 있습니까?
그래서 우리 man whatever
는 whatever
명령 과 관련된 사용법과 다른 정보를 얻는 데 사용합니다. 정보 의 관련 섹션이 발견되면 man
화면에 정보가 남은 상태에서 명령 을 종료하고 싶습니다 . 위의 심판과 함께 다음 명령을 입력 할 수 있습니다. 그러나 man
명령은 전체 화면을 종료하여와 유사한 이전 화면을 복구합니다 vim
. 이것을 달성 할 수있는 방법이 있습니까?
답변:
나는 이것이 man
그 자체가 아니라 PAGER
사용중인 터미널과 결합 된 호출기 ( 환경 변수) 에 관한 것이 아니라고 생각 합니다.
나는 당신의 호출기가 아마 추측 less
(현재 일반적인 기본 호출기이며 설명에 적합 함) .
less
-X
찾고있는 내용에 따라 행동을 취할 수 있는 옵션 이 있습니다.
-X or --no-init
Disables sending the termcap initialization and deinitialization
strings to the terminal. This is sometimes desirable if the
deinitialization string does something unnecessary, like clear‐
ing the screen.
예를 들어 PAGER="less -X" man man
테스트에 사용할 수 있으며이 동작을 선호 PAGER
하는 경우이 값을 영구적으로 설정 하는 것이 좋습니다 .
LESS=-X
변경을 피하기 PAGER
호출기보다 적게 실행하는 경우 (매우 일반적 임) 호출기 수정을 처리 할 필요가 없으며 I / O 리디렉션 만 수행하면됩니다.
man <whatever you want to man> | cat -
그러면 터미널에 사본이 인쇄되므로 필요할 때 위로 스크롤 할 수 있습니다.
-
표준을 의미하지만 cat
어쨌든 가정
뿐만 아니라로서 less
만 같은 다른 텍스트 응용 프로그램vim
전시 같은 매우 성가신 기능, 나는 단지에서 관련 명령을 지원하는 단말기의 기능을 제거하고 일을 terminfo
데이터베이스를.
이 명령은 smcup
과rmcup
이며 cup
명령 (커서 위치)이 허용 된 위치 에서 스위치를 켜고 이동할 수 있도록 설계되었습니다 .
다음은 작업을 자동화하는 데 사용한 쉘 기능입니다. 적어도 Solaris 및 대부분의 Linux 배포판에서 작동합니다.
fixterminfo()
{
(
[[ ! -d /tmp/terminfo ]] && { mkdir /tmp/terminfo || return ; }
cd /tmp/terminfo || return
TERM=xterm infocmp > xterm.src.org
sed -e 's/rmcup=[^,]*,//' -e 's/smcup=[^,]*,//' xterm.src.org > xterm.src
if diff xterm.src.org xterm.src
then
echo xterm terminfo already patched
return
fi
TERMINFO=/tmp/terminfo tic xterm.src
if [ -f /usr/share/lib/terminfo/x/xterm ] ; then
XTERM=/usr/share/lib/terminfo/x/xterm
else
if [ -f /lib/terminfo/x/xterm ] ; then
XTERM=/lib/terminfo/x/xterm
else
if [ -f /usr/share/terminfo/x/xterm ] ; then
XTERM=/usr/share/terminfo/x/xterm
else
echo xterm terminfo not found ; return
fi
fi
fi
if [ ! -f ${XTERM}.org ]
then
sudo cp ${XTERM} ${XTERM}.org || return
fi
cat /tmp/terminfo/x/xterm | sudo dd of=${XTERM}
)
}
터미널 항목이로 대체되지 않으면 스크립트에서 올바른 터미널 이름으로 xterm
바꿔야 xterm
합니다.
2016 년에 두 번째 터미널이나 탭 또는 창을 열거 나 온라인에서 사람을 읽습니다.