标签 org-mode 下的文章

转自: https://www.cnblogs.com/zhmlzhml/p/12345580.html

一只小白看了大佬的讲解视频结合其他大佬给整理的笔记再结合emacs 官方英文手册,觉得自己的知识好像增加了.

当时自己在全网搜索的时候没有看到那种纯小白的手册,本小白就写了这个,就当奉献社会了.若有不当指出,希望大佬批评指正~

需要声明一个问题,emacs 中有很多命令行操作.本小白在短暂的emacs 生涯中,确实感觉到了命令行操作的高效.可以说,打开了emacs,基本上你就不需要碰鼠标了.(多么美好的事情!!)  当然我也是逼自己用习惯了才感觉出来的.emacs 命令行在之前的博客园也写过,大家可以参考一下~~

(刚刚发现一个问题!我下文中的左右键,全都是键盘左右键!!emacs 基本不用鼠标!!!)

注意:C- 是指按住ctrl再按另一个键,M-是指按住alt再按另一个键.

打开emacs ,(本机为linux debian,windows机应该还需要别的配置...)C-x C-f 后输入一个文件名,注意,后缀是 .org

回车打开它.

基本操作:建立任务(注意注意,这玩意叫任务)

* (星号后加一个空格)是第一极

** (两个星号加空格) 是第二级

...

一直可以到十个*

按住alt敲回车.底下会自动出来同级的* 复制代码

* go home
** do my homework
** watch TV//这个就是alt 回车 之后自动变行
** drink some milk
*** add some sugar
*** 200ml
* go to school

一.显示

其实这样看起来挺难受的

那还有一个可以实现一下缩进

在最开头加

#+STARTUP: indent

(注意冒号后面有个空格)

加上之后,按C-c C-c (就是按两次C-c)

就有缩进了

把这个说完

在开头加这些东西,就会有不同的打开视图.(当然不要一下写好几个)

1 #+STARTUP: overview
2 #+STARTUP: content 
3 #+STARTUP: showall
4 #+STARTUP: showeverything

从上到下依次显示完全

(第一个是默认的,他只能显示一个星的那级,其他的被省略号代替了,当然你要是想打开,按tab,合上就是tab shift一起按.)

注意一下3,4的区别.

4可以把包括抽屉在内的全部显示.3不显示抽屉.

抽屉的代码:

1 : PROPERTIES
2 这是抽屉//两个东西之间的就是抽屉
3 : END

二.时间

如何在任务管理中插入时间呢.

时间分为激活时间和未激活时间

1.激活时间命令

C-c .(英文状态的句号)

然后他会给你一个日历,你可以手动选哪天,也可以直接写上  +1  这样的表示往后推一天.

如果需要具体时间,就自己打上就行.

激活时间是这个样子的<2001-06-15  五>,后面是星期几,如果忘记了命令,也可以手动打上这个样子,他也会变成应该的颜色.

如果打日期不知道星期几,那就把括号先补全就像这个样子<2001-06-15> 然后光标定在他身上,按C-c C-c,他自己就出来了.

并且,按住shift 再按键盘左右键,他可以变前后日期.

如果鼠标点他,他会出来另一个窗格(emacs 的多窗格特别强大),如果你不需要他,按 C-x 再按1 就行了.

2.非激活

C-c !(英文状态下的感叹号)

显示为[2001-06-15 五]

3.三种时间状态

schedule

C-c C-s

他会让选一个时间,选完了之后,和激活状态不同的是他前面会有SCHEDULE:字样(刚才试了试,自己打也可以,就是有时候会落前后的空格导致失效)

deadline

C-c C-d

closed

这个比较特殊,需要在开头加上

#+STARTUP: updone

(冒号后面有空格不要吃亏)

这个closed就是在你把完成状态定为done 之后,他的时间便不会i再显示.(下一个就讲完成状态!!!!)

三.完成状态

默认完成状态有两种 TODO DONE(颜色分别是红色和绿色)

光标放在在一个任务中,你可以规定他的状态,左边的shift配合键盘左右键,多按几下就看出来规律了.

当然,你可能不满意只有两种状态,那就自定义啊.

在开头写上

#+TODO   TODO(t)  DOWN(d)  WAIT(w)  ARRANGE(a)

(这种的弄完了以后一定要按C-c C-c,光标别忘定在那一排上)

TODO(t)  DOWN(d)  WAIT(w)  ARRANGE(a)这些完全是自己写,规格就是大写(一个字母)那一个字母是快捷键

可以用快捷键换这个状态,当然我会选择直接shift 加左右键

当然,如果你自己定义的里面没有写原来的TODO DONE那底下的这两个也会自动失去他们的颜色(就是失效)

四.标签

光标定在所需要行,C-c C-c 召唤标签,可以看出在下面出现 tags: 输入后回车就可以插入标签了.

