Org-mode
跳到导航
跳到搜索
Emacs 的 Org-mode 在一定程度上可以替代 OneNote,有些方面甚至更好
目录
pre
Emacs键盘命令的约定表示方法: C 代表 Ctrl 键 M 代表 Alt 键 S 代表 Shift 键 以上三个按键单独按下没有意义,用 - 号表示它们搭配使用的按键 用空格连接的一系列符号表示顺序按下符号所代表的按键 其他符号: LEFT/RIGHT/UP/DOWN 分别代表的左右上下方向键, TAB 即 Tab 键, RET 代表 Enter 键 例如: C-x 表示同时按下Ctrl和x字符键 C-S-TAB 表示同时按下Ctrl, Shift和Tab键 M-x org-mode 表示先同时按下Alt和x字符键,再键盘输入org-mode字符串 C-x C-s 表示先同时按Ctrl和x字符键,然后同时按下Ctrl和s字符键 C-c C-e hh 表示先同时按Ctrl和c字符键,然后同时按下Ctrl和e字符键,最后键盘输入hh
install
vi ~/.emacs #添加源 (require 'package) (add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t) # 如果用老版本的emacs 或者你想安装 Get it with M-x package-install RET org RET (
进入Org模式
C-x C-f ~/test/test.org 1.打开后缀名为org的文件自动进入org-mode模式 2.在init.el配置文件中设置某类文件的编辑模式为org,如txt类文件: (add-to-list 'auto-mode-alist '("\\.txt\\'" . org-mode)) 3.用Emacs打开文件后使用主模式选择命令( M-x org-mode ) 4.任意文件名,如果文件的第一个非空行包含: -*-org-*- ,用Emacs打开该文件后会自动使用org-mode模式。 后面这种方式对于使用Emacs编辑程序文件尤其方便,无需改变文件的后缀名。
TODO
输入C-c . 会出现一个日历,我们点选相应的时间即可插入 * 待办事项(TODO ) TODO是org-mode最具特色的一个功能,也是org-mode设计的初衷,org-mode的作者本意是用其来完成一个个人时间管理程序(GDT)。因此,可以用org-mode来做一个个人时间管理工具! 下面我们来看怎么写TODO。TODO 也是一类标题,因此也需要用*开头,在Emacs中输入 * 然后快捷键如下 C-c C-t 按照 无状态->TODO->DONE->无状态 的顺序更改任务状态 ** TODO 洗衣服 可以看到当中的TODO变成了红色,我们讲光标移到该行,按C-c C-t,则发现TODO变成了DONE(这个序列可以自己定义,详见org-mode手册)。org-mode兼有了标题和列表的功能,也可以添加checkbox和完成进度,除此之外,还可以设计优先级。 我们输入: *** TODO [# A] 任务1 *** TODO [# B] 任务2 *** TODO 总任务 [33%] **** TODO 子任务1 **** TODO 子任务2 [0%] - [-] subsub1 [1/2] - [ ] subsub2 - [X] subsub3 **** DONE 一个已完成的任务 一些常用操作如下: - C-c C-t 变换TODO的状态 - C-c / t以树的形式展示所有的 TODO - C-c C-c 改变 checkbox状态 - C-c, 设置优先级(方括号里的ABC) - M-S-RET 插入同级TODO标
快速创建任务的操作
快捷键 功能 备注(return is enter) M-<return> 在当前 headline 后建立一个同级 headline 无 headline 时创建一个一级 headline M-S-return 在当前任务后建立一个同级任务,标记为TODO(好像无效) 同下 (这个试过有效) C-S-return 在当前任务的内容后面建立一个同级任务,标记为TODO 无任务时创建一级任务,标记为TODO
自定义状态序列
如果只想在某个文件中为其设置独有的关键词序列,那么可以在org文件的头部用"#+SEQ_TODO"来进行设置: ;+SEQ_TODO: TODO DOING DONE ;我的emacs 配置 .emacs (setq org-todo-keywords '((sequence "TODO" "DOING" "DONE"))) (setq org-todo-keyword-faces '(("TODO" . "red") ("DOING" . "yellow") ("DONE" . "green"))) ;去掉了 TODO (setq org-todo-keywords '((sequence "DOING" "DONE"))) (setq org-todo-keyword-faces '(("DOING" . "red")("DONE" . "green")))
基本语法
除了 headline 外,Org mode 还支持列表、文字修饰(粗体、斜体、下划线等)、代码块、引用等常见的功能
基本的任务管理
快捷键 功能 备注 C-c C-t 按照 无状态->TODO->DONE->无状态 的顺序更改任务状态 org-todo Shift-<right> 同上 Shift-<left> 按照与 Shift-<right> 相反的顺序更改任务状态
标题编辑
M-S-LEFT/RIGHT 升级/降级标题树,即标题树内的各级标题相应升/降级
https://blog.csdn.net/u014801157/article/details/24372485
org 图片
[file://home/evan/wallpaper/f.jpg] 填写地址时 要先写 [[ 最后再 ]] 不过显示时就没了 ,还有 记得有快捷 键 有空找找 ctrl+l 什么来着 国 外强大的表达 an image without description [[file:/tmp/image.png]] an image with description [[file:/tmp/image.png][my description]] emacs gui alt+x org-toggle-inline-images 回车就显示了 ,cli 下好像是不显示的 要images 什么的支持吧 不过一般不用命令而是用快快捷 键 显示图片 快键 You can run the command ‘org-toggle-inline-images’ with C-c C-x C-v 152 images displayed inline 中文表达如下 使用如下标签插入图片,使用C-c C-x C-v inline方式显示图片,或者使用C-c C-o打开链接。 [[file:a.png]] #添加到 .emacs ; iimage-mode 听说现在是内置的了 不用什么 iimage.el了 ;; 显示图片 (auto-image-file-mode t) (defun do-org-show-all-inline-images () (interactive) (org-display-inline-images t t)) (global-set-key (kbd "C-c C-x C v") 'do-org-show-all-inline-images)
TODO Capture the image
: ;; screenshot in org-mode : ;; modified by [email protected] : ;; based on [http://praktikanten.brueckenschlaeger.org/2010/11/28/screenshots-in-org-mode] : (defun my-screenshot () : "Take a screenshot into a unique-named file in the current buffer file : directory and insert a link to this file." : (interactive) : (setq filename : (concat (make-temp-name : (concat (file-name-directory (buffer-file-name)) "images/" ) ) ".png")) : (if (file-accessible-directory-p (concat (file-name-directory (buffer-file-name)) "images/")) : nil : (make-directory "images")) : (call-process-shell-command "scrot" nil nil nil nil "-s" (concat "\"" filename "\"" )) : (insert (concat "[[" filename "]]")) : (org-display-inline-images) : ) : : (global-set-key (kbd "s-s") 'my-screenshot) 使用说明 按win-s键,然后用鼠标划要截屏的范围。这一部分会保存在当前org文件的目录下的images目录下,文件名随机。如果该目录不存在,会自动建立。 依赖; scrot 0.8-11 command line screen capture utility
图片进阶
插入源代码
手工插入代码块 只有 shell 标识符 为sh 其它常见都一样 #+BEGIN_SRC sh youshell #+END_SRC org-mode除了可以直接插入源代码之外,可以直接求出运行结果,这也是其强大之处,在使用之前,需要在.emacs配置文件中设置加载的运行语言: (org-babel-do-load-languages 'org-babel-load-languages '( (sh . t) (python . t) (R . t) (ruby . t) (ditaa . t) (dot . t) (octave . t) (sqlite . t) (perl . t) (C . t) )) 设置好之后输入: # +BEGIN_SRC emacs-lisp (+ 1 2 3 4) # +END_SRC 将光标移到代码块内,按C-c C-c,org-mode会自动添加如下一行: # +RESULTS: : 10 这正是该代码的计算结果。下面试一试Python代码: # +BEGIN_SRC python :results output a = 1+1 print a # +END_SRC # +RESULTS: : 2 下面测试一下C语言 # +begin_src C++ :includes <stdio.h> int a=1; int b=1; printf("%d\n", a+b); # +end_src # +RESULTS: : 2 常用快捷键: - C-c C-c 对当前代码块求值