作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Emacs 说,
Buffer foo.txt has shrunk a lot; auto save disabled in that buffer until next real save
当它检测到大量文本在自动保存时消失,并禁用自动保存,除非 auto-save-include-big-deletions
为非零。
如何 Hook Emacs 检测到缓冲区已缩小很多的事件?我想加入这一点,因为每当缓冲区缩小很多时我想设置一个缓冲区本地标志,这样当我保存一些缓冲区时,它的建议之一会检测到该标志并说对我来说“嘿,这个缓冲区已经缩小了很多。不要忘记查看 diff 以确保您没有错误地删除一些大块”。除了备份之外,这也很好。简单地比较保存前的缓冲区大小和保存的文件大小,无法检测到误添加批处理然后删除批处理再保存的情况。
最佳答案
auto-save-hook
在生成该消息的检查之前运行,因此您可以复制 C 代码中的逻辑来执行您想要的操作。因此您可以向该 Hook 添加一个函数。
这是(据我所知)C 代码中使用的逻辑。
(when (and auto-save-include-big-deletions
buffer-file-name
(> (* 10 (nth 7 (file-attributes buffer-file-name)))
(* 13 (buffer-size)))
(> (nth 7 (file-attributes buffer-file-name)) 5000))
;; do something
)
注意:即使自动保存被禁用,钩子(Hook)也会运行。
关于emacs - 如何在 Emacs 中 Hook "buffer has shrunk a lot",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235113/
我是一名优秀的程序员,十分优秀!