我一直在寻找一种方法来对emacs ediff进行别名,以便在c-shell中使用。
在编写emacs --eval "(ediff "f1" "f2")"
时,emacs以ediff模式打开,将文件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甚至eval \" $ 1 \" !
答案 0 :(得分:0)
使用单引号,但对于!:1之类的参数请使用单引号。还可以使用\来对双引号,!,空格和括号进行转义。
结果是:
alias ediff emacsclient --eval '\(ediff-files\ \"'\!:1'\"\ \"'\!:2'\"\)'