我在org-indent-mode模式下使用org-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。
UPD
此版本提供了删除区域的规定,并转到该行的末尾:
(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/