如何在 Emacs(shell)中使用 `perldoc`?

如何在 Emacs(shell)中使用 `perldoc`?

使用 Emacs 编程时,您经常查阅手册页。我的环境是通过 SSH 基于文本的 Emacs。

man虽然我可以使用命令(函数)在 Emacs 中打开“普通”手册页(man MAN-ARGS),但我想知道如何perldoc在 Emacs 中使用 Perl POD 文档:当我perldoc -f packshell(shell &optional BUFFER)函数)运行它时(例如:),我收到一条消息说:

警告:终端功能不全

具体来说,终端行的数量少于 Emacs Windows 提供的数量。终端似乎设置为dumb,但即使当我使用时也TERM=emacs perldoc -f pack只使用 24 行,并且我看到一个lines 1-23提示(寻呼机要求继续)。我还看到它LINES设置为 24,即使我的(外部)终端有 103 行。

显然,由于窗口可以调整大小,因此计算行数并进行LINES相应设置看起来并不是解决此问题的明智答案。尽管如此,使用TERM=emacs LINES=100 perldoc -f pack仍然在第 24 行停止输出。

所以也许这是一个Emacs问题,实际上。

答案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>

相关内容