通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否想恢复它们(因为它认为它们已经在磁盘上进行了更改),即使内容是相同的。 首先,如果磁盘上的内容与缓冲区中的内容相同,我想找一个方法让emacs完全不问这个问题。 其次,我想要一个命令(没有查询)恢复所有我没有未保存更改的打开的缓冲区,并询问有关未保存更改的那些缓冲区。 或者,我会接受有关其他解决scheme,工作方式等的build议,我可以尝试。 如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp。 PS我在OSX上使用Aquamacs,如果重要的话。 编辑: 那么,我已经find了这个revbuffs包,它几乎是我所需要的。 当然足以阻止我想尝试写新的东西。 (我把revbuffs映射到Cmd-R,这很好用,类似于其他Mac应用中的Cmd-R)。 全球自动还原模式将是一个完美的解决scheme,我希望我可以select两个答案。 我宁愿只是因为想要控制发生的事情,可能是非理性的感觉。 我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git。 (我还没有足够长的时间使用emacs使它成为我的操作系统)。 我会更详细地调查magit。 EDIT2: 我已经使用了一年的magit,并且可以强烈推荐它在emacs中处理git。 但是,当我在emacs之外进行rebase的时候,我仍然使用revbuffs。
我需要得到我用emacs编辑的文件的完整path。 有没有这个function? 如果没有,那么elisp的function是什么? 我怎样才能将结果(path名)复制到剪贴板,以便我可以重复使用它? 我正在使用Mac OS X和Aqumacs。 (setq filepath (get-fullpath-current-file)) ??? (copy-to-clipboard 'filepath) ??? 添加 (defun show-file-name() “在minibuffer中显示完整的path文件名称。” (互动) (消息(缓冲文件名)) (kill-new(file-truename buffer-file-name)) ) (全局设置键“\ C-cz”'show-file-name) 结合我得到的两个答案,我可以得到我想要的。 感谢您的答案。 还有一些问题。 什么是(文件 – truename)? 我可以将path名称复制到系统(OS)的剪贴板,而不是杀死环,以便我可以使用其他应用程序的信息?