首页 > 解决方案 > 在终端中通过 Emacs 查看手册页

问题描述

我可以使用以下命令在终端中通过 emacs 查看手册页:

emacs -nw --eval '(progn (man "find") (delete-window))'

现在我尝试在我的 .bashrc 中定义一个类似于以下内容的函数:

function eman() { 
emacs -nw --eval '(progn (man "$1") (delete-window))';
 }

这样我就可以轻松地通过,例如,查看任何给定的手册页eman grep。但是,由于单引号会阻止插值,因此我无法将命令行参数传递给该函数。如何解决这个问题呢?

一个蛮力的方法是将手册页重定向到一个 tempoaray 文件并使用 emacs 读取它:

function eman () {
    man $1 > /tmp/$1_tmp_youjun;
    emacs -nw /tmp/$1_tmp_youjun;
}

但这需要一个中间文件,这似乎是不必要的。

标签: bashfunctionemacs

解决方案


只需使用双引号来启用参数替换,并转义内部双引号,如下所示:

function eman() { 
  emacs -nw --eval "(progn (man \"$1\") (delete-window))"
}

推荐阅读