(所以在上面的操作中,如果你不把光标定在#+那一排,你召唤的是标签)

自定义标签

开头写

#+TAGS:  学校(s)     家(h)     school (a)   home(b)

C-c C-c 之后,

再找你需要标签的那行 C-c C-c,他会给你显示你刚刚最上面输的那几个选项.你按小括号里的那个字母就可以定上他所代表的标签.

注意:可以插入多个标签,插入结束后回车.

五.agenda

这样就算是写完了,C -x C-s 保存之后,C-c [ (英文模式的左中括号)将他设置成agenda 格式

然后M-x 输入 org-agenda 他会询问你显示什么,你根据他的询问按他前面的那个字母就行了.

  

总之,这是一个我觉得挺漂亮还很强大的一个编辑器.

多说一句,用了emacs 以后很容易发现Ctrl键是多么的脆弱,每天都在不停地被戳.

希望这篇能对大家有帮助吧!

为了自己,和那些爱你的人

背景

观看 https://www.youtube.com/watch?v=oJTwQvgfgMM 时的记录

起因

文本文件便于读取,比较,版本控制,编译运行等等。而且文本文件用于转化项目,任务等也是很自然的事情,所以才有了 org-mode.

优点

  • 和各种文件,email,聊天工具等等可以 link
  • plain text 表达表格。
  • 可以直接使用 plain text 表达 latex.
  • 可以用于 gtd,父级相应的属性可以传给子级。
  • 可以每天日程安排
  • 表格能够写计算公式,并计算结果

快捷键

  • tab 展开和收起
  • s-tab 全部展开,全部收起
  • m-up, m-down 同一层目录下面的上下移动,m-left, m-right 层级的改变
  • m-s-up, m-s-down 所有层级之间都可以上下移动,m-s-left, m-s-right 层级的改变
  • m-left, m-up ??? 表格列移动交换位置??? (31:00)

段落上下移动

m - up, m - down 段落上移,段落下移。

字符 markup

  • *Bold*, 加粗
  • /italic/, 斜体
  • =verbatim=, 引用等浅色调
  • +strikethrough+, 删除线
  • -,以这个开头的类似于 markdown 中的 +

org-mode 必须增加的三个快捷键

* org-mode activation
  Add the following lines to your Emacs init file to define global
  keys for three commands that are useful in any Emacs buffer, not
  just Org buffers.

  #+BEGIN_SRC emacs-lisp
    (global-set-key (kbd "C-c l") #'org-store-link)
    (global-set-key (kbd "C-c a") #'org-agenda)
    (global-set-key (kbd "C-c a") #'org-agenda)
  #+END_SRC

链接

  • 网络链接,直接 c-c c-l 就可以输入链接和描述了。
  • 文件内链接,需要先在出处 c-c l 或者 m-x org-store-link 来生成链接,然后在需要的地方 c-c c-l,按 up 按键,就可以直接加载刚才保存的文件链接了。

在链接上 c-c c-o 就可以跳转链接了。

表格

  • 第一行,只要输入类似 |some|data|
  • 第二行,只要输入 |- 然后 tab 就可以全部补完
  • 下面每一个格子,都可以通过 tab 来切换
  • m-up, m-down 可以表格中对行进行上下调换, m-left, m-right 可以表格的列进行左右调换。

导出其他格式

  • c-c c-e 导出选择界面
  • h, o 就可以自动打开浏览器,展示刚才导出的 html 格式的文档。
  • 在导出界面中,c-s 可以选择 export scope 是 buffer,还是subtree,也就是是整个文件,还是大纲

增加文档描述

  • #+TITLE: A Gentle Introduction to Org-mode 在文本的任何地方,有这一行,就可以在导出的文件中显示在标题栏。
  • #+OPTIONS: toc:nil, 导出文件没有目录。

源码块

  • <s 然后 tab,然后输入代码的格式,比如 emacs-lisp, ruby 等等
  • 在代码块中使用 c-c ' 就可以打开专门的窗口,来编写代码块。
  • 源码想要导出 html 格式,需要安装 htmlize 才可以。别忘了在 myinit.org 里面增加相应的 use-package.
  • 如果想要执行相应的代码块,那么必须安装了相应的插件

LaTeX

  • - Character: \alpha \rightarrow \beta 这个导出之后,就是 a -> b
  • - $O(n \log n)$ 这个也可以生成类似于 O(n log n)
  • 下面的生成两行表达式
\begin{align*}
  3 * 2 + &= 6 + 1 \\
          &= 7
\end{align*}

literate programming

指的就是 org 里面的代码块,可以用于 init.el中。

  • c-c ; 标记为注释

Todo stuff

  • TODO ... 标记为 todo
  • s-m-<ret>,在上一行结束,按这个组合键,可以立刻进入下一行的todo,直接输入相应内容即可。
  • c-c c-t, 可以在 todo, done, none 三种状态之间循环。
  • s-left, s-right 修改时间戳
  • c-c c-d,可以指定 deadline,使用 s-up, down, left, right 来选择日期。
  • 'c-c a`, agenda
  • 'c-c c-x c-d`,归档完成的事情
  • c-c c-c, capture, capture中输入的好像放到一个 bookmarks 文件里面去了。
  • todo 也可以嵌套。

其他杂项

  • 联系人地址簿 (40:00)
  • blog 可以使用 org2blog,或者 org-publish
  • ox-twbs 可以导出支持 tw 的 html 格式。(46:00)
  • ox-gfm 可以导出支持 github 的 markdown 格式。(46:20)
  • org-drill,可以生成问答小卡片 (46:50)
  • orgzly, 安卓设备上使用 org-mode 来同步的 gtd 工具。
  • entr,服务器上运行的软件,当文件有改变时,执行指定的命令。
  • owncloud, nextcloud, 私有云部署 (54:00)

参考:

Getting Started With Org Mode
https://www.youtube.com/watch?v=SzA2YODtgK4

github: Harry R. Schwartz
https://github.com/hrs

dotfiles/emacs/dot-emacs.d/configuration.org
https://github.com/hrs/dotfiles/blob/main/emacs/dot-emacs.d/configuration.org