Jacky Liu's Blog

怎样让 Vim 帮助你阅读和理解文档

Vim 是一款高效的文本编辑器,许多人对它强大的编辑功能都有体会,而实际上 Vim 能做的不仅仅是编辑,它还能使原本枯燥的文档变得“鲜活”起来:
 

 

这个图显示了 gvim 对普通的 txt 文本的显示效果,内容是 Python 的帮助文件。里面的颜色,缩进和标题是阅读时根据自己的理解随手加上去的。在 vim 里进行这些编辑操作并不麻烦,甚至比较享受。最为关键的是,一切都由自己控制,文档像这样读过一遍以后,就会印象比较深,而且只读一遍就好,以后回头找起来,因为有先前的注释在,就会非常快。我发现这样对于快速地掌握文档的内容特别有用。所以,现在我最喜欢的文档格式不是 pdf 或 html,而是 txt。

    看一下背后所用到的特性: 实际上也不复杂,就是些 Vim 的基本特性:

    首先是颜色。Vim 支持多少种颜色? 对 GUI 版来说,是 256 x 256 x 256 种,这跟 html 的颜色特性是完全一样的,包括颜色的定义方式。比如 #000000 代表纯黑,#ffffff 代表纯白,等等。(建议不要拿纯白或者其它很亮的颜色当背景色,看久了眼睛受不了)。实际当然用不到这么多,就在几个主要色系里面选些典型的就好了。颜色选定了以后就可以跟格式结合起来,定义成一些语法项,用在平时的文档里面。这个主要在 Vim 的文档 "syntax.txt" 里有讲。下面是我自己定义的一些语法项,主要用于一般的文档:
 

    接下来需要用到的特性是自定义按键。因为时常需要添加一些自己定义的格式字符,所以最好把这些操作映射到一些快捷键上。比如在 Visual 模式下选中一段感兴趣的文本,再按一两个键,就能给它加上格式/颜色,这样的操作用起来感觉很爽。

    如果想要更高级些的功能,那就需要了解更复杂的特性了: Vim Script。在第一个图中,左侧的窗口里加载的是 CustomTextIndexer 功能模块,这是用 Vim Script 写的一个插件,用来提取主窗口内的标题形成文档目录,并且具有简单的跳转功能。实际上背后的操作主要是文本匹配和字符串处理 ———— 都是 Vim 的本职工作,平时使用时也经常碰到。

 

Vim 里的上下左右,给玩惯了游戏的 Vimmer

Vim 里的上下左右默认是 hjkl 四个键,这是与 vi 兼容的设置。如果你玩惯了赛车一类的游戏,相信打死你也适应不了这样的设置。我就是这样。所以当初学用 Vim 的时候,我第一件要看的就是怎样定义按键映射。实际上只要很简单的几行设置,就可以把方向键映射到 ikjl 四个键上,这样跟小键盘上的方向键位置吻合,用起来就舒服得多。以下是我放在 .vimrc 里面的代码,用下来很久了,没出过什么问题。

"------------------------------------------------------------------------------------
"-------			所有模式下
"------------------------------------------------------------------------------------

no		i	k
no		k	j
no		j	h
no		h	i

no		I	H
no		H	I

"------------------------------------------------------------------------------------
"-------		Visual 模式
"------------------------------------------------------------------------------------

vno	h(	i(
vno	h)	i)
vno	h<	i<
vno	h>	i>
vno	hB	iB
vno	hW	iW
vno	h[	i[
vno	h]	i]
vno	hb	ib
vno	hp	ip
vno	hs	is
vno	hw	iw
vno	h{	i{
vno	h}	i}

定义了这些按键以后,i 就是向上,k 是向下,j 和 l 是左和右。另外只要记着,任何时候原来该按 i 的地方就按 h,Visual Block (列编辑)模式下该按 I 的地方就按 H,就行了。




Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee