一开始我输入第一个列表的时候,是这样的:
这个时候我按RET
并TAB
产生一个子列表,变成了这样:
可以看到org-mode
把子列表缩进到了父列表的描述那里。然后我用M-RET
自动生成第二个子列表的item,变成了这样:
可以看到org-mode
按照某个变量的值(可能是org-indent-indentation-per-level
之类)在生成第二个列表元素之前缩进了一下。
我的问题是,在嵌套的描述列表里能否让org-mode
只按某一种方式来缩进?
另外,如果此时再执行indent-buffer
,缩进又会变成另一种了。。。
TAB(图2)是对内容的缩进,受 org-list-description-max-indent
的影响:若 descriptive list 的第一行的 description 和内容长度之和 超过 org-list-description-max-indent
,则缩进值为 5 ,否则缩进到 ::
后面内容处。
参考函数 org-list-item-body-column
。
M-RET(图3)是自动插入 descriptive list,调用函数 org-insert-item
,受 org-list-indent-offset
的影响。
我试了一下把org-list-description-max-indent
设成 0或 2,此时 TAB 的缩进看起来是 5(不算-空格
的话是 3)。
然后M-RET
的时候,还是会再缩进一次变为缩进 2,此时我看了一下org-list-indent-offset
的值却是 0。。
有没有非常简单的方法,可以令它变成跟普通列表一样,子列表缩进任何情况都为 2。。
可能作者这么做是为了分清 descriptive list 和普通的 list 吧。
不清楚有没有其它更好的方法,可以试试把函数 org-list-item-body-column
中 (+ ind 5)
这行改为 (+ ind 2)
。
我理解可能是为了区分,但为什么M-RET
的时候又让它变。。。无法理解作者。。试了,还是不行。。哪种方案都没问题,我只是想让它在更种环境、操作下都保持不变。。
我这里将 5 改为 2 是可以的,保险起见我也将 org-list-description-max-indent
设置为了 0。
要不用 emacs -q
启动试试。