在UNIX中有很多地方,程序调用$PAGER中的程序(通常是less或一些类似的命令)来显示一些输出。确实,许多最常见的用法都有Emacs的替代品(例如,在man中),但我仍然希望有一种通用的方法来使用Emacs作为系统范围的分页程序。理想情况下,这意味着对PAGER的调用最终会在一个类似于*Help*的Emacs临时缓冲区中结束,这是一个只读缓冲区,您可以在其中导航并按下"q“将其清除。
我通常通过M-x shell运行shell,因此我设想的用例是,在*shell*窗口中键入类似"man foo“的命令将在另一个窗口中打开手册页,这与内置的*Help*系统的工作方式大致相同。
发布于 2011-12-07 05:05:30
对于$PAGER的一般用法,您可能对e-sink感兴趣。
对于手册页的特定情况,最好使用Emacs的内置man模式。我的.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")的操作,这样您就可以打开$WITHIN_EMACS了。
https://stackoverflow.com/questions/8406721
复制相似问题