gpt4 book ai didi

emacs - 在组织模式下,如何保护星星不被删除?

转载 作者:行者123 更新时间:2023-12-02 00:06:07 27 4
gpt4 key购买 nike

我在 org-indent-mode 中使用 org-mode,这意味着除了一个星星之外的所有星星都被隐藏了,但是层次保留了它们的缩进,创造了一个轮廓类型的效果。

我在编辑的时候,好像总是不小心删掉星号和文字之间的空格。这意味着:

搞砸了,变成了这样:

或者有时,更糟糕的是,我什至删除了空格和一颗或多颗星星。然后我必须弄清楚我在哪里并尝试重新输入正确数量的星星以使我回到正确的水平,这很痛苦。

这个问题可能违背了组织模式的精神,但是有没有办法“保护”星星和它们之后的空间,这样当我多次点击 delete 时,它会发送我回到上一行文本而不是删除星星?

最佳答案

代码如下:

(defun new-org-delete-backward-char (N)
(interactive "p")
(if (not (looking-back "[*]+ "))
(org-delete-backward-char N)
(previous-line)
(end-of-line)))

(add-hook
'org-mode-hook
(lambda ()
(define-key org-mode-map (kbd "DEL")
'new-org-delete-backward-char)))

在我定义之前,我也弄乱了我的轮廓org-speed-commands-user 执行插入标题向上、向下等操作。也许您想尝试一下。此外,这非常有用:

(define-key org-mode-map (kbd "C-a")
(lambda()(interactive)
(if (looking-at "^[^*]")
(re-search-backward "^*")
(org-beginning-of-line))))

它会把你带到标题的开头,一旦你已经在行首,当您按 C-a 时。

更新

此版本有删除区域的规定并转到行尾:

(defun new-org-delete-backward-char (N)
(interactive "p")
(cond ((region-active-p)
(delete-region
(region-beginning)
(region-end)))
((looking-back "[*]+ ")
(previous-line)
(end-of-line))
(t
(org-delete-backward-char N))))

关于emacs - 在组织模式下,如何保护星星不被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18331315/

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