0%

org-mode-trial

学习使用org-mode

官方文档

The Org Manual

Your life in plain text

时间没办法管理,只能管理任务

官方文档的单词

英文中文
reproducible可复制的
Outliner大纲编辑器
sheer陡峭的
derivative衍生
terminology术语

前置知识

什么是自由软件

“自由软件”尊重用户的自由,并且尊重整个社区。粗略来讲,一个软件如果是自由软件,这意味着用户可以自由地运行,拷贝,分发,学习,修改并改进该软件。因此,“自由软件”是关乎自由的问题,与价格无关。要理解这个概念,你要按照 Free Software 中的“Free”是指“自由言论(free speech)”中的自由,而非“免费午餐(free lunch)”的免费这一意项。为避免歧义,在使用英文时,我们也会借用法语或西班牙语的“Libre Software”来指自由软件,这样可以明确表示我们说得不是免费。

你可能花钱购买了自由软件的拷贝,也可能免费拿到。但是无论你如何获得你的拷贝,你都有自由复制和修改该软件,乃至 出售 该软件的拷贝。

参考文献

GTD

GTD就是Getting Things Done的缩写,意思是“把需要做的事情处理好”,是一个管理时间的方法。GTD的核心理念概括就是必须记录下来要做的事,然后整理安排并使自己一一去执行。GTD的五个核心原则是:收集、整理、组织、回顾、执行。

emacs中的buffer概念

在 Emacs 编辑器中,Buffer(缓冲区)是一个非常重要的概念。Buffer 是 Emacs 用来存储文件或者其他信息的数据结构。你可以把 Buffer 看作是 Emacs 中打开的“文档”。

当你使用 Emacs 打开一个文件时,Emacs 会将文件的内容加载到一个新的 Buffer 中。在这个 Buffer 中,你可以对文件内容进行编辑、搜索、替换等操作。当你对文件进行修改后,可以将 Buffer 中的内容保存回文件,这样文件就会更新为你编辑过的新内容。

实际上,Emacs 中的大部分操作都是针对 Buffer 进行的。除了用于存储文件内容的 Buffer 之外,还有很多其他类型的 Buffer。例如:

  • Emacs 启动时会显示一个名为 “scratch” 的 Buffer,这是一个用于输入临时文本或 Lisp 表达式的 Buffer。
  • 执行命令时,命令的输出会显示在名为 “Messages” 的 Buffer 中。
  • 在运行一个 REPL(如 Python,Shell 等)时,会在名为 “Python” 或 “Shell” 的 Buffer 中进行交互。

总之,在 Emacs 编辑器中,几乎所有的操作都涉及到 Buffer。学会有效地管理和操作各种 Buffer 是使用 Emacs 的关键。

参考文献

可以用org-mode做什么有趣的事?

讲的比较全:利用Org-mode处理TODO的探索之路(1)

Org Mode学习(一)Windows安装Emacs,配置Org mode

【Emacs】19岁小哥带你了解org-mode的神奇之处-01

主题如何安装:Emacs Org Mode的“闲言碎语”

Emacs高手修炼手册,配套笔记

  • 工作任务管理、时间管理、工作记录,这些是org-mode的基本功能。
  • 用org-roam进行知识管理。
  • 结合ox-hugo生成网页。
  • 在Org mode中,您可以使用“org-agenda”命令来打开任务列表。在任务列表中,按下“/”键后,输入过滤条件即可筛选出符合条件的任务。您还可以使用“M-x org-search-view”命令进行更高级的搜索和筛选。

现阶段体验

  • 学习成本很高
  • 没找到live preview的工具配合
  • 一些高级的总结如何写脚本解决

问题

C-x 被识别为 C-M-x emacs

C-x 是 Emacs 中的一种按键绑定,用于执行命令。在 Emacs 中,C-x(表示 Ctrl 键和 x 键)是保留给主要操作的,如保存、退出等。

C-M-x 是指 Ctrl + Meta(一般是 Alt 键)+ x。

如果你在使用 Emacs 时,C-x 被识别为 C-M-x,可能是键盘布局或系统设置的问题。请检查你的键盘设置和 Emacs 配置文件(如 .emacs),确保按键绑定没有被错误地重新定义。如果问题仍然存在,可以尝试在 Emacs 配置文件中添加以下代码,将 C-x 映射回默认设置:

