叫我跛脚,但我厌倦了我潜意识的C-x C-s
紧张抽搐.我经常切换缓冲区,我想我一旦切换到另一个就想保存一个缓冲区.我还没来得及学习Emacs-Lisp的基础知识.
有关如何做到这一点或更好的解决方案的任何提示?
(在相关的说明中,我发现了一种自动保存解决方法,可以在空闲一段时间后立即保存当前缓冲区.)
为了扩展赛斯的答案,我会这样做:
(defadvice switch-to-buffer (before save-buffer-now activate) (when buffer-file-name (save-buffer))) (defadvice other-window (before other-window-now activate) (when buffer-file-name (save-buffer))) (defadvice other-frame (before other-frame-now activate) (when buffer-file-name (save-buffer)))
检查是为了buffer-file-name
避免保存缓冲区w/out文件.你需要找出你用来切换你关心的缓冲区的所有入口点(我也建议other-window
).
我自己也是emacs lisp的新手,但这在我的测试中有效:
(defadvice switch-to-buffer (before save-buffer-now) (save-buffer)) (ad-activate 'switch-to-buffer)
这有点令人讨厌,因为它是在每个缓冲区(如临时)之后调用的.所以,请考虑这个答案.
如果要禁用它,则需要调用:
(ad-disable-advice 'switch-to-buffer 'before 'save-buffer-now) (ad-activate 'switch-to-buffer)