将 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* 系统有效。
【问题讨论】:
less
是 more
,但也有 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 变量在多个表之间共享
Drupal 7 主题(''pager')-> 表得到渲染但没有 Pager?
Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现