在Vim初探(一)和Vim初探(二)中分别介绍了Vim中模式的概念及一些简单的文本编辑命令,如光标的移动、编辑区域的选取、拷贝、剪切、黏贴等。接下来我想介绍一下在Vim中如何折叠和展开已设定好缩进的文本,以及如何同时查看和编辑多个文本。
一.缩进的折叠和展开
作为程序员对于代码的缩进肯定是再熟悉不过了。同时现在很多IDE提供了将已经缩进好的一段代码折叠起来或者展开的功能。在Vim中我们也能做到这一点:首先需要先设置折叠方法,:set foldmethod=indent,然后将光标移动到一段已经具备缩进的文本上(如通过<Tab>键设置),按下zc将缩进折叠起来,按下zo展开缩进。这只是缩进的折叠与展开一个很简单的例子,还有很多相关的内容,在这里不做赘述,用到时可以通过:help folding来查看详情。
二.多文档的查看与编辑
很多时候我们需要同时打开多个文档进行编辑,Vim为这类操作提供了三种方式:
- 在不同窗口中打开多个文档。
- 在同一窗口中打开多个文档。
- 在不同Tab中打开多个文档。
1.在不同窗口中打开多个文档
通常情况下在Vim中打开多个文档时每个文档会出现在一个单独的窗口中。可以通过命令:b n在不同文档窗口间进行切换,其中n表示你想切换到的第几个打开的文档,如当前的活动窗口是第三个打开的文档,如果我想切换到第一个打开的文档只需执行:b 1即可。如果你还记得的话,上一节中提到了Vim将编辑的文档会读取到缓存中,事实上b代表的就是buffer,所以这个命令可以解读为buffer number 1。可以通过命令:buffers或:ls来查看当前打开了多少个buffers。下面举个例子来直观的说明一下:
- 首先打开文档test1.txt,相关命令如:e test1.txt
- 然后打开文档test2.txt,相关命令如:e test2.txt
- 现在的活动窗口为test2.txt,如果想切换到test1.txt,只需:b 1即可。
2.在同一窗口中打开多个文档
如果你想在同一窗口中打开多个文档,只需在当前打开的窗口中执行命令:new即可,当前的窗口就会一分为二,然后在新的子窗口中打开相关文件即可。在不同子窗口间切换只需按ctrl-w < h,j,k,l>或连续按ctrl-w两次。在一个窗口中打开多个文件的一种特殊情况是将一个文档在两个子窗口中呈现,分为两种方式:在两个水平子窗口:sp,在两个竖直子窗口:vsp。其中sp代表split.执行:q命令关掉其中的某个子窗口。
3.在不同Tab中打开多个文档
这个特性是我很喜欢的一个特性,因为浏览器已是我生活中不可或缺的东西,总是要在浏览器中打开多个Tab(ctrl/cmd-t)。在Vim中命令 :tabnew就可以打开一个新Tab,然后就可以在这个Tab中打开并编辑文档了。通过gt命令可以在不同的Tab间切换。关掉一个Tab可以使用:tabc或:q命令。还有一个命令要提一下就是:tabmove,该命令将Tab移动到指定的位置。
参考文献
1.http://www.swaroopch.com/notes/Vim