Basics
基本操作
C-x s save allC-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 升级/降级标题(列表)项
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
常用快捷键:
C-c n f 查找节点/node,如果没有,新建(f=find)。C-c C-c 完成节点创建。C-c C-k 终止节点创建。C-c n i 在笔记任意位置插入新的节点。C-c C-o 打开到光标所在位置对应的子节点的链接。C-c C-. 返回上一级。M-x org-id-get-created 基于 headline 创建节点。
buffer
选择 buffer
C-x b 在当前窗口切换 bufferC-x 4 b 在另外的窗口切换 bufferC-x 4 C-f 在另外的窗口打开文件C-x 5 b 在另外的 frame 切换 bufferM-x delete-frame 关闭当前 Frame。C-x 0 关闭当前 bufferC-x 1 关闭当前 buffer 以外的所有 bufferC-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 标记光标所在 bufferd 标记光标所在 buffer 为将删除t 取消所有标记,并标记所有未标记的 bufferu 取消光标所在 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
Parsing and Formating Times
问题:
- Windows 日期显示乱码:
(setq system-time-locale "C") 强制使用默认 locale。