最近发现agendafile 里有些数据丢失,肯定是自己误操作了.想设置部分只读,特请教各位大佬
这两个网址应该会有所帮助
(defun org-make-properties-read-only ()
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"^ *:PROPERTIES:\n\\( *:.+?:.*\n\\)+ *:END:\n" nil t)
(add-text-properties (- (match-beginning 0) 1) (- (match-end 0) 1) '(read-only t)))))
(defun org-make-logbooks-read-only ()
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"^ *:LOGBOOK:\n\\( *-.+\n\\)+ *:END:\n" nil t)
(add-text-properties (- (match-beginning 0) 1) (- (match-end 0) 1) '(read-only t)))))
(add-hook 'org-mode-hook #'org-make-properties-read-only)
(add-hook 'org-mode-hook #'org-make-logbooks-read-only)
临时糊了一个,应该能满足要求,但是这样修改就挺麻烦的。
ps. 也可以隐藏 drawers 来防止误操作,
5 个赞
也许可以把“只读/去掉只读”与“隐藏/显示drawers”写在一起: 显示drawer则进入读写模式,隐藏drawer则进入只读保护模式。
再写一个run-with-idle-timers 闲时自动进入只读模式。
这样修改就不那么麻烦了。