(global-set-key (kbd "C-x") 'Control-X-prefix)

这将帮助您恢复 C-x 的正常功能。

奇怪的bug

restart装不了?

Debugger entered—Lisp error: (error “Package ‘restart-emacs-’ is unavailable”)
error(“Package `%s-%s’ is unavailable” restart-emacs “”)
package-compute-transaction(nil ((restart-emacs)))

装不了这个package。。

smart-mode-line装不了

Debugger entered—Lisp error: (error “Package ‘smart-mode-line-’ is unavailable”)

【未解决】问题eval-buffer还是会去找清华的源

重启emacs让配置生效

emacs的使用

查看版本,M-x emacs-version

M对饮alt

  • C-n,下一行(速记:Nextline)
  • C-p,前一行(速记:Previous line)
  • C-f,向前移动一个字符(速记:Forward)
  • C-b,向后退一个字符(速记:Backforward)
  • C-k,从光标位置到末尾删掉(速记:Kill)
  • C-a,回到行首(速记:ahead)
  • C-e,去往行尾(速记:End of line)
  • M-a,光标移至句首
  • M-e,光标移至句尾
  • M-<,回到编辑区域最开始位置(速记:<)
  • M->,去往编辑区域最后的位置(速记:>)
  • C-v,向下翻一屏
  • M-v,向上翻一屏
  • C-x 1,关掉无用的窗口
  • C-x C-s,保存
  • C-x C-f,打开文件
  • M-w,复制
  • C-w,剪贴wipe out
  • C-y,粘贴
  • C-x C-b,查看已打开的缓冲区
  • C-x o ,切换窗口(other-window)
  • C-x 0,关闭当前窗口
  • C-x k,关闭当前buffer
  • C-x C-e,执行
  • C-x i,插入文件
  • TODO,在工作buffer和init-buffer之间来回切换
  • C-x b,切换到上次的buffer
  • C-g,取消动作
  • C-/,undo,撤销
  • M-x kill-buffer,关闭当前buffer
  • C-x n s,只聚焦这一行的内容
  • C-f,启动查找
  • C-s,查找下一处
  • C-r,查找上一处
  • C-S-RET,在下一行插入一个TODO
  • C-c C-c,refresh当前缓冲区

启动界面的配置

可以指向一个导航文件

将语言设置为utf-8

代码详情
1
2
3
4
5
6
7
(when (fboundp 'set-charset-priority)
(set-charset-priority 'unicode))
(prefer-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(setq system-time-locale "C")
(unless (eq system-type 'windows-nt)
(set-selection-coding-system 'utf-8))

参考文献

emacs中使用shell

M-x shell

参考文献

如何知道配置文件的地址

C-x C-f ~

参考文献

优秀的前辈配置

  • Spacemacs
  • Centaur Emacs
  • Doom Emacs
  • Steve Purcell
  • redguardtoo(陈斌,一年成为emacs高手作者)

重新载入emacs的配置

  • M-x eval-last-sexp 使当前 elisp 配置中光标前的那一条语句立刻生效;
  • M-x eval-region 使当前 elisp 配置中选中的 region 中的语句立刻生效;
  • M-x eval-buffer,使当前的 buffer 中的设置语句立刻生效;
  • M-x load-file ~/.emacs,载入 .emacs 文件,从而使其中的设置生效,要生效其它 elisp 文件只需要把 .emacs 文件名换成其它的即可。

org mode的使用

org-mode的注释

Bug?

Org-mode heading and blank lines,每一个heading之间有空行

如果你的header和你的正文有空白行,他就会给你自动加空白行,并且如果你修改deadline的话,会另外起一行,而不会修改deadline

参考文献

agenda没有展示done item

需要的功能

快捷键

  • S-左右方向键:在待办事项中切换状态
  • C-c / t: 显示当前所有的TODO状态的待办事项。
  • C-c C-x C-a:归档
  • M-enter:在某项任务的所在行按回车,会新建一个任务
  • M-RIGHT:将某个任务调低位级别(Demote the current subtree by one level.)
  • M-LEFT:调低某个任务的级别(Promote the current subtree by one level.)
  • tab:折叠任务
  • C-c .:激活的时间标签。用来记录一个确定会发生的事情的时间,比如开会什么的
  • C-c !:非激活的时间标签,insert an inactive timestamp that does not cause an agenda entry.我自己感觉可以用来记录这个项目的插入时间
  • C-u C-c .,默认带上时间的激活标签
  • C-c C-s,设置schedule
  • C-c C-d,设置deadline,截止时间
  • C-c C-t,设置TODO
  • C-u TAB or S-TAB,Rotate the entire buffer among the states
  • M-S-RET,插入一个新的checkbox
  • C-c C-c,改变checkbox的状态
  • S-UP/DOWN,设置任务的优先级
  • [%][/],给任务设置状态

headers

  • #+STARTUP: indent 每一级header设置缩进
  • #+STARTUP: content 只显示headlines
  • #+STARTUP: showall all entires,no drawer
  • #+STARTUP: showeverything show enven drawer

时间标签

  • 激活的时间标签 C-c .,尖括号,可以直接输入具体的时间,在所在位置直接
  • 非激活的时间标签C-c !,中括号
  • C-u C-c .,默认带上时间的激活标签
  • +1 日期加1
  • 31,直接输入日期,这个月的31号
  • 07-18,直接输入日期,这个7月的18号号
  • C-c C-c,修正时间
  • --,时间区间
  • S-RIGHT,往后一天

时间标签的三种状态

  • C-c C-u,设置schedule,开始时间
  • C-c C-u,设置deadline,截止时间
  • C-u,加小时分钟
  • 一定确定的时间不要打schedule
  • #+STARTUP: logdone,记录完成时间

GTD

文献

  • inbox:org-mode,capture
  • context:org-mode,tag。按照场地设置情景,跟谁一起去做

context(tag)

#+TAGS: #tom(t) #jerry(j)
#+TAGS: 技术(t) 软实力(j)
#+TAGS: @home(h) @metro(m) @work(w)

agenda

  • C-c [,将这个文件交给agenda管理
  • M-x org-agendaab上一个星期,f下一个星期,g刷新,s保存
  • q,退出agenda视图

a

  • f, (org-agenda-later) ,查看下一周
  • b,(org-agenda-earlier),查看上一周

what does “Sched. 5x” mean?

参考文献

自定义颜色

参考文献

(global-set-key (kbd "C-c l") #'org-store-link)

org-capture

(global-set-key (kbd "C-c c") #'org-capture)

org-clock,记录时间的持续时间

  • C-c C-x C-i ,(org-clock-in)
  • C-c C-x C-o ,(org-clock-out)

logdone

参考文献

Documentation for Org hooks, commands and options

默认展示状态

overview

参考文献

像google canlenda一样展示

参考文献

drawer

代码详情
1
2
3
:PROPERTIES:
这是一个drawer
:END:

配置设置状态

header中设置

#+TODO: TODO IN-PROGRESS WAITING DONE

emacs配置文件中添加

代码详情
1
2
(setq org-todo-keywords
'((sequence "TODO" "IN-PROGRESS" "WAITING" "DONE")))

忽略不存在的org agenda file

C-h v org-agenda-skip-unavailable-files

每隔1s自动保存

好像没办法做到

当父节点完成的时候,子节点自动标记为完成。当子节点全部完成的时候,父节点也完成。

【TODO】创建一个循环的事件

repeating task
参考文献

8.1 Calendar/Diary 支持

参考文献

【TODO】org properties的使用

当deadline改变的话记录下

#+STARTUP: logdone lognoteredeadline logredeadline lognotereschedule logreschedule

参考文献

安卓端使用org

同步

  • 使用mgit同步文件

编辑

参考文献

参考文献

Org mode学习(三)使用Org mode制作待办事项

Org Mode - 年轻人的第一堂时间管理课程

Org-mode,最强的任务管理利器,没有之一

好像可以实现发邮件,还不清楚

The Org Manual 笔记

官方文档structure hotkey

orgmode手册学习笔记

org cn