【问题标题】:Eshell - where is the default directory and the path defined?Eshell - 默认目录和定义的路径在哪里?
【发布时间】:2014-04-23 17:59:59
【问题描述】:

关于Eshell配置的两个小问题。我查看了自定义选项甚至源代码,但无济于事。也许我应该好好看看。

  1. 当我启动 Emacs 并打开 Eshell 时,目录是 '~/.emacs.d/elpa' 而不是我的主目录 '~/',这是我所期望的。我不知道这个配置是从哪里来的,也没有找到改变它的方法。

  2. 我在 .bashrc 中更改了 $PATH,并根据需要自定义了 Emacs 变量“exec-path”。但是,Eshell 没有反映第一个变化,它不知道,而 bash 知道。 Eshell 是如何获取这些信息的,它与 bash 的区别在于它对这个变量的变化的了解?

感谢任何提示

索斯滕

PS

我发现了一个类似的问题 [here] (http://stackoverflow.com/questions/3621755/what-setup-file-does-eshell-elisp-shell-read-when-it-starts-how-eshell-集-i)。第 2 点的答案是 eshell 不读取 .bashrc,因此必须在启动过程中较早读取的文件中设置 $PATH。在我的 Ubuntu 系统上

/etc/environment

似乎是 Emacs 在启动时读取以设置 $PATH 的文件。

【问题讨论】:

    标签: bash emacs configuration path eshell


    【解决方案1】:

    eshell 似乎从当前工作目录开始,对你来说(在 Emacs 启动之后)是“~/.emacs.d/elpa”。您可以使用“M-x cd”手动更改它,但这不是必需的。如果您编辑某个文件并从其缓冲区启动 eshell,eshell 将在与该文件相同的目录中启动。

    但是如果你真的想在你的主目录中启动每个 eshell 会话,你可以在 eshell 启动之前进行一个钩子调用“cd”。

    【讨论】:

    • 谢谢,这回答了问题的第一部分。我认为第二部分是相关的 - 似乎 Emacs 很早就启动并在评估我的 .bashrc 之前获得了 $PATH 值。但即使我杀死 eshell 并启动一个新的,eshell 中的 $PATH 也不会反映我在 .bashrc 中的更改,而新的 bash shell 确实知道这些更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2011-07-02
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多