Emacs:如何读取命令帮助就像读取手册页一样?

时间:2015-03-23 19:12:10

标签: emacs

M-x man foo内为foo命令运行Emacs会很好。然后可以在手册页中轻松导航并快速查找详细信息。

当命令(例如git)的帮助产生有限的输出时,可以使用终端而不是emacs。

但偶尔,命令(例如aws help - 在终端中运行)会产生大量输出。但输出与emacs Man模式不兼容。一个选项是在emacs中使用M-x shell,但不会立即显示页面。它将报告“警告:终端没有完全正常工作”,并且需要无休止地按键直到出现完整的帮助,或者,对于Emacs 25,“找不到名为'groff'的可执行文件”。

阅读emacs中命令生成的长手册页有什么好方法?

3 个答案:

答案 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(输出帮助和手册页是一样的。)