10

我正在尝试将文本行转换为 Todos 或 org-mode 中的复选框项目。例如,如果我有:

1号线

2号线

3号线

我想将其转换为

*待办事项第 1 行

*待办事项第 2 行

*待办事项第 3 行

或者

  • [ ] 第 1 行

  • [ ] 第 2 行

  • [ ] 第 3 行

我知道这C-c -会将所选区域转换为列表(source):

  • 1号线

  • 2号线

  • 3号线

但是有没有办法将它转换为带有复选框的列表(或者,Todos 行?)

提前致谢!

4

3 回答 3

11

您可以使用此功能将当前行变成复选框:

更新:也适用于地区

(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

upd:内置方式

从...开始

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从上面应该更快。

于 2013-09-07T07:57:11.357 回答
3

一个非常简单的方法是按照此处的说明进行操作

“要对区域执行此操作,请使用string-insert-rectangle。在要添加前缀的第一行的开头设置标记 ( C- ),将光标移动到要添加前缀的最后一行,然后键入Mx string-insert -rectangle。要对整个缓冲区执行此操作,请键入Cx h Mx string-insert-rectangle

字符串示例可用于您的 TO DO 列表:“* TODO”

Org Mode 将此字符串理解为 TODO 项。

于 2017-08-23T15:59:28.957 回答
1

我突出显示该区域,然后执行C-c -,然后重新突出显示并执行C-u C-c C-x C-b

于 2020-10-27T21:06:40.763 回答