Vim 启动时,会根据配置文件(.vimrc)来设置 Vim,因此可以通过此文件来定制适合自己的 Vim。
Vim 配置文件分为系统配置文件和用户配置文件:
vim ~/.vimrc
命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。注意,Vim 用户配置文件比系统配置文件的优先级高,换句话说,Vim 启动时,会优先读取 Vim 用户配置文件(位于主目录中的),所以我们只需要修改用户配置文件即可(不建议直接修改系统配置文件)。
Vim 提供的环境配置参数有很多,可以在 Vim 中输入“:set all”指令来查询。
以下为个人使用习惯的配置
.vimrc
###################################### 编码配置 ####################################### # fileencoding 选项是 Vim 写入文件时采用的编码类型; set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 # termencoding 选项表示输出到终端时采用的编码类型。 set termencoding=utf-8 # 设置编码格式,encoding 选项用于缓存的文本、寄存器、Vim 脚本文件等; set encoding=utf-8 # nu是number 的缩写,所以上面两个配置命令是完全等效的,二选一即可。取消行号可使用 set nonu。 #set number set nu # 突出显示当前行。 set cursorline # Vim 编辑器里默认是不启用鼠标的,通过此设置即可启动鼠标。 set mouse=a set selection=exclusive set selectmode=mouse,key # 设置自动缩进,即每行的缩进同上一节相同。 # set autoindent # 设置Tab键宽度为 4 个空格。 set tabstop=2 # 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。 set expandtab # 打开语法高亮 syntax on # 在底部显示,当前处于命令模式还是插入模式。 set showmode # 命令模式下,在底部显示,当前键入的指令。比如,键入的指令是2y3d,那么底部就会显示2y3,当键入d的时候,操作完成,显示消失。 set showcmd # 启用256色。 set t_Co=256 # 文件类型检查 filetype indent on # 自动折行,关闭折行,set nowrap set wrap ###################################### 搜索配置 ####################################### # 进入搜索模式:Esc / xxx # 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。 set showmatch # 搜索时,高亮显示匹配结果。 set hlsearch # 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果。 set incsearch # 搜索时忽略大小写。 set ignorecase ###################################### 编辑配置 ####################################### # 单词拼写检查 set spell spelllang=en_us # 不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,文件名是在原文件名的末尾,再添加一个波浪号(〜) set nobackup # 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp。 set noswapfile # 如果行尾有多余的空格(包括 Tab 键),该配置将让这些空格显示成可见的小方块。 set listchars=tab:»■,trail:■ set list # 命令模式下,底部操作指令按下 Tab 键自动补全。第一次按下 Tab,会显示所有匹配的操作指令的清单;第二次按下 Tab,会依次选择各个指令。 set wildmenu set wildmode=longest:list,full
我的配置脚本:
$ ./vimrc_config.sh
#!/usr/bin/bash set -eu add_config(){ echo "set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 set nu set cursorline set mouse=a set selection=exclusive set selectmode=mouse,key set tabstop=2 set expandtab syntax on set showmode set showcmd set t_Co=256 filetype indent on set wrap set showmatch set hlsearch set incsearch set ignorecase set spell spelllang=en_us set nobackup set noswapfile set listchars=tab:»■,trail:■ set list set wildmenu set wildmode=longest:list,full " >> .vimrc } cd if [ -f .vimrc ] then add_config else touch .vimrc add_config fi
参考:http://www.ruanyifeng.com/blog/2018/09/vimrc.html