代码之家  ›  专栏  ›  技术社区  ›  Marianne

.bashrc中的命令在emacs中不可用

  •  10
  • Marianne  · 技术社区  · 15 年前

    我在~/.bashrc中定义了一些别名和函数。

    我从终端窗口启动Emacs,使用 emacs -nw

    当我执行时 M-x shell-command ,来自~/.bashrc的别名和函数不可用,但给出“找不到命令”。

    我已经在谷歌上搜索了不少,但是我遇到的所有帖子都说,如果我理解正确的话,那~/.bashrc是这个应用的地方(而不是~/.profile或~/.bash_profile)。

    我错过了什么?

    2 回复  |  直到 13 年前
        1
  •  8
  •   dimba    15 年前

    别名仅在交互式shell中可用-bash手册页中的快照:

    当 shell不是交互式的,除非 设置了展开别名外壳选项 使用商店 (请参见下面shell builtin命令下的shopt说明)。

        2
  •  2
  •   polyglot    15 年前

    如果您从一个交互式shell启动emacs(其中.bashrc等已经执行),那么.bashrc中的命令应该可以同时用于 shell-command shell 至少对我来说是这样的。

    但是,正如另一个答案所说,在Emacs中没有真正的方法可以获得.bashrc环境。有一些关于.emacs_bash文件的文档,但这些文档对我来说不起作用。


    好吧,误读你的问题。如果通过在.bashrc中更改路径来查找函数和别名而不是命令,那么非交互性就是问题所在。我想你可以把默认参数改成shell命令(看看 explicit-bash-args )使bash交互,但这可能会产生意想不到的结果。