这种情况一直发生在我身上:
是否有不同的功能或设置可用于强制emacs保存?
sco*_*zer 18
在save-buffer周围包装一个函数,用于标记首先修改的缓冲区:
(defun save-buffer-always ()
"Save the buffer even if it is not modified."
(interactive)
(set-buffer-modified-p t)
(save-buffer))
Run Code Online (Sandbox Code Playgroud)
Tag*_*ith 15
您可以使用Cx Cw另存为.这应该无条件地保存.您也可以只键入一个空格,然后在其上退格.Emacs很聪明地意识到,如果你撤消到目前为止你所做的一切,缓冲区没有变化,但是如果你进行了更改然后手动反转它们,它会认为缓冲区已被更改.
您可以使用未使用前缀arg 修改的Emacs-Lisp函数将当前缓冲区标记为已修改,并绑定到:
C-u M-~
Run Code Online (Sandbox Code Playgroud)
如果您不直接调用新函数,上面的答案将不起作用.如果您想要无缝更改emacs保存行为.最好的解决方案是建立一个建议:
(defadvice save-buffer (before save-buffer-always activate)
"always save buffer"
(set-buffer-modified-p t))
Run Code Online (Sandbox Code Playgroud)