在M-x man foo
内为foo
命令运行Emacs
会很好。然后可以在手册页中轻松导航并快速查找详细信息。
当命令(例如git
)的帮助产生有限的输出时,可以使用终端而不是emacs。
但偶尔,命令(例如aws help
- 在终端中运行)会产生大量输出。但输出与emacs Man模式不兼容。一个选项是在emacs中使用M-x shell,但不会立即显示页面。它将报告“警告:终端没有完全正常工作”,并且需要无休止地按键直到出现完整的帮助,或者,对于Emacs 25,“找不到名为'groff'的可执行文件”。
阅读emacs中命令生成的长手册页有什么好方法?
答案 0 :(得分:1)
我几天前遇到了这个问题。
输入escape +!然后键入(例如)“aws ec2 help”。这会将帮助文本带入一个名为 Shell命令输出的新缓冲区,其中包含所有control-h字符等。
切换到带有control-x的新缓冲区,然后小写'o'(用于其他缓冲区)
输入escape + lowercase'x'运行emacs函数,然后输入'man'并按Enter键。它将提示输入手册页并默认为EC2,只需按Enter键即可。在我的情况下,它在状态行中显示错误,“进程中的错误标识:无法找到EC2联机帮助页”。
但是,“手册页”功能现在可用,所以现在(在该缓冲区中)您可以键入escape + x并运行Man-fontify-manpage函数。该页面现在应该看起来像一个带有粗体等的好页面。
然后,您可以重命名缓冲区(转义+ x,然后再转换为 ec2 ),这样如果运行另一个shell命令,则不会替换缓冲区。
答案 1 :(得分:0)
我只想在缓冲区中输出,你可以简单地使用:
M - ! aws help
RET
答案 2 :(得分:0)
如果你想在shell缓冲区中输出,你可以git help commit | cat
(所以不再有"终端没有完全正常运行")。
也可以M-! aws help | cat RET
。我没有aws,但希望如果aws输出格式化正确,管道将删除转义字符。您还应该尝试TERM=dumb aws help
。当TERM设置为哑时,任何命令都应该比使用花式输出更好。如果aws本身就是愚蠢的,你可以将其输出管道输出到过滤掉控制字符的东西 - 试试this
用于在任意缓冲区中强制man模式,M-x Man-mode
(是,大写)。我不确定这对于aws的输出是否会很好。
顺便说一句,对于git,我想你知道你可以做man git-commit
(或者通常是man git-any_git_command),所以当你使用emacs时你有一个很好的替代git help
(输出帮助和手册页是一样的。)