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