Posted on 13-11-2012
Filed Under (技术) by waterlin

我们经常需要在 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 <TAB> 来替代 M-x indent-rigidly 这个命令。

第二种方法,我们也可以使用列编辑模式。

我们依然先选择好一个区域,然后通过下面的列编辑方式来添加 4 个空格的缩进:

  1. 跳转到想缩进的第一列;
  2. 用 C-<space> 来标记起始位置;
  3. 把光标移动到需要编辑结束的地方;
  4. 用命令 C-x r t 来进入列编辑模式(或如果你是在 CUA 模式下用 C-<RET>),然后输入四个空格(即你想进行列操作的内容,也可以是其它内容),回车后即可完成编辑操作。

相对来说,第一种方法更加简单实用,而第二种方法可以实现更加复杂的编辑功能。

© 2012, 浏忙大爆炸. All rights reserved.
除非注明,浏忙大爆炸文章均为原创,转载请以链接形式标明本文地址。

Post a Comment
Name:
Email:
Website:
Comments: