我正在尝试将文本行转换为 Todos 或 org-mode 中的复选框项目。例如,如果我有:
1号线
2号线
3号线
我想将其转换为
*待办事项第 1 行
*待办事项第 2 行
*待办事项第 3 行
或者
[ ] 第 1 行
[ ] 第 2 行
[ ] 第 3 行
我知道这C-c -
会将所选区域转换为列表(source):
1号线
2号线
3号线
但是有没有办法将它转换为带有复选框的列表(或者,Todos 行?)
提前致谢!
您可以使用此功能将当前行变成复选框:
(defun org-set-line-checkbox (arg)
(interactive "P")
(let ((n (or arg 1)))
(when (region-active-p)
(setq n (count-lines (region-beginning)
(region-end)))
(goto-char (region-beginning)))
(dotimes (i n)
(beginning-of-line)
(insert "- [ ] ")
(forward-line))
(beginning-of-line)))
所以现在,从:
Line 1
Line 2
Line 3
与C-3 C-c c您一起获得:
- [ ] Line 1
- [ ] Line 2
- [ ] Line 3
现在C-c C-*您可以获得:
* TODO Line 1
* TODO Line 2
* TODO Line 3
从...开始
Line 1
Line 2
Line 3
与C-x h C-u C-c -您一起获得:
- Line 1
- Line 2
- Line 3
之后,C-x h C-u C-c C-x C-b您将获得:
- [ ] Line 1
- [ ] Line 2
- [ ] Line 3
但这相当笨拙,org-set-line-checkbox
从上面应该更快。
一个非常简单的方法是按照此处的说明进行操作:
“要对区域执行此操作,请使用string-insert-rectangle。在要添加前缀的第一行的开头设置标记 ( C- ),将光标移动到要添加前缀的最后一行,然后键入Mx string-insert -rectangle。要对整个缓冲区执行此操作,请键入Cx h Mx string-insert-rectangle。
字符串示例可用于您的 TO DO 列表:“* TODO”
Org Mode 将此字符串理解为 TODO 项。
我突出显示该区域,然后执行C-c -
,然后重新突出显示并执行C-u C-c C-x C-b
。