Vim实战指南(六):环境偏好配置

Introduction

有没有想过让你的vi环境与众不同?vi可以将你的环境偏好配置保存下来,甚至支持配置脚本,自定义快捷键,和Unix命令行交互,这些便利将进一步提高你的编辑速度。

环境配置

vi使用ex命令进行环境配置,在前面你已经使用过:set nu来添加行号。
在vi中,环境配置分为两类:开关型和值类型,如:

:set nu:开关型,打开行号
:set nonu:开关型,关闭行号,前面加no表示关闭
:set shell=/bin/bash:值类型,将shell解析器设置为/bin/bash

你可以通过下面的ex命令,看到你的vi支持的所有配置:

:set all

保存环境配置

在vi中进行的环境配置,通常在退出vi后会失效。vi启动时会读取.exrc文件,因此可以将你的自定义配置保存在.exrc文件中。
在你的当前用户下(Unix的~目录),打开或新建.exrc文件:

$ vi ~/.exrc

在打开的文件中,输入:

set nu

这样会使你用vi打开文件时,自动增加行号。
注意,vi启动时会自动读取当前用户的.exrc文件进行解析,因此不需要在命令前面加:(:的意思是使用ex解析器)。
vi允许使用不同的.exrc文件,要打开此功能,首先打开刚才的~/.exrc文件,输入:

set exrc

然后我们在当前路径下新建一个.exrc文件,在里面输入:

set nonu

现在,每次使用vi打开文件时,会首先读取当前路径下的.exrc文件,因此我们在当前路径下使用vi打开的文件,不再带有行号。

执行Unix命令

vi的ex命令同样可以使用Unix命令行工具,这样省去你退出vi输入命令后再重新打开vi的尴尬。
在vi中,输入:!来执行命令行工具,如:

:!ls

将列出当前目录下的所有文件。
你甚至可以使用:

:!sh

来打开一个新的解析器,这样就省去了通过ex一行一行输入命令的时间,你可以在使用完sh后,通过Ctrl+D回到vi。

使用Unix命令辅助编辑

如果你需要对当前文件进行排序怎么办?强大的ex完全支持:

:3,6!sort:对3到6行使用Unix的sort工具进行排序

你甚至可以不使用ex,而采用vi的命令行来实现:

3!!sort:将光标及后3行使用Unix的sort工具进行排序

快捷键

编程的时候,有些频率很高的词,你希望能少敲几个字符,如function(),我们可以使用下面的ex命令:

:ab fu function()

这样当你在编辑模式输入fu的时候(注意只是fu,func不行),vi会自动转义为function(),和代码自动补全相比,有没有似曾相识的感觉?
你同样可以将快捷键保存到.exrc文件中。
除了编辑模式,vi也支持命令行模式的快捷键,你可以将一些常用的组合命令保存为快捷键:

:map T dwelp

当你在命令行模式中输入T时,将交换当前单词和后面的单词的顺序,为什么?因为:

dw:删除当前单词
e:移动当下一个单词的末尾
l:向右移动
p:将刚才删除的单词放置在此处

是不是有一种恍然大悟的感觉?你可以通过这种方式,创建更多巧妙的快捷键。

Summary

本文介绍了vi中的环境偏好设置,通过强大的命令行以及快捷键工具,自定义你的vi环境,能让你节省大量的开发时间!

(本文出自csprojectedu.com,转载请注明出处)