如何在c-shell中为emacs --eval“(ediff…)”别名

问题描述 投票:0回答:1

我正在寻找一种别名emacs ediff的方法,以便在c-shell中更容易使用。写入emacs --eval "(ediff "f1" "f2")"时,以ediff模式打开emacs,将文件f1与文件f2比较。但是,当尝试使用别名时,我没有找到从命令行插入文件名的方法。以下代码适用于bash,但不适用于c-shell(因为c-shell don't support functions):

function ediff() {  
    emacs --eval "(ediff \"$1\" \"$2\")"}  

[也尝试过emacs --eval "(ediff \!*)",但效果不佳。有人知道这种别名的方法吗?

编辑按照注释中的建议,我创建了一个名为ediff的bash脚本,它所做的只是emacs --eval "(ediff \"$1\" \"$2\")"。无法使csh甚至评估\“ $ 1 \”

shell alias csh
1个回答
0
投票

使用单引号,但对于!:1之类的参数请使用单引号。也可以使用\。转义双引号,!,空格和括号。

结果是:

alias ediff emacsclient --eval '\(ediff-files\ \"'\!:1'\"\ \"'\!:2'\"\)'
© www.soinside.com 2019 - 2024. All rights reserved.