Basics

基本操作

  • C-x s save all
  • C-h C-q 快速帮助(常用快捷键),再次按快捷键关闭快速帮助。
  • C-h ? 帮助,查看快捷键。没有长命令。 q 退出帮助界面。
  • C-v 向下翻页
  • M-v 向上翻页
  • C-l 光标移动到屏幕中央/上方/下方。
  • C-space Mark 模式,选择文本。
  • C-x space Mark Set,矩形选区。

区块操作

Emacs: Edit Column Text, Rectangle

  • C-x r k 删除矩形选区(M-x kill-rectangle)
    • C-space 选择区域之后,按 C-x r k 将删除 起点 到 终点 之间的矩形选取。
  • C-x r t 替换矩形选取(M-x replace-rectangle)
    • C-space 选择区域后,按 C-x r t 替换矩形区域的文本。
  • C-x r y 将 kill-rectangle 的文本粘贴到选定的矩形区域。
  • C-x r N 插入数字列(rectangle-number-lines)
  • C-u + C-x r N 插入自定义列表
    • %2d 默认格式,两位的数字。
    • %c 字母列表 A-Z。

自定义家目录与配置文件路径

Windows 环境,默认的配置路径是 "C:\Users\{YourUserName}\.emacs.d" ,配置内容多起来有很多三方依赖、缓存数据等,越来越大,想要放到其盘,比如 F:/。

  • 在 emacs 安装目录下 ".\emacs-29.1\share\emacs\site-lisp\" 添加一个文件 "site-start.el"
    (defun set-home-dir (dir)
      "Set a new HOME directory. This is where Emacs will look for init files and
       where '~' will default to."
      (setenv "HOME" dir)
      (message (format "HOME location is %s" (getenv "HOME"))))
    
    (set-home-dir "F:/")
    

Org Mode

Cheat Sheet

参考文章

  • M-f 将光标右移一个单词
  • M-b 将光标左移一个单词
  • C-l 将当前光标所在行移动到屏幕中央(注意:这里是字母L)
  • C-a 将光标移到行首
  • C-e 将光标移到行尾
  • C-c C-l : 在光标出插入超链接
  • M-r move-to-window-line-top-bottom 将光标移动到窗口的上/下/中间
  • 列表
    • M+RET 插入一个同级新列表项
    • M+S+RET 插入一个带复选框的同级新列表项
    • C-c C-c 改变复选框状态
    • C-c - 循环改变列表类型
  • 标题
    • C-RET 在后面插入一个同级标题
    • C-S-RET 后面插入一个TODO同级标题
    • M-RET 在下面插入一个同级标题(列表)
    • M-C-RET 在下面插入一个 TODO 同级标题/在下面插入一个同级带复选框的列表
    • C-c * 将本行设为标题/正文
    • M-UP/DOWN 移动标题(列表)项
    • M-LEFT/RIGHT 升级/降级标题(列表)项

Tags orgtag

emacs guide

  • 添加标签
    • tag 的格式:字母、数字、’_‘和’@’。
    • C-c C-q 在光标所在区域的标题上添加 tag。
    • C-c C-c 当光标在标题行时,添加 tag。
  • 文件的 tags
    • 默认:包含当前 buffer 内所有 tag。
    • hard:可以硬指定一组 tags
      • (setq org-tag-alist '("t1" "t2" "t3")) 指定一组全局的的标签。
      • #+TAGS: @work @home @tennisclub 在文件中添加文件头 TAGS。
      • #+TAGS: laptop car pc sailboat 另一种写法。
    • fast tag selection 通过单个键快速搜索
      • 全局设置 (setq org-tag-alist '(("@work" . ?w) ("@home" . ?h) ("laptop" . ?l)))
      • 单个文件设置 #+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p)
  • tag group
    • #+TAGS: [ GTD : Control Persp ]
    • #+TAGS: { Context : @Home @Work } 组内 tag 互斥。
    • 忽略组 tag 命令 org-toggle-tags-groups 对应快捷键 C-c C-x q
  • 搜索标签
    • C-c / m 或者 C-c \ 在当前 buffer 中搜索。加上 C-u 忽略不是 TODO 的标题行。
    • M-x org-agenda m Create a global list of tag matches from all agenda files.
    • M-x org-agenda M Create a global list of tag matches from all agenda files, but check only TODO items and force checking subitems.

Org-roam orgroam

常用快捷键:

  1. C-c n f 查找节点/node,如果没有,新建(f=find)。
  2. C-c C-c 完成节点创建。
  3. C-c C-k 终止节点创建。
  4. C-c n i 在笔记任意位置插入新的节点。
  5. C-c C-o 打开到光标所在位置对应的子节点的链接。
  6. C-c C-. 返回上一级。
  7. M-x org-id-get-created 基于 headline 创建节点。

buffer

选择 buffer

  • C-x b 在当前窗口切换 buffer
  • C-x 4 b 在另外的窗口切换 buffer
  • C-x 4 C-f 在另外的窗口打开文件
  • C-x 5 b 在另外的 frame 切换 buffer
  • M-x delete-frame 关闭当前 Frame。
  • C-x 0 关闭当前 buffer
  • C-x 1 关闭当前 buffer 以外的所有 buffer
  • C-x 2 将当前 buffer 上下分屏
  • C-x 3 将当前 buffer 左右分屏

Ibuffer

(global-set-key (kbd "C-x C-b") 'ibuffer) 绑定快捷键,~C-x C-b~ 进入 ibuffer 模式。 buffer 管理与 ibuffer的介绍与使用–知乎

标记

  • m 标记光标所在 buffer
  • d 标记光标所在 buffer 为将删除
  • t 取消所有标记,并标记所有未标记的 buffer
  • u 取消光标所在 buffer 标记
  • U 取消所有标记

筛选

  • / 根据所有的 major mode 筛选
  • / m 根据 buffer 中使用的 major mode 筛选(major mode in use)
  • / n 根据 buffer name 进行筛选
  • / c 根据 buffer 内容进行筛选(c for contents)
  • / b 根据文件基础名字(不带扩展名)进行筛选
  • / F 根据目录名进行筛选(不含文件名)
  • / f 根据文件名进行筛选(绝对路径名)
  • / . 根据扩展名进行筛选
  • / i 筛选处于 modified 的 buffer

排序

  • , 切换排序方式
  • s i 对当前排序逆序排列
  • s a 字母排序
  • s f 文件名
  • s v 最近访问
  • s s 根据文件大小排序

Emacs Lisp

time string format

Parsing and Formating Times

  • %a 缩写的星期几
  • %A 全称的星期几

问题:

  • Windows 日期显示乱码: (setq system-time-locale "C") 强制使用默认 locale。
目录