我目前已切换到emacs(aquamacs),我正在将我的整个工作流程一次一步地迁移到它(org-mode,dired等,来自探路者,符号速度等).
我还没有尝试的东西(并且似乎是迄今为止最大的障碍)是内置的emacs shell(shell和/或eshell,这里称为"eshell"),因为zsh设置完美我.不确定是否有办法实质上反映/最小化所需的转换/适应步骤.....
我的问题:
可以被视为zsh的超集(即,eshell可以做zsh可以做的所有事情,还有更多)?我认为与标准shell(bash,zsh,ksh,tcsh等)相比,eshell缺少相当多的东西,否则它将成为标准shell之一(如果以这种方式考虑我是错的,请纠正我).
使用eshell而不是zsh有哪些主要限制?任何人都会从zsh切换到eshell并觉得zsh的某些方面你会非常想念吗?
有谁知道做zsh/eshell功能比较的任何链接/资源?
进一步,任何从一个通常的shell改为eshell的资源?工作流迁移的建议?
如果eshell不像zsh那样"强大",那么eshell对zsh有什么优势呢?有关在emacs中使用eshell的任何提示和技巧,可以说明学习它的时间吗?
应该只是放弃eshell并继续使用zsh,如果它做了我认为我需要的一切?或者是少数"权力工作流程"值得(我不知道)?
thnx提前.
是否有支持emacs风格的ido查找文件的命令行shell或shell自定义?在emacs中,我可以使用C-x C-f和非常快速地导航到目录(ido-mode t).
理想情况下,我正在寻找一种可以在emacs之外使用的解决方案.虽然我会开放一种快速更改eshell缓冲区内目录的方法.
我似乎无法在任何地方找到它.很多时候我使用环境变量设置命令:
export BLA=foo && ./somebinary
Run Code Online (Sandbox Code Playgroud)
我该怎么做eshell?我认为该命令被调用,set但我不确定如何使用它,上面的等价物是eshell什么?
我怎样才能使eshell自动完成功能像Bash和Emacs一样,即它提供一个选项列表而不是任意选择一个?
例如,如果我有两个目录"下载"和"下载",当我输入"向下"并点击TAB时,我希望弹出另一个缓冲区并向我显示选项.但是eshell只是为我完成它,即如果我按TAB,它就完成了"下载"; 再次点击TAB,它会变为"下载".
我正在尝试在eshell中运行git命令.当我跑:
git log -p
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:

请注意^ [[光标之前的k].箭头键向下不起作用,它会给出"未找到"错误.你可以在迷你缓冲区看到.向下滚动的唯一方法是使用RETURN键,它看起来很乱:

我的$ TERM设置为eterm,我也尝试了ansi.他们是一样的.以前有人经历过这个吗?
谢谢
编辑:
我有办法解决这个问题.我创建了这个函数:
(defun eshell/git (&rest args)
(apply 'eshell-exec-visual (cons "git" args)))
Run Code Online (Sandbox Code Playgroud)
所以每次运行git命令时,它都会在*git*缓冲区中启动输出.
如果您有其他方式,请告诉我.
With emacs/eshell, the "echo $PATH" shows different paths than that of $PATH environment variable.
And I also checked that eshell doesn't read .bashrc or .profile, and I think that's the reason why the path is different.
正如JérômeRadix指出的那样,PATH取决于我如何启动Aquamcs.
在emacs的eshell中使用RVM,我无法设置ruby版本.为什么?环境:Ubuntu 9.10
/media/Work/rubyworkspace $ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
/media/Work/rubyworkspace $ rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p180
/media/Work/rubyworkspace $ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
Run Code Online (Sandbox Code Playgroud) 那里.我是eshell的新手,现在我遇到了一个问题,我怎么能编写脚本.我已经尝试了(rm~/somefile)并且它工作了.所有的命令都是这样的?我应该如何编写条件代码和循环?我应该自定义什么来使系统使用eshell而不是其他命令来执行我的脚本,比如bash ,默认情况下? 我不是很擅长英语,我希望你能理解我的意思.我也会感谢我对英语表达的任何修正吗?
我想在eshell中运行Node.js,但提示不正确:

那么,我该如何解决这个问题呢?