我在我的init.el上添加了一个钩子,将Emacs发布在eshell上。
;;start on eshell
(add-hook 'emacs-startup-hook 'eshell)问题是,我经常从终端上启动Emacs,并且希望将eshell目录作为我启动Emacs的终端的工作目录。
假设我在目录X中,然后启动Emacs
~/X $ emacs我想让这一切发生
Welcome to the Emacs shell
~/X $ 现在,我补充说
(cd "~")对于我的init.el,作为一个临时的解决方案(改变emacs的回家路径),但是它还不够好。
编辑
我想在它的gui里运行Emacs。
编辑2
如果不使用open -a emacs启动应用程序,克里斯的答案就会奏效。而是只使用可执行路径。
发布于 2014-05-22 18:13:19
当函数display-graphic-p返回nil时,可以检测到Emacs正在终端中运行,并且可以从default-directory变量中获取调用Emacs的目录。
所以就像
(when (not (display-graphic-p))
(cd default-directory)
(eshell))在init中,应该更改为“当前”目录,然后在从终端调用Emacs时启动eshell。
如果您总是希望调用eshell,那么您应该能够从代码中删除(eshell),只需保留emacs-startup-hook即可。
编辑:用调用函数display-graphic-p代替了变量window-system,这在this answer中是推荐的。
编辑2:如果您只想修改您的emacs-startup-hook以更改到您调用Emacs的任何目录,然后启动eshell (不管窗口系统如何),您可以使用以下内容
(add-hook 'emacs-startup-hook
(lambda ()
(cd default-directory)
(eshell)))https://stackoverflow.com/questions/23813584
复制相似问题