如图所示
在使用org-noter creat-skeleton 后满屏的PROPERTIES, 谷歌未找到方法, 特地来论坛求助各位大佬
可以用 overlay 隐藏
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^ +:PROPERTIES:\n\\(.+\n\\)+ +:END:\n" nil t)
(with-silent-modifications
(overlay-put (make-overlay (match-beginning 0) (match-end 0)) 'display ""))))
谢谢大佬的帮助, 我不是太懂overlay, 可否告知上述代码如何使用?
M-x eval-expression, 然后粘贴上面的代码,回车。
上面的代码只是临时生效,要想每次打开时都隐藏,可以加到hook里。
(defun org-hide-properties ()
"Hide org headline's properties using overlay."
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"^ +:PROPERTIES:\n\\( +:.+?:.+\n\\)+ +:END:\n" nil t)
(with-silent-modifications
(overlay-put (make-overlay
(match-beginning 0) (match-end 0))
'display "")))))
(add-hook 'org-mode-hook #'org-hide-properties)
在 stackoverflow 找到一个帖子,亲测可用: https://stackoverflow.com/questions/17478260/completely-hide-the-properties-drawer-in-org-mode
我这也是 org-noter 的笔记
执行后,什么信息都没有?也没报错?
啊 我昨天也试了的 可是不行诶 我是org 9.3 是因为这个原因吗 GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.22, cairo version 1.17.3) of 2020-08-29
返回了一个nil
Strange, It’s impossible.
你把光标放在开头,然后 eval-expression
(re-search-forward
"^ +:PROPERTIES:\n\\( +:.+?:.+\n\\)+ +:END:\n" nil t)
看能不能搜索到properties?
我就把 org-cycle-hide-drawers
这个函数的定义 eval 了一下,然后重新打开文件,按 shift-tab (org-shifttab)隐藏再展开就会发现 properties 被隐藏了。但是只是定义了一个函数而已……咋起作用的我其实没太明白。
附我的环境: org-mode 9.4, emacs 26.1
仍然返回为nil诶
正则匹配是没有问题的,应该是你操作出了什么问题。
我复制粘贴后,以hook形式可是重启后还是无效诶
那我就不知道,最后再试一下把 with-silent-mo… 去掉的代码:
(defun org-hide-properties ()
"Hide org headline's properties using overlay."
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"^ +:PROPERTIES:\n\\( +:.+?:.*\n\\)+ +:END:\n" nil t)
(overlay-put (make-overlay
(match-beginning 0) (match-end 0))
'display ""))))
(add-hook 'org-mode-hook #'org-hide-properties)
正则匹配不成功,我不能理解。你把配置放在了加载路径里了吗,eval 配置了吗,kill掉buffer再重新打开文档了吗?
我明白原因了,你应该用了 org-indent-mode .
改一下,无论是否开启 org-indent-mode 都兼容的代码:
(defun org-hide-properties ()
"Hide org headline's properties using overlay."
(save-excursion
(goto-char (point-min))
(while (re-search-forward
"^ *:PROPERTIES:\n\\( *:.+?:.*\n\\)+ *:END:\n" nil t)
(overlay-put (make-overlay
(match-beginning 0) (match-end 0))
'display ""))))
(add-hook 'org-mode-hook #'org-hide-properties)