如何在emacs中的js2模式中修剪尾部空白
How to trim trailing whitespace in js2-mode in emacs
在所有非JS文件上修剪尾部空白效果良好。我的emacs:里有这些行
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(add-hook 'before-save-hook 'whitespace-cleanup)
我还使用M-x customize-group <enter> js2-mode
设置:
Js2 Cleanup Whitespace: [Hide Value] [Toggle] on (non-nil)
[State]: SAVED and set.
Non-nil to invoke `delete-trailing-whitespace' before saves.
但它仍然不能在保存时修剪空白!我错过了什么?
编辑添加:为了回应德鲁的建议,
- 在文件上手动运行删除尾部空白可以工作
- 如果没有空格清理,仍然无法工作,这并不奇怪,因为
- 删除尾部空白似乎不会在保存时调用
- 基本的保存缓冲区也是如此
我不知道如何研究js2模式是如何拦截/阻止保存前挂钩被触发的。
-
当您正常调用
delete-trailing-whitespace
时(手动),测试它是否对JS文件有效。 -
尝试在同一挂钩上不使用
whitespace-cleanup
——IOW,简化以查看问题所在 -
加载定义
delete-trailing-whitespace
的源文件(simple.el
)。然后是CCD_ 6。然后保存一个JS文件,看看d-t-w
是否被调用。如果它删除了空白,请逐步检查调试器,以确定它是否删除了空白(之后可能会将空白放回),如果没有,为什么不删除。 -
如果从未调用过它,则加载定义调用
buffer-save-hook
的函数(basic-save-buffer
)的文件(files.el
)。先取消M-x cancel-debug-on-entry RET
,再取消M-x debug-on-entry basic-save-buffer
。类似地,看看挂钩是否运行,如果没有,为什么没有,如果是,为什么没有DTRT,等等 -
请注意,如果某个钩子函数引发错误,则
basic-save-hook
不会运行到完成。查看挂钩上有哪些功能等。确定错误是否阻止TRT。
你明白了:调查。
我通过在lambda中包装删除尾部空白而不是引号来实现它。
(add-hook 'js2-mode-hook (lambda ()
(add-hook 'before-save-hook (lambda () (delete-trailing-whitespace)))
相关文章:
- 除修剪外的其他功能
- 为什么我得到错误IE修剪方法是't支持
- JavaScript尾部调用中的函数是否经过优化
- 需要有关修剪JavaScript的帮助
- 从多行文字中获取第一个修剪的字符串
- Javascript中的字符串修剪
- 如何修剪表单'提交'多级选择列表的值
- 为什么不是'我的修剪功能不起作用
- Razor/JavaScript和尾部分号
- 用正则表达式在js中进行函数修剪
- 当撰写的推文超过 140 个字符时,如何修剪它
- 修剪变量的值,直到它达到某个字符
- 从结尾或开头修剪字符串
- Backbone.js路由器混淆(pushState:true,尾部斜杠)
- 使用PDF.js获取PDF的修剪区域
- 带有特殊字符的InnerHTML正在修剪数据
- 在 Javascript 中修剪字符串
- 根据窗口宽度修剪字符串,调整大小时出现问题
- 如何在emacs中的js2模式中修剪尾部空白
- 修剪前导空格和尾部空格