如何自定义Org-mode中LOGBOOK抽屉内CLOCK条目的格式?
解决Org-mode LOGBOOK中CLOCK条目
=>引发的rainbow-delimiters显示问题 Org-mode没有直接提供修改LOGBOOK抽屉内CLOCK条目格式的内置变量,但可以通过两种方式解决你遇到的问题:
方法一:自动替换CLOCK条目中的=>符号
利用org-clock-out-hook钩子,在每次停止计时后自动将CLOCK条目里的=>替换为不会触发rainbow-delimiters误判的符号(比如→)。将以下代码添加到你的Emacs配置文件中:
(defun my-org-replace-clock-arrow () "Replace '=>' with '→' in the latest CLOCK entry in LOGBOOK drawer." (save-excursion (let ((case-fold-search nil)) (when (re-search-backward "^:LOGBOOK:" nil t) (re-search-forward "^CLOCK:.*=>" nil t) (replace-match "→" t t nil 1))))) (add-hook 'org-clock-out-hook #'my-org-replace-clock-arrow)
这段代码会在你执行org-clock-out时,自动定位到当前条目LOGBOOK抽屉里最新的CLOCK记录,把=>替换为→,避免rainbow-delimiters将>识别为不匹配的分隔符。
方法二:调整rainbow-delimiters的识别范围
如果你不想修改CLOCK条目格式,可以让rainbow-delimiters在Org-mode中只识别括号、方括号和大括号,忽略>这类符号。添加以下配置到Emacs配置文件:
(add-hook 'org-mode-hook (lambda () (setq-local rainbow-delimiters-delimiters '(("(" . ")") ("[" . "]") ("{" . "}")))))
这样rainbow-delimiters就不会把CLOCK条目中的>当成分隔符处理,自然不会出现不匹配的样式错误。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

