使用 Emacs 编程时,您经常查阅手册页。我的环境是通过 SSH 基于文本的 Emacs。
man
虽然我可以使用命令(函数)在 Emacs 中打开“普通”手册页(man MAN-ARGS)
,但我想知道如何perldoc
在 Emacs 中使用 Perl POD 文档:当我perldoc -f pack
从shell
((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>