Emacs(셸)에서 `perldoc`을 사용하는 방법은 무엇입니까?

Emacs(셸)에서 `perldoc`을 사용하는 방법은 무엇입니까?

Emacs로 프로그래밍할 때 맨페이지를 자주 참조하게 됩니다. 내 환경은 SSH를 통한 텍스트 기반 Emacs입니다.

man명령(함수)을 사용하여 Emacs에서 "일반" 매뉴얼 페이지를 열 수 있지만 Emacs에서 Perl POD 문서를 사용하는 (man MAN-ARGS)방법을 알고 싶습니다 . ( 함수) 에서 실행할 때 (예: ), 메시지를 받으세요 설명:perldocperldoc -f packshell(shell &optional BUFFER)

경고: 터미널이 완전히 작동하지 않습니다.

특히 터미널 라인의 개수는 Emacs Windows가 제공하는 것보다 적습니다. 터미널이 로 설정된 것 같지만 dumb사용하더라도 TERM=emacs perldoc -f pack24행만 사용하고 lines 1-23프롬프트(계속 요청하는 호출기)가 표시됩니다. LINES내 (외부) 터미널에 103개의 회선이 있어도 24로 설정되어 있는 것을 볼 수 있습니다 .

분명히 창 크기를 조정할 수 있으므로 행 수를 계산하고 LINES그에 따라 설정하는 것은 이 문제에 대한 합리적인 대답처럼 보이지 않습니다. 그럼에도 불구하고 사용은 TERM=emacs LINES=100 perldoc -f pack라인 24에서 출력을 중지합니다.

아마도 이것은이맥스실제로 문제가 있습니다.

답변1

해결책은 매우 간단한 것 같습니다. perldoc옵션 -T("이는 출력이 호출기로 전송되지 않고 STDOUT으로 직접 전송되도록 지정합니다."):

v04:~/src/Perl/OTP> perldoc -T -f pack
perldoc -T -f pack
    pack TEMPLATE,LIST
            Takes a LIST of values and converts it into a string using the
            rules given by the TEMPLATE. The resulting string is the
            concatenation of the converted values. Typically, each converted
            value looks like its machine-level representation. For example,
            on 32-bit machines an integer may be represented by a sequence
            of 4 bytes, which will in Perl be presented as a string that's 4
            characters long.
...
                # pack little-endian 16- and 32-bit signed integers
                $foo = pack('(sl)<', -42, 4711);
                # exactly the same

            The same template may generally also be used in unpack().

v04:~/src/Perl/OTP>

관련 정보