Emacs 的区域内容缩进
文章目录
我们经常需要在 Emacs 对齐一段内容,比如说缩进四个空格,这不管是在代码或是文字内容编写方面,都十分有用。尤其是在天天都需要使用的 Org 文件里,快捷的对齐更是提高文字编辑速度不可缺少的一部分。
例如,一般在 Org 文件里引用一段代码时,如果代码里有 # 开头的内容,则需要使用这个缩进功能,否则容易在发布成 html 时被错误的解析。因为,在 Org 的解析器看来,# 代表着需要转义的区域,比如下面这段内容就需要缩进,否则 #include 会干扰生成的效果:
#+begin_src cpp #include <iostream> int main() { return 0; } #+end_src
可是,当你需要从代码文件里拷一段代码到 Org 文档里时,基本上都会碰到上面这种情况,#include 这个东西可是靠在最左边的!当你把 Org 文档输出为其它格式时,这个 # 记号会让你痛不欲生的。
这时,按照习惯,我们需要把这个代码块向右对齐两个空格或是四个空格,然后所有的 Org 转义问题就解决了。
要实现这个操作很简单,有两种方法可以实现快捷缩进:
第一种方法,用命令 indent-rigidly 并且带上需要缩进的空格数。
例如,当选择好一个区域后,用命令 C-u 4 M-x indent-rigidly 就可以让这个区域缩进 4 个空格,用命令 C-u -4 M-x indent-rigidly 就可以让这个区域减少 4 个空格的缩进。
你也同样可以使用键绑定 C-x
第二种方法,我们也可以使用列编辑模式。
我们依然先选择好一个区域,然后通过下面的列编辑方式来添加 4 个空格的缩进:
- 跳转到想缩进的第一列;
- 用 C-
来标记起始位置; - 把光标移动到需要编辑结束的地方;
- 用命令 C-x r t 来进入列编辑模式(或如果你是在 CUA 模式下用 C-
),然后输入四个空格(即你想进行列操作的内容,也可以是其它内容),回车后即可完成编辑操作。
相对来说,第一种方法更加简单实用,而第二种方法可以实现更加复杂的编辑功能。
文章作者 cookwhy
上次更新 2012-11-13