【问题标题】:Emacs: How to read command help just as one would read Man pages?Emacs:如何像阅读手册页一样阅读命令帮助?
【发布时间】:2015-05-26 22:18:37
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: emacs


    【解决方案1】:

    几天前我刚刚遇到了这个确切的问题。

    输入转义 + !然后输入(例如)“aws ec2 help”。这会将帮助文本带入一个名为 Shell 命令输出 的新缓冲区,其中包含所有 control-h 字符等。

    使用 control-x 切换到新缓冲区,然后小写“o”(用于其他缓冲区)

    键入 escape + 小写的 ‘x’ 来运行一个 emacs 函数,然后键入 ‘man’ 并按 Enter。它将提示输入手册页并默认为 EC2,只需按 Enter。在我的例子中,它在状态行中显示一个错误,“进程哨兵错误:找不到 EC2 手册页”。

    但是,“手册页”函数现在可用,所以现在(在那个缓冲区中)您可以键入 escape + x 并运行函数 Man-fontify-manpage。该页面现在应该看起来像一个带有粗体等的漂亮手册页。

    然后你可以重命名缓冲区(escape + x 然后类似 ec2)这样如果你运行另一个 shell 命令,缓冲区就不会被替换。

    【讨论】:

    • 在邪恶模式下,我输入:!man aws help,然后输入M-x Man-fontify-manpage。谢谢!
    【解决方案2】:

    我只想在缓冲区中输出,你可以简单地使用:
    M-! aws help RET

    【讨论】:

    • 应该可以,但我得到的是“D^HDE^HES^HSC^HCR^HRI^HIP^HPT^HTI^HIO^HON^HN”而不是“DESCRIPTION”。模式是基本模式。这似乎是问题所在,因为在键入“man ls”时会出现相同类型的输出。现在的问题是(或可能是)如何在 shell 输出页面上强制使用 man 模式。
    • 哦,它对粗体文本使用了过度输入。我的系统上没有。我想这是一个终端问题,但我不确定正确的解决方案是什么。这有帮助吗? stackoverflow.com/a/22091145/324105
    • 复制/Applications/Emacs-24.4.app/Contents/Resources/etc/e/到~/.terminfo后,问题依旧。
    • 希望其他人可以提供答案。我现在可以建议的唯一其他方法是使用 M-x ansi-term 在适当的终端仿真器中运行命令(从 shell)。您可以使用C-c C-j 更改为term-line-mode,这将允许您使用常规的Emacs 命令导航缓冲区(和C-c C-k 更改回term-char-mode)。
    【解决方案3】:

    如果您希望在 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(帮助和手册页的输出)是一样的)。

    【讨论】:

    • M-之后! aws 帮助 | cat RET 我读到“使用 _^Ha_^Hw_^Hs _^Hc_^Ho_^Hm_^Hm_^Ha_^Hn_^Hd _^Hh_^He_^Hl_^Hp 获取有关特定命令的信息。”
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2017-10-02
    相关资源
    最近更新 更多