比如只显示一级和二级标题, 其他内容都折叠
试试:
(add-hook (quote org-mode-hook)
(lambda ()
(org-shifttab 2)))
这个方法是可以, 不过我是想每个文件单独控制, 因为不同的org文件内容差异很大, 没法统一.
本来用的是这个:
#+startup: content
这个好像没法控制级别.
(org-show-children N)
可以指定展开到第几级。参考 (org-content)
实现一个 #+STARTUP: level-2
,然后给 org-mode 提补丁,造福大家。
其实可以用file local variable
是个好主意。如果content
换成content:N
(N为一个数字), 这样会跟现有的冲突吗?
另外这个一直不知道content有目录的意思。
好主意,欢迎大家提交patch。
再试试:
-
全局添加钩子
(add-hook (quote hack-local-variables-hook) (lambda () (let ((symbol (quote goer-org-startup-folded))) (when (and (eq major-mode (quote org-mode)) (boundp symbol)) (let ((value (symbol-value symbol))) (when (and value (integerp value)) (org-shifttab value)))))))
-
添加特定变量到某个文件的开头(这是"cireu"的想法)
# -*- goer-org-startup-folded: 2; -*-
-
再次打开该文件
我的比较简单
在文档末加上
# Local Variables:
# eval: (org-content 4)
# End:
第一次打开的时候Emacs会问你是否执行代码,按!
让Emacs默认执行就好了
相当hack, 是个办法
这个感觉有安全风险, 比如打开一个下载的org文件, 里面eval部分是个删除文件的命令…
这倒不会,emacs会精确记录每个变量是否安全,比如我的custom.el里被写入了
'(safe-local-variable-values (quote ((eval org-content 4))))
哪怕我改了数字,Emacs就要重新问我了。
那可以, 补充字数
这些办法只在首次打开org文件时可行,如果org文件是emacs启动时就打开的,内容通过点击链接的形式加载,如 [elisp:(progn (erase-buffer)(url-insert-file-contents "http://[::1]/org.php?from=home")][首 页]]
,就不会折叠到某一深度,目前我想到的办法是 save-buffer
之后在revert-buffer
刷新一次页面
这个好像是新版本才支持的, 我用emacs 26自带的试了一下没有效果. 你的orgmode是哪个版本?
我是 9.5,应该是在 9.4.x 加入的