在org-mode中将文本行转换为Todos或Check框

时间:2013-09-06 22:15:37

标签: org-mode

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

  

第1行

     

第2行

     

第3行

我想将其转换为

  

* TODO第1行

     

* TODO第2行

     

* TODO第3行

  
      
  • []第1行

  •   
  • []第2行

  •   
  • []第3行

  •   

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

  
      
  • 第1行

  •   
  • 第2行

  •   
  • 第3行

  •   

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

提前致谢!

3 个答案:

答案 0 :(得分:10)

您可以使用此功能将当前行设为 复选框(ES):

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来自上方 应该更快。

答案 1 :(得分:1)

执行此操作的一种非常简单的方法是following the instructions here

  

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

字符串示例可用于您的待办事项列表:" * TODO"

组织模式将此字符串理解为TODO项目。

答案 2 :(得分:0)

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