刚刚发现未完成的手册,但它真的没什么意义。正好在高潮。我还是不明白。
答案 0 :(得分:9)
Eshell是一个像普通shell一样的命令解释器,但是它不会运行bash或者下面的任何其他shell。像bash一样,它有几种类型的命令:虽然bash有别名,函数,但是回退到$ PATH,eshell有别名,lisp函数,eshell函数,然后回退到$ PATH。
因此,例如,您可以运行:
~ $ find-file foo.txt
并且lisp函数find-file
将以非交互方式执行(与 Mx 不同),这意味着必须传入所有必需的参数。这是告诉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
来查看您创建的所有别名。
答案 1 :(得分:2)
看一下Eshell的这个介绍: http://www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/
它可能没有涵盖这个强大工具的每个方面,但它提供了相当丰富的信息。