【问题标题】:Convert lines of text into Todos or Check boxes in org-mode将文本行转换为组织模式中的待办事项或复选框
【发布时间】:2013-09-06 22:15:37
【问题描述】:

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

第 1 行

第 2 行

第 3 行

我想将其转换为任一

*TODO 第 1 行

*TODO 第 2 行

*TODO 第 3 行

  • [ ] 第 1 行

  • [ ] 第 2 行

  • [ ] 第 3 行

我知道C-c -会将选中区域转换成列表(source):

  • 第 1 行

  • 第 2 行

  • 第 3 行

但是有什么方法可以将其转换为带有复选框的列表(或者,Todos 行?)

提前致谢!

【问题讨论】:

  • 您可以使用C-x C-r C-t 或为此定义宏吗?
  • @SlavenRezic,我喜欢内置的方式,但是那个键组合让我处于某种read-only 模式。从“结构化编辑”部分的orgmode.org/orgcard.txt,我发现 C-c * 将行转换为部分。我将寻找一种将行转换为 TODO 的方法。但是 abo-abo 下面的答案有复选框的按键。
  • 对不起,这应该是C-x r t(命令字符串矩形)。

标签: org-mode


【解决方案1】:

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

upd:也适用于区域

(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 应该更快。

【讨论】:

  • 谢谢@abo-abo!我很惊讶这还没有内置到 org-mode 中。如果我是第一个想要这样功能的人,我会感到惊讶。我还不是很流利地为 emacs 编写函数。如何修改您的功能,以便我可以对某些选定的文本区域执行 C-c c 并且所有这些行都会变成复选框?
  • 再次感谢@abo-abo。顺便说一句,您可以使用 org 的内置功能来使用 C-c - 而不是 C-x h C-u C-c - :-)
  • C-u C-c C-c 也可以像 C-u C-c C-x C-b 一样将列表项变成复选框项。所以选择整个列表并按 C-u C-c C-c 应该会产生相同的结果。
  • @Sardtok, C-u C-c C-c 仅在您选择了列表区域并且该点位于列表中的第一项时才有效。 C-u C-c C-x C-b 适用于列表的任何选定区域,无论该点位于何处。此信息记录在orgmode.org/manual/Checkboxes.html
【解决方案2】:

following the instructions here 是一个非常简单的方法:

"要对一个区域执行此操作,请使用 string-insert-rectangle。设置标记 (C-) 在你想要添加前缀的第一行的开头, 将光标移动到要添加前缀的最后一行,然后键入 M-x 字符串插入矩形。要对整个缓冲区执行此操作,请键入 C-x h M-x string-insert-rectangle 。"

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      相关资源
      最近更新 更多