1

刚刚找到那本未完成的手册,但它确实未完成。正处于高潮。我还是不明白。

  • 那是什么?一个 eLisp 解释器?
  • 你如何告诉 emacs 从那里编辑文件?
  • 有什么区别?
  • 什么是仅 eshell 的命令?
4

2 回答 2

9

Eshell 是一个类似于普通 shell 的命令解释器,但它不会在下面运行 bash 或任何其他 shell。与 bash 一样,它有几种类型的命令:bash 有别名、函数并回退到 $PATH,而 eshell 有别名、lisp 函数、eshell 函数并回退到 $PATH。

因此,例如,您可以运行:

~ $ find-file foo.txt

并且 lisp 函数find-file将以非交互方式执行(与 不同M-x),这意味着必须传入所有必要的参数。这是告诉 emacs 从 eshell 编辑文件的一种方法。运行起来可能更快C-x C-f,因为它将默认为 eshell 当前所在的目录。

当你运行时:

~ $ ls

它实际上运行该函数eshell/ls,该函数将获得一个目录列表,而无需调用/bin/ls. 有类似的内置函数;如果您运行C-h f eshell/ <TAB>,您可以获得它们的列表。

eshell 内置函数的要点之一是使命令适合其他现有的 emacs 函数。例如,grep将进入*grep*缓冲区以便您可以快速跳转到结果。

它还有别名,有点类似于 bash 别名,但在处理参数的方式上有点像函数。例如,在 bash 中,您可能会说

alias ll='ls -l'

在 eshell 中你会说

alias ll ls -l '$*'

这两个意思是一样的。这$*意味着基本上“扩展所有论点”,并且有必要引用它。您可以运行alias以查看您创建的所有别名。

于 2010-10-06T21:49:02.117 回答
2

看看这个对 Eshell 的介绍:http: //www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/

它可能没有涵盖这个强大工具的所有方面,但它的信息量很大。

于 2011-06-03T10:14:45.743 回答