通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否要还原它们(因为它认为它们已在磁盘上更改),即使内容相同.
首先,如果磁盘上的内容与缓冲区中的内容相同,我想找到一种让emacs根本不问我的方法.
其次,我想要一个命令恢复(没有查询)我没有未保存更改的所有打开缓冲区,并向我查询那些确实有未保存更改的命令.
或者,我会接受有关其他解决方案,工作方式等方面的建议,我可以尝试.如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp.
PS如果重要的话,我在OSX上使用Aquamacs.
编辑:
好吧,我发现revbuffs包几乎是我需要的.当然足以阻止我想尝试自己写任何新东西.(我将revbuff映射到Cmd-R,效果非常好.类似于其他Mac应用程序中的Cmd-R).
全局自动恢复模式将是一个非常好的解决方案,我希望我可以选择两个答案.我更喜欢revbuffs,仅仅是因为想要控制所发生的事情,可能是非理性的感觉.
我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git.(我还没有使用emacs足够长的时间来使它成为我的操作系统).我会更彻底地调查magit.
EDIT2:
我已经使用magit一年了,并且强烈推荐它来处理emacs中的git.但是,每当我在emacs之外进行rebase时,我仍然会使用revbuff.
也许你想要全局自动恢复模式.尝试运行global-auto-revert-mode
,如果你喜欢它,你可以添加(global-auto-revert-mode)
到你的〜/ .emacs文件.
试试revbufs包:
revbufs.el
是一个很小的Emacs软件包,可以在Emacs中编辑文件时通过外部工具(例如Jomtool等代码生成器)安全地恢复缓冲区...
当您激活时,Magit包会自动执行此操作magit-ionotify-mode
(inotify需要在Linux上使用emacs 24.4).你可以在这里找到它的描述.