gpt4 book ai didi

emacs - 使用区域缩进函数保持区域标记

转载 作者:行者123 更新时间:2023-12-02 15:15:46 26 4
gpt4 key购买 nike

我在使用 haml-mode 的 region-indent-function 时遇到了问题,我正在尝试在另一个主要模式中重用它。我们应该能够通过在评估 haml-indent-region 后保持区域标记来循环区域缩进,但它无法按预期工作。经过一些修改后,我发现在函数末尾抛出错误会使 Emacs 保留该区域的标记,如本例所示:

(defun haml-indent-region (start end)
(save-excursion
...)
(error "")) ;; Terrible hack

但是我真的不喜欢。有没有一种干净的方法来获得这种行为而不需要如此可怕的黑客攻击?

最佳答案

该区域在命令完成后重置,因此调用 activate-mark 不会产生任何效果。抛出错误(非本地退出)显然会阻止此步骤,但这可能是一个错误。

技巧是:deactivate-mark

If an editing command sets this to t, deactivate the mark afterward. The command loop sets this to nil before each command, and tests the value when the command returns. Buffer modification stores t in this variable.

所以只需在命令末尾执行此操作即可:

  (setq deactivate-mark nil)

关于emacs - 使用区域缩进函数保持区域标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com