将 Emacs 用于 $PAGER?

Posted

技术标签:

【中文标题】将 Emacs 用于 $PAGER?【英文标题】:Using Emacs for $PAGER? 【发布时间】:2011-12-06 20:56:33 【问题描述】:

在 UNIX 中有很多地方,程序调用 $PAGER 中的程序(通常是 less 或一些类似的命令)以显示一些输出。确实,许多最常见的用途都有 Emacs 替代品(例如 man),但我仍然希望有一种通用的方式来使用 Emacs 作为我的系统范围的寻呼机。理想情况下,这意味着对 PAGER 的调用最终会出现在类似于 *Help* 的 Emacs 临时缓冲区中,这是一个只读缓冲区,您可以通过按“q”进行导航和关闭。

我通常通过 M-x shell 运行 shell,所以我设想的用例是在 *shell* 窗口中键入类似“man foo”的命令将在另一个窗口中显示手册页,或多或少与内置 *Help* 系统有效。

【问题讨论】:

lessmore,但也有 most 另一个寻呼机,它具有类似 emacs 的绑定和一些漂亮的颜色。 【参考方案1】:

对于$PAGER 的一般用途,您可能对e-sink 感兴趣。

对于手册页的特定情况,最好使用 Emacs 的内置手册模式,如您所记。我的.bashrc 中有这个:

man () 
 
    if [ "$TERM" == "eterm-color" ]; then
        emacsclient -e "(man \"$1\")";
    else
        command man "$@";
    fi

由于您使用 shell-mode 而不是 ansi-term-mode 像我一样,您要么必须一直使用 emacsclient,要么在您的 .emacs 文件中执行类似 (setenv "WITHIN_EMACS" "1") 的操作,以便您可以打开 @987654330 @ 代替。

【讨论】:

你不需要设置自己的变量,emacs在M-x shell中为你设置了INSIDE_EMACS。见the manual

以上是关于将 Emacs 用于 $PAGER?的主要内容,如果未能解决你的问题,请参考以下文章

tablesorter -- pager_output 变量在多个表之间共享

Windows上的Mercurial 1.5分页

Drupal 7 主题(''pager')-> 表得到渲染但没有 Pager?

Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现

自定义 pager/formfilter/buildquery 不会将过滤器数据处理为查询

隐藏在标签栏后面的 View Pager 的片段