2016-08-01 73 views
0

我試圖使用here中提供的命令進行復制。也就是說,如何將Zsh別名複製到Eshell

alias | sed -E "s/^alias ([^=]+)='(.*)'$/alias \1 \2 \$*/g; s/'\\\''/'/g;" >~/.emacs.d/eshell/alias 

這曾與Bash,我用Emacs-Starter-Kit;但不與Zsh一起工作 - 不工作意味着它複製了一些東西,但沒有效果。

[作爲一個側面說明]

好像,我沒有幾個Eshell默認變量即eshell-read-aliases-list,並eshell-aliases-file。所以,我甚至不知道我的Eshell別名文件應該放在哪裏。

回答

1

得到它prelude/personal

下設置

(setq eshell-directory-name (expand-file-name "./" (expand-file-name "eshell" prelude-personal-dir))) 
post.el(我個人 .el文件進行後期處理)

後工作......並修改了給定的bash命令

alias | awk '{print "alias "$0}' | sed -E "s/^alias ([^=]+)='(.*)'$/alias \1 \2 \$*/g; s/'\\\''/'/g;" > ~/.emacs.d/personal/eshell/alias 

......並將其附加到.zshrc

發現alias命令在zsh中打印的別名不帶前綴alias<space>,與bash不同。因此這部分

| awk '{print "alias "$0}'