有的时候,我们只想对buffer中某一部分的内容进行操作,比如说替换这一段内容中的某些字眼而不影响文章的其它部分。这个时候,应该怎样处理才会比较方便呢?

我自己经常用两种方法,都觉得蛮好用的。

1) 先选中要操作的区域,再直接用命令。

比如说我要全部替换buffer中某个部分的某个单词,我先选中这个部分,然后直接用命令M-x replace-string,根据提示,完成替换操作。

当然,你还可以使用一些其它的命令,比如说M-x count-lines-region之类的,来统计一下该部分有多少行。这个方法的优点是操作比较简单、快速;缺点是,能使用的命令不多,不能进行比较复杂的操作。

2) Narrowing

Narrowing的意思是集中于当前buffer的某一部分,并且隐藏buffer的其它部分。

在选中一个区域之后,用命令**C-x n n(M-x narrow-to-region)**进入narrow模式,然后你就可以像操作一般的文档一样来操作这个region了。

用命令**C-x n w(M-x widen)**即可退出narrow模式返回到原来的buffer中,你在narrow里的编辑将带回到原buffer里。

还有两个命令可以让你更加方便地进入narrow模式:

C-x n p(M-x narrow-to-page):    把当前页面用narrow模式来编辑。

C-x n d(M-x narrow-to-defun):   把光标所在行的当前函数用narrow模式来编辑。