建立在Getting Emacs to untabify when saving certain file types (and only those file types)上,我想运行一个钩子来解开我的C++文件,当我开始修改缓冲区时。我尝试添加钩子来加载缓冲区,但是这样会使emacs启动时自动加载的所有可写入文件变得无法识别。 (对于那些想知道为什么我这么做的人,这是因为我工作的地方强制使用文件中的标签,我很高兴遵守这些标签。问题是我标记了我的文件以告诉我当行太长时,但是正则表达式匹配行中的字符数,而不是行占用多少空间。行中的4个制表符可以将它推到远远超过我的132个字符的限制,但行不会被标记。适当因此,我需要一种方法来tabify和untabify自动)如何修改缓冲区时运行Emacs钩子?
3
A
回答
1
这是我加入到我的emacs文件untabify负载:
(defun untabify-buffer()
"Untabify current buffer"
(interactive)
(untabify (point-min) (point-max)))
(defun untabify-hook()
(untabify-buffer))
; Add the untabify hook to any modes you want untabified on load
(add-hook 'nxml-mode-hook 'untabify-hook)
+0
就像我在问题中所说的那样,我不想要这样的东西,因为当emacs启动时,我经常会加载数十个文件,即使我不需要它们,它也会通过并消除它们。当我关闭emacs时,所有的缓冲区都很脏,我需要保存它们。谢谢,不过。 – user45425 2008-12-12 16:28:36
3
以一个LO确定变量“before-change-functions”。
沿着这条线也许东西(警告:代码未测试):
(add-hook 'before-change-functions
(lambda (&rest args)
(if (not (buffer-modified-p))
(untabify (point-min) (point-max)))))
0
0
和另一个切向的答案。
您提到您的正则表达式不足以说明何时满足了132个字符限制。也许是一个更好的正则表达式...
此规则表达式将与行的时候有超过132个字符,假设标签宽度4,(我觉得我得到了数学右)
"^\\(?: \\|[^ \n]\\{4\\}\\)\\{33\\}\\(.+\\)$"
最后加括号的表达式是超过限制的字符集合。第一个加括号的表达式是shy。
相关问题
- 1. EMACS缓冲区等于文件时如何重置缓冲区修改标志
- 2. 如何修改输出缓冲区?
- 3. Markdownize Emacs缓冲区
- 4. Emacs erlang缓冲区
- 5. 缓冲区和修改OutputStream
- 6. 跟踪缓冲区更改并在Emacs事件后触发一个钩子
- 7. 尝试写入只读缓冲区时Emacs挂钩
- 8. 如何恢复emacs缓冲区列表中的缓冲区?
- 9. Emacs/Python:在线缓冲区与块缓冲区模式下运行python-shell
- 10. 错误运行ensime源缓冲加载钩 - OSX与ENSIME和Emacs
- 11. EMACS:打开新缓冲区时自动运行功能
- 12. Emacs意外地将缓冲区切换到临时缓冲区
- 13. “re-replace-region:通过缓冲区修改挂钩匹配数据”
- 14. 从elisp查找Emacs缓冲区是否被修改
- 15. 当emacs启动时,如何杀死* GNU Emacs *缓冲区?
- 16. 如何创建Emacs SQL缓冲区?
- 17. Emacs缓冲区组/标签
- 18. emacs:非连续缓冲区
- 19. Emacs缓冲区管理
- 20. emacs ediff刷新缓冲区
- 21. 在Emacs小缓冲区
- 22. Cocoa Emacs打印缓冲区
- 23. 所有emacs缓冲区中的行号
- 24. 如何修改emacs lisp中所有活动缓冲区的内容
- 25. Emacs - 杀死建议缓冲区超时
- 26. Emacs:不保存修改的缓冲区时不创建#这些#文件
- 27. 如何更改Emacs中的缓冲区编码系统?
- 28. 在OpenGL中修改缓冲区
- 29. Vim缓冲区已被修改
- 30. Ocaml缓冲区修改特定位置
似乎更好的正则表达式可以解决您的问题。 – 2008-12-12 20:20:06