emacs-可视化编辑教程
1 emacs编辑的快捷键 ::
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) | 删除光标前单词 |
C-x Backspace (backward-kill-sentence) | 往前删一句 |
M-k (kill-sentence) | 删除光标起一句 |
M-z char (zap-to-char) | 删至字符char为止 |
2 emacs列编辑模式 ::
emacs以C-x r开头的命令来进行矩形操作 用C-x r space或者C-x r C-@设一个mark 移动光标到另一点,用以下命令进行列操作:
C-x r k | 剪切一个矩形块 |
C-x r y | 粘贴一个矩形块 |
C-x r o | 插入一个矩形块 |
C-x r c | 清除一个矩形块(使其变成空白) |
C-x r t | 在选定区域的所有列前插入样的字符 |
C-x r d | 删除举行区域不保存 |
C-x r s | copy-to-register |
C-x r r | copy-rectangle-to-register |
C-x r N | 选定矩形块的所有列前面插入序号(从1开始) |
3 cua-mode (Common User Access mode) ::
cua-mode也是一种更好的可视化的列模式 cua-mode和cua-rect是有区别的
- 在cua- mode下,按下[C-return]会进入cua rectangle模式
- (org模式不起作用,必须通过M-x cua-rectangle-mark-mode进入)
这里我设置了直接在任何模式下启动的快捷键
;;cua-rectangle-mark-mode的快捷键 (global-set-key (kbd "C-c n") 'cua-rectangle-mark-mode)
- 通过光标键来选中一个rect范围,这个rect会用另外的颜色显示出来
- 可以很方便地对这个rect进行操作
- [M-up],[M-down],[M-left],[M-righ]可以移动这个rect
- [C- return]/[M-c]可以取消这个rect
- [C-space]可以退出cua-rect模式并激活普通模式下的选择
3.1 cua-mode (Common User Access mode)
- 直接输入字符: 在每行前(或后)都插入这个字符
- [M-b]: 用空格(tabs或者spaces)替换所有rect中的字符
- [M-c]: 去掉所有行左侧的空格 blank
- [M-f]: 用单个字符替换所有rect中的字符(提示输入一个字符)
- [M-i]: 对每行中第一个找到的数字进行加1操作(自动把0x开头的当作十六进制数字)
- [M-k]: 剪切rect
- [M-l]: 把rect中的内容全部转换为小写
- [M-m]: 拷贝rect
- [M-n]: 用一串自增的数字替换rect中的每一行(这个功能可以用来给每行编号)
- [M-o]: rect的内容右移,选中的rect用空格填充
- [M-r]: 用字符串替换符满足正则表达式的字符串
- [M-R]: 上下反转
- [M-s]: 把rect中的每一行替换为一个字符串(提示输入)
- [M-t]: 把rect整个替换为一个字符串(提示输入)
- [M-u]: 把rect中的内容全部转换为大写
- [M-|]: 对rect执行一个shell命令
- [M-p]: pad选择模式
- [C-c]: 复制rect
- [C-v]: 粘贴rect
- [C-x]: 剪切rect
- [C-z]: undo
还有一些其他的命令可以直接看cua-base.el(emacs22之后已经自带cua-mode)。