我在配置中使用了 paredit-mode,所以把delete键也绑定到了“(paredit-backward-delete)”。但是这样一来 hungry-delete 便不工作了。有什么解决办法吗?
How to get hungry-delete working in paredit-mode? 给出了简单的解决方案,可以参考一下。并没有使用 hungry-delete-mode
,只需设置 backward-delete-char-untabify-method
为 'all
。
但有一些局限性:
- hungry delete 方向只有 backward
- 光标在字符串内部没有 hungry delete
- 光标在行首没有 hungry delete
- 光标当前行的括号没有配平且上面刚好是注释时,hungry delete 会注释掉当前行,导致括号配不平。
除了第 1 点应该都能解决,可以试着改一下函数 paredit-backward-delete-in-string
和 paredit-backward-delete-maybe-comment-end
,支持 backward-delete-char-untabify
。
paredit-backward-delete
最后一句也改为 paredit-backward-delete-maybe-comment-end
。
如果你只想用 hungry-delete-mode
,可以参考一下 hungry-delete-impl
。将其中的 delete-char
改为合适的函数 paredit-XXX-delete
,处理一下参数 n
,上面第 4 点仍需解决。
2 个赞