Emacs学习笔记
安装
cp emacs ~/.emacs
cp -r emacs.d ~/.emacs.d
快捷键
Linux
- Disable All Menu Access Keys
Edit->Keyboard Shortcuts->Disable all menu access keys
Mac
文件操作
按键 | 作用 |
C-x C-f | 查找文件并且在新缓冲区中打开 |
C-x C-v | 读入另一个文件替换掉用C-x C-f打开的文件 |
C-x i | 把文件插入到光标的当前位置 |
C-x C-s | 保存文件 |
C-x C-w | 把缓冲区内容写入一个文件 |
C-x C-c | 退出Emacs |
重新加载文件
按键 | 命令 | 作用 |
F5 | revert-buffer | 重新加载当前文件 |
C-F5 | revert-buffer-with-coding-system | 重新加载当前文件 |
Ctags操作
按键 | 作用 |
M-. | 查找一个tag,比如函数定义类型定义等 |
C-u M-. | 查找下一个tag的位置 |
M-* | 回到上一次运行M-.前的光标位置 |
M-TAB | 自动补齐函数名 |
光标移动
按键 | 作用 |
C-f | 光标前移一个字符(右) |
C-b | 光标后移一个字符(左) |
C-p | 光标前移一行(上) |
C-n | 光标后移一行(下) |
M-f | 前移一个单词 |
M-b | 后移一个单词 |
C-a | 移动到行首 |
C-e | 移动到行尾 |
M-e | 前移一个句子 |
M-a | 后移一个句子 |
M-} | 前移一个段落 |
M-{ | 后移一个段落 |
C-v | 屏幕上卷一屏 |
M-v | 屏幕下卷一屏 |
C-x ] | 前移一页 |
C-x [ | 后移一页 |
M-< | 前移到文件头 |
M->; | 后移到文件尾 |
C-l | 重新绘制屏幕,当前行放在画面中心 |
M-n 或 C-u n | 重复执行n次后续命令 |
M-g M-g | 按下M-x后在辅助输入区中输入”goto-line”跳到指定的行 |
文本块操作
按键 | 作用 |
C-@ | 标记文本块的开始(或结束)位置 |
C-x C-x | 互换插入点和文本标记的位置 |
C-w 或 SHIFT-DEL | 删除文本块 |
M-w | 复制文本块 |
M-h | 标记段落 |
C-x C-p | 标记页面 |
C-x h | 标记整个缓冲区 |
Tab C-q Tab | 插入Tab |
列操作
按键 | 作用 |
C-x r k | 剪切矩形块 |
C-x r y | 粘贴矩形块 |
C-x r o | 插入矩形块 |
C-x r c | 删除矩形块 |
C-x r t | 填充矩形块 |
大小写操作
按键 | 作用 |
M-c | 单词首字母改为大写 |
M-u | 单词的字母全部改为大写 |
M-l | 单词的字母全部改为小写 |
删除快捷键
| 按键 | 命令 | 作用 |
删除 | C-d | delete-char | 删除光标处字符 |
| Backspace | delete-backward-char | 删除光标前字符 |
| M-\ | delete-horizontal-space | 删除光标处的所有空格和Tab字符 |
| M-SPC | just-one-space | 删除光标处的所有空格和Tab字符,但留下一个 |
| C-x C-o | delete-blank-lines | 删除光标周围的空白行,保留当前行 |
| M-^ | delete-indentation | 将两行合为一行,删除之间的空白和缩进 |
| C-k | kill-line | 从光标处起删除该行 |
| C-S-Backspace | kill-whole-line | 删除整行 |
| C-w | kill-region | 删除区域 |
| M-w | kill-ring-save | 复制到kill 环,而不删除 |
| M-d | kill-word | 删除光标起一个单词 |
| M-Backspace | backward-kill-word | 删除光标前单词 |
| M-k | kill-sentence | 删除光标起一句 |
| C-x Backspace | backward-kill-sentence | 删除光标前删一句 |
| M-z char | zap-to-char | 删至字符char为止 |
| C-y | yank | 召回 |
| M-y | yank-pop | 召回前一个 |
| C-M-w | append-next-kill | 下一个删掉内容和上次删除合并 |
| C-h v | describe-variable | 显示变量内容 |
| (none) | append-to-buffer | 将区域中内容加入到一个buffer中 |
| (none) | prepend-to-buffer | 将区域中内容加入到一个buffer光标前 |
| (none) | copy-to-buffer | 区域中内容加入到一个buffer中,删除该buffer原有内容 |
| (none) | insert-buffer | 在该位置插入指定的buffer中所有内容 |
| (none) | append-to-file | 将区域中内容复制到一个文件中 |
| (none) | cua-mode | 启用/停用CUA绑定 |
窗口快捷键
按键 | 命令 | 作用 |
C-x 2 | split-window-vertically | 垂直拆分窗口 |
C-x 3 | split-window-horizontally | 水平拆分窗口 |
C-x o | other-window | 选择下一个窗口 |
C-M-v | scroll-other-window | 滚动下一个窗口 |
C-x 4 b | switch-to-buffer-other-window | 在另一个窗口打开缓冲 |
C-x 4 C-o | display-buffer | 在另一个窗口打开缓冲,但不选中 |
C-x 4 f | find-file-other-window | 在另一个窗口打开文件 |
C-x 4 d | dired-other-window | 在另一个窗口打开文件夹 |
C-x 4 m | mail-other-window | 在另一个窗口写邮件 |
C-x 4 r | find-file-read-only-other-window | 在另一个窗口以只读方式打开文件 |
C-x 0 | delete-window | 关闭当前窗口 |
C-x 1 | delete-other-windows | 关闭其它窗口 |
C-x 4 0 | kill-buffer-and-window | 关闭当前窗口和缓冲 |
C-x ^ | enlarge-window | 增高当前窗口 |
C-x { | shrink-window-horizontally | 将当前窗口变窄 |
C-x } | enlarge-window-horizontally | 将当前窗口变宽 |
C-x - | shrink-window-if-larger-than-buffer | 如果窗口比缓冲大就缩小 |
C-x + | balance-windows | 所有窗口一样高 |
| windmove-right | 切换到右边的窗口(类似:up, down, left) |
tabbar切换buffer快捷键
按键 | 命令 | 作用 |
M-n | | 下一个buffer |
M-p | | 上一个buffer |
C-x k | | 关闭当前buffer |