VIM 是一个很棒的文本编辑工具,但是在安装完成后,还必须根据个人的使用习惯来进行一些初始的启动配置。可找到文件$vim/_vimrc, 也可以通过中文菜单“编辑”-》“启动设定” 打开该文件,然后进行编辑。下面是一些常用的一些配置:
- 显示文本行号
set nu! 设置文本显示行号,这在行操作中很方面,如:123gg,直接将光标定位到123行。
- 设置字符编码
set encoding=utf-8 设置当前字符编码为 UTF-8。 UTF-8 是支持字符集最多的编码之一, 在 UTF-8 下进行工作, 会带来许多方便之处。 由于 VIM 在运行过程中切换 encoding 会造成许多问题, 如提示信息乱码、 register 丢失等, 因此强烈在启动 VIM 的时候把 encoding 设置为 UTF-8, 可以避免很多麻烦。在编辑非 UTF-8 的文件时, 通过 fileencoding 来进行转码。
- 使用中文菜单
set langmenu=zh_CN.UTF-8 设置菜单使用 UTF-8 编码。 如果没有这句的话, 在非 UTF-8 的系统, 如 Windows 下, 用了 UTF-8 的 encoding 后菜单会乱码。但是根据我本人的经验,使用该行设置并不能消除中文菜单的乱码现象。最后的解决办法是在_vimrc文件中添加如下文本:
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
- 使用中文提示信息
language message zh_CN.UTF-8 如果没有这句的话, 在非 UTF-8 的系统, 如 Windows 下, 用了 UTF-8 的 encoding 后系统提示会乱码。
- 设置 Tab 键缩进宽度
set ts=4 设置当按下 Tab 键后缩进 4 个字符。默认 Tab 键缩进为 8 个字符。
- 设置自动缩进
set sw=4 设置自动缩进为4个字符,默认自动缩进为8个字符。重新设置后,按下 shift + ,/。 键使文本缩进时移动幅度为4个字符。
- 自动对齐
set autoindent 也就是把上一行的对起格式应用到当前行。
- 设置新建文档快捷键
map <F11> :tabnew <CR> 按下 F11 键后将会创建一个新的空文档。
- 设置关闭文档快捷键
map <F12> :close <CR> 按下 F12 键后将会关闭当前编辑的文档。
- 修改配色方案
colors desert 修改当前的配色方案为 desert 颜色方案,当然我们也可以修改 desert 配色方案的具体配置项。该配置方案在 $Vim/vim70/colors/desert.vim 中有具体描述。
修改后的启动配置文件_vimrc完整内容如下:
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set nu!
set encoding=utf-8
set langmenu=zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language message zh_CN.UTF-8
set ts=4
set sw=4
set autoindent
map <F11> :tabnew <CR>
map <F12> :close <CR>
colors desert
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '/<cmd'
let cmd = '""' . $VIMRUNTIME . '/diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '/diff"'
endif
else
let cmd = $VIMRUNTIME . '/diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction