学习Gnu Emacs 读书笔记
1 Emacs的基本概念
快捷键 | 命令 | 功能 |
---|---|---|
C-x C-v | find-alternate-file | 读取另一个文件来代替刚才诗篇的那一个。 |
C-x i | 输入文件。 | |
C-x C-f | find-file | 查找文件并且打开它。 |
C-x C-s | save-buffer | 保存文件. |
C-x C-w | write-file | 把缓冲区内容写入一个文件。 |
C-x C-c | save-buffers-kill-emacs | 退出emacs |
C-h | help-command | 进入emacs的在线帮助系统。 |
C-h f | ||
C-h k | ||
C-h t | ||
C-h i |
2 文件编辑
快捷键 | 命令 | 功能 |
---|---|---|
ESC x goto-line n RET | 把光标移动到文件的第N行 | |
ESC x goto-char n RET | 把光标移动到文件的第N个字符 | |
ESC 500 C-n | 光标移动500行,ESC n 是重复执行命令的意思。 | |
C-u | C-u 等于4, C-u C-u 等于16次重复的意思。 | |
C-x u | 撤消; 同命令还有: C-_ C-/ | |
ESC - C-k | 删除行首到光标位置之间的东西。 | |
ESC d | kill-word | 删除光标后面的单词。 |
ESC DEL | backward-kill-word | 删除光标前面的单词。 |
ESC k | kill-sentence | 删除光标后面的句子。 |
ESC y | 恢复上次删除的操作内容。 | |
C-t | transpose-chars | 交换两个字符的位置。 |
ESC t | transpose-words | 交换两个单词的位置。 |
C-x C-t | transpose-lines | 交换两个文本行的位置。 |
ESC c | capitalize-word | 把单词的首字母改为大写。 |
ESC u | upcase-word | 把单词的字母全部改为大写。 |
ESC l | downcase-word | 把单词的字母全部改为小写。 |
ESC - ESC c | negtive-argument; capitalize-word | 把前一个单词的首字母改为大写。 |
ESC - ESC u | negtive-argument; upcase-word | 把前一个单词的字母全部改为大写。 |
ESC - ESC l | negtive-argument; downcase-word | 把前一个单词的字母全部改为小写。 |
ESC x overwirte-mode RET | 文本的改写模式,再次输入则取消。实际上直接输入: ESC x ov 用TAB键可以补全。 | |
C-x C-w | 文件另存为. |
3 查找和替换操作
快捷键 | 命令 | 功能 |
---|---|---|
C-s | isearch-forward | 向前递增查找 |
C-r | isearch-backward | 向后递增查找 |
C-s C-w | 可以把从光标位置到下一个标点符号或者空格符之间的文本都复制到查找字符串里面去。 | |
C-s C-y | 光标位置到行尾之间的文本都复制到查找字符串里面去. | |
C-s ESC y | 可以把删除环里面的文本复制到查找字符串去。而且在用过这条命令之后,还可以用 ESC p ESC n 进来上下条目查看。 | |
C-s RET C-w | word-search-forward | 单词查找。 |
C-r RET C-w | 单词查找。 | |
ESC x replace-string RET recieve RET receive RET | Emacs将从光标位置开始,把文件里面所有出现查找字符串(recieve)的地方都替换掉。如果想对整个文件做替换,则使用命令之前移动 ESC < 位置即可。 |
3.1 查询与替换 (ESC % recieve RET receive RET)
键盘操作 | 动作 |
---|---|
ESC % | 开始查询-替换操作。 |
SPACE 或 y | 用新字符串替换查询字符串searchstring, 然后前进到下一个位置。 |
DEL 或 n | 不替换; 前进到下一个位置。 |
. | 在当前位置做替换后退出查询-替换操作。 |
, | 替换并显示替换情况(再按空格键或 "y" 后才移动到下一个位置。) |
! | 对后面的文件内容全部进行替换,不再提问是否要进行替换。 |
^ | 返回上一次进行了替换的位置。 |
RET 或 q | 退出查询-替换操作。 |
C-r | 进入递归编辑状态。 |
C-w | 删除此处内容并进入递归编辑状态。 |
ESC C-c | 退出递归编辑状态,继续完成查询-替换操作。 |
C-] | 退出递归编辑状态和查询-替换操作。 |
3.2 删除命令
快捷键 | 功能 |
---|---|
C-d | 向前detele字符 |
DEL | 向后detele字符 |
ESC d | 向前delete到字首 |
ESC DEL | 向后delete到字尾 |
ESC 0 C-k | 向前delte到行首 |
C-k | 向后delete到行尾 |
C-x DEL | 向前delete到句首 |
ESC k | 向后delete到句尾 |
ESC - C-M-k | 向前delete到表达式首部 |
C-M-k | 向后delete到表达式尾部 |
C-w | kill 区域 |
3.3 标记(Marking)
快捷键 | 功能 |
---|---|
C-SPC (C-@) | 标记当前位置 |
C-x C-x | 以字符为单位使用移动命令动态标记区域 |
ESC @ | 以字为单位使用移动命令动态标记区域 |
ESC h | 标记一段 |
C-x C-p | 标记一页 |
ESC C-@ | 标记一个表达式 |
ESC C-h | 标记一个函数 |
C-x h | 标记整个缓冲区 |
3.4 缩进格式
快捷键 | 功能 |
---|---|
TAB | 缩进当前行(与模式有关) |
ESC C-\ | 缩进区域(与模式有关) |
ESC C-q | 缩进表达式(与模式有关) |
C-x TAB | Indent region rigidly arg. Columns |
C-o | 在光标后插入一个新的行(有点像vi的'o') |
ESC C-o | 静态地将一行下移 |
C-x C-o | 删除光标附近的空行(留下一行) |
ESC ^ | 与上一行合并成一行 |
ESC \ | 删除光标附近的所有空格 |
ESC SPC | 删除光标附近的空格(留下一格) |
ESC q | Fill paragraph |
C-x f | Set fill column |
C-x | 设置每一行开始的前缀 |
3.5 递增查找
- 在查找过程之中想取消查找可以需要按 C-g C-g .
- 用复制办法得到的查找字符串会把原文中的大写字母都转换成小写字母。
4 使.emacs立即生效
ESC x eval-current-buffer
Go On. heheh