我试图让 Emacs eshell 使用与 bash 相同的别名。
我尝试遵循 Stackoverflow here的顶级评论中的智慧,即将这两行添加到 .emacs 配置文件中:
(setq shell-file-name "bash")
(setq shell-command-switch "-ic")
但什么也没发生。
然后我在这里尝试了这个 wiki 选项。这是让 bash 别名脚本在新终端打开时覆盖 emacs eshell 别名文件:
alias | sed -E "s/^alias ([^=]+)='(.*)'$/alias \1 \2 \$*/g; s/'\\\''/'/g;" >~/.emacs.d/eshell/alias
但是,当我打开一个新终端时,这会导致错误(请注意,使用大写 -E 运行它对我不起作用):
sed: -e expression #1, char 42: invalid reference \2 on 's' commands' RHS.
有人知道如何解决这个 sed 错误吗?我意识到 wiki 选项特别指向使用 .bashrc - 诚然,我不知道这与我一直使用的 ~/.alias 文件有何不同。
例如,我有一个 .alias 文件,如下所示:
#!/bin/bash
alias episas="nice -19 perl $EPI/analysis/scripts/episas ";
alias | sed -e "s/^alias ([^=]+)='(.*)'$/alias \1 \2 \$*/g; s/'\\\''/'/g;" >~/.emacs.d/eshell/alias
我希望我的 /.emacs.d/eshell/alias 文件具有相同的 episas 别名。
感谢您的任何帮助!