还真是yapf惹的祸,谢谢了
请问一下使用auto-save进行自动保存的时候,即使开了silent模式,还是会在minibuffer中不断出现提示信息。有什么办法彻底让auto-save安静呢?
Omitting...
Omitted 2 lines.
Omitting...
已解决:这个跟自动保存没有关系,是dired-x的锅。
(setq dired-omit-verbose nil)
(setq auto-revert-verbose nil)
这样就不会提示了。
歪个楼,在任何编辑工具中都会关闭自动保存。感觉自己不按C-xC-s心里总是没底(我把系统的C-s也绑定了C-xC-s)。
能告诉我你们为什么这么喜欢自动保存么?我怎么get不到它的一点好处?靠自己手点不香么?手动保存完全不会打断思路,就是下意识的动作
用modeline
背景颜色提示当前文件状态(已保存或已修改),
;; {{ change mode-line color by evil state
(defconst my-default-color (cons (face-background 'mode-line)
(face-foreground 'mode-line)))
(defun my-show-evil-state ()
"Change mode line color to notify user evil current state."
(let* ((color (cond ((minibufferp) my-default-color)
((evil-insert-state-p) '("#e80000" . "#ffffff"))
((evil-emacs-state-p) '("#444488" . "#ffffff"))
((buffer-modified-p) '("#006fa0" . "#ffffff"))
(t my-default-color))))
(set-face-background 'mode-line (car color))
(set-face-foreground 'mode-line (cdr color))))
(add-hook 'post-command-hook #'my-show-evil-state)
;; }}
在追求极致编程速度的同时,也可以用工具解决人需要可视地确认文件状态的问题。
手动保存按的手累啊,用了自动保存以后,从来就没关心过保存的事情。写完直接关,写错直接undo。C-x,C-s的按键我都取消了。
这个你要亲自试试看,就能get到了。
不习惯自动保存,但C-x C-s确实很累,我也不用,我的是shift-s,后来发现在某些情况下,S按得太多,也有那么点累,然后我就针对某些情况单独处理,把保存的行为用输入空格事件来触发,虽然还是手动按保存,但没有再按累的情况
;;在每次输入空格时都触发保存按钮,先插入空格在保存,与正常输入空格不冲突
(defun my-insert-spc()
(interactive)
(progn
(insert-char 32)
(save-buffer)
))
还有这样玩的
如果按连续快速按几个空格会不会有卡顿啊?
我用自动保存的另外一个原因是Emacs和外部的编辑器同时编辑同一个文件的时候,我只要切换窗口马上就可以编辑。
好点子。
我的办法是窗口失去焦点就保存。用起来也挺舒服。
连接按空格时没有卡顿,不过比起正常连续输入空格的操作是要慢那么一点
如果使用evil的话,也可以在其他state回到normal state时自动保存
请问下通过auto-save.el 开了自动删除尾行空格后,为什么在org-capture mode 会自动删除星号后面的空格,但是在org-mode 却不会? 如下图中,在NEXT后面打一个空格,很快就会被删掉。
自动保存不能和保存时删除空格、保存时自动缩进这种一起开吧?不然写到一半顿了一下就被删掉了空格/改了缩进,不是很抓狂
auto-save.el 可以做到不删除当前行的空格,不影响indent。但是在org-capture-mode 不知道什么不行。
我也有这个问题。我的解决方法是在这个buffer时,把auto-save禁用了。反正你需要用C-c C-c完成。
为啥不用默认自动保存?没有任何这种问题⋯⋯
现在用 super-save + ws-butler,super-save
开启 1 s 空闲自动保存。
解决了一些以前遇到的问题:
- 不会在
markdown-mode
启动清除尾行空格 - 只有改动的行清除空格,这样不会产生额外的 diff
- 不会影响
undo-tree
- 不会影响
org-capture
我目前的解决方案是
- 在org-capture关掉auto-save:
(add-hook 'org-capture-prepare-finalize-hook 'auto-save-disable)
(add-hook 'org-capture-after-finalize-hook 'auto-save-enable)
- 给删除当前行空格加advice:
(advice-add
'auto-save-delete-trailing-whitespace-except-current-line
:around
(lambda (fn) (interactive) (unless (org-capture-mode) fn)))
- 还尝试了在auto-save-disable-predicates加入org-capture buffer的判断,但这个尝试失败了。
(setq auto-save-disable-predicates
'((lambda () (string-suffix-p
"gpg" (file-name-extension (buffer-name)) t))
;; FIXME 2022-01-15: not working below:
;; (lambda () (string-match-p
;; (regexp-quote "CAPTURE-") (buffer-name)))
))
目前我用 super-save 没这个问题,体验和 auto-save 差不多。设置 1秒保存。
前段时间一直在用你提到的 super-save + ws-butler 方案, 但它只保存当前 buffer,以及 (setq super-save-exclude '(".gpg"))
不起作用,还没排查出什么原因,暂时回到auto-save了。
我这边 (setq super-save-exclude '(".gpg"))
正常。
本来想用回 auto-save 的,结果我关闭了自动删除尾行空格,在 org-capture 时还是会自动删空格。实在没办法,就放弃了 。
(setq auto-save-delete-trailing-whitespace nil)
请问下你用什么命令会编辑非当前buffer?