macOS中Vim基本配置
Vim的初始化配置 .vimrc
存放位置
macOS 环境下 vim 的初始化配置文件为 .vimrc , 通常有两个(系统版本和用户版本),一个位于 /usr/share/vim/vimrc,是整个系统vim的默认配置;另一个位于 ~/.vimrc,是当前用户的 vim 配置,会覆盖系统配置。可进入 vim,在命令模式下键入
123 |
:version " 查看版本号:echo $VIM " 查看vim具体路径:echo $HOME " 用户主目录 |
~/.vimrc 有时并不存在,此时可以建立一个 .vimrc,放入用户主目录以实现当前用户的 vim 配置
主要命令参数
.vimrc 通常用于指定 vim 的编辑参数和外观环境。下面列出常用的命令参数及其含义:
MacVim是在Mac下非常好用的Vim软件之一,而且还可以通过安装Exvim来对MacVim进行格式配置,使之更加易用。
Exvim是一个第三方vim的格式配置方案,旨在将vim变成一个IDE。
官方网站:http://www.ex-dev.com/exvim/wiki/index.php?title=Main_Page
安装及配置:
- 下载Exvim安装包,解压到~/文件夹下。安装对应工具和配置。所用命令:
cp -R toolkit ~/.toolkit
cp -R vimfiles ~/.vim - 安装外部工具(使用第三方软件管理器)
必装工具:ctags,idutils,gawk,sed,findutils
选装工具:cscope,graphviz,source-highlight,python - 设置toolkit路径
在.vimrc中添加toolkit路径
let g:ex_toolkit_path = ‘~/.toolkit’ - 设置.vimrc
A. 依据.vimrc_ex在.vimrc中添加设置(未找到.vimrc_ex)
- 直接引用
在.vimrc中添加 source $VIM\.vimrc_ex
- 添加代码
B. 必要的.vimrc设置
let tags jump relate to current directory
au BufNewFile,BufEnter * set cpoptions+=d
avoid buffer close problem
nnoremap <unique> <Leader>bd :call exUtility#Kwbd(1)<CR>
- Brew
软件管理器,源代码托管于git上:https://github.com/mxcl/homebrew/
安装命令:/usr/bin/ruby -e “$(curl -fsSL https://raw.github.com/gist/323731)”
常用命令:
安装:brew install + name
帮助:brew help, man brew
查看可用软件:brew search - Fink
软件管理器,官方网站:http://www.finkproject.org/index.php?phpLang=en
安装:
(1) 下载源码,解压
"tar -xvzf fink-0.31.3.tar.gz" or "tar -xvf fink-0.31.3.tar"
(2) start boostrapping operation
"./bootstrap" or "./bootstrap /path" (安装fink到另外的路径中)
(3) 配置环境变量
/sw/bin/pathsetup.sh
(4) 重启终端窗口使用新的环境变量
(5)下载description files和patches
fink selfupdate-rsync
fink index –f
使用:fink install + name - Macport
第三方软件管理器,官方网站:http://www.macports.org/index.php
安装:
(1) 下载.dmg文件安装
(2) 设置环境变量
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
使用:
- 更新ports tree和MacPorts版本,强烈推荐第一次运行的时候使用-v参数,显示详细的更新过程。
sudo port -v selfupdate
- 搜索索引中的软件
port search name
- 安装新软件
sudo port install name
- 卸载软件
sudo port uninstall name
- 查看有更新的软件以及版本
port outdated
- 升级可以更新的软件
sudo port upgrade outdated
- Eclipse的插件需要subclipse需要JavaHL,下面通过MacPorts来安装
sudo port install subversion-javahlbinding
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
"打开语法高亮syntax on "使用配色方案colorscheme desert "打开文件类型检测功能filetype on "不同文件类型采用不同缩进filetype indent on "允许使用插件filetype plugin onfiletype plugin indent on "关闭vi模式set nocp "与windows共享剪贴板set clipboard+=unnamed "取消VI兼容,VI键盘模式不易用set nocompatible "显示行号, 或set numberset nu "历史命令保存行数set history=100 "当文件被外部改变时自动读取set autoread "取消自动备份及产生swp文件set nobackupset nowbset noswapfile "允许使用鼠标点击定位set mouse=a "允许区域选择set selection=exclusiveset selectmode=mouse,key "高亮光标所在行set cursorline "取消光标闪烁set novisualbell "总是显示状态行set laststatus=2 "状态栏显示当前执行的命令set showcmd "标尺功能,显示当前光标所在行列号set ruler "设置命令行高度为3set cmdheight=3 "粘贴时保持格式set paste "高亮显示匹配的括号set showmatch "在搜索的时候忽略大小写set ignorecase "高亮被搜索的句子set hlsearch "在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)set incsearch "继承前一行的缩进方式,特别适用于多行注释set autoindent "为C程序提供自动缩进set smartindent "使用C样式的缩进set cindent "制表符为4set tabstop=4 "统一缩进为4set softtabstop=4set shiftwidth=4 "允许使用退格键,或set backspace=2set backspace=eol,start,indentset whichwrap+=<,>,h,l "取消换行set nowrap |
Vim 的语法高亮/配色方案
vim 的配色分两部分:编辑环境配色和文本区域配色
1) 编辑环境配色:比如 vim 编辑区的前景背景色、状态栏颜色、错误提示颜色、查找、光标、圈选区、行号、折叠等的颜色
这里列出几个配色组名及其含义(全部的详细信息查看帮助文件 :help hi
查找 highlight-group
即可):
123456789 |
Cursor # 光标下的字符颜色 CursorLine # 光标所在行颜色 ErrorMsg # 命令行出现的错误信息提示 IncSearcg # 被搜索字符的颜色 Normal # 普通字符 Pmenu # 弹出的提示条目颜色 PmenuSel # 弹出的提示条目中被选中条目的颜色 SpellBad # 拼写错误字符颜色 Visual # 可视化模式下选中字符的颜色 |
2) 文本区域配色:可编辑的文本区域的字符配色(全部的详细信息查看帮助文件 :help hi
查找 *comment
)
由于配色种类较多,vim 默认分了几大类(帮助信息中带*的):
12345 |
*Comment # 注释*Constant # 常量*statement # 常用关键字标示符*PrePoc # 预处理符号*Type # 数据类型 |
下面是较为详细的组别:
123456789 |
String # 字符串常量: "string abc\n"Character # 单个字符常量: 'c', '\n'Number # 数字常量: 234, 0xffBoolean # 布尔常量: TRUE, falseFunction # 函数名Conditional # 条件关键字: if, then, else, endif, switch, etc.Repeat # 循环关键字: for, do, while, etc.Operator # 操作符: "sizeof", "+", "*", etc.Exception # 异常关键字: try, catch, throw |
这样便可以更为详细的为每一个组别进行配色
查看当前的 vim 配色情况 :hi/highlight
另外,文本区域的配色可以关闭,但环境配色不能,通常 vim 给定的默认可选配色方案中同时包含了以上两个方面
下面就一条具体的配色命令(对数据类型配色)解释每个字段的含义:
1 |
hi Type cterm=none ctermbg=White ctermfg=Green guibg=Gray guifg=Red |
hi: highlight 的缩写,配色命令
Type: 配色组名,可以自定义(修改$VIMRUNTIME/syntax/下对应的文件可改变不同语言的高亮方案)其内容
cterm,ctermbg,ctermfg,guibg,guifg: 代表了不同显示环境
White,Green: 表示颜色(也可以用数字或者类似与html的16进制颜色表示方法)
显示环境有三种,黑白终端、彩色终端、图形界面;三种环境下参数名称如下:
1234567 |
term # attributes in a B&W terminalcterm # attributes in a color terminalctermfg # foreground color in a color terminalctermbg # background color in a color terminalgui # attributes in the GUIguifg # foreground color in the GUIguibg # background color in the GUI |
其中 term 仅有黑白两色,cterm 下颜色较为单一,GUI 模式颜色丰富
若要仅修改某种语言(c、Java、pascal)的配色,则在配色组名前加语言名称即可,比如对 c/c++ 语言的数据类型单独配色:
1 |
hi cType ctermfg=Blue |
若是修改 java/pascal 的数据类型,则相应的将 cType 替换为 javaType/pascalType 即可。
对于文本区域的语法高亮(即配色),我们可根据需求特殊化定制,比如自定义组: myUniqueWord, mySymbol,使用 syn/syntax 命令
12 |
syn keyword myUniqueWord gang Gang swaggersyn match mySymbol "[,.;(){}[]]" # 可使用正则表达式 |
vim 目前 7.4 版本给出的可直接使用(colorscheme
命令加于 .vimrc 中即可)的配色方案位于目录:/usr/local/share/vim/vim74/colors
,比如使用 desert.vim
中的配色,则于 .vimrc 中添加一行:colorscheme desert
即可
网友提供的配色方案列表(带效果图),可参考:
http://vimcolorschemetest.googlecode.com/svn/html/index-c.html
http://www.oschina.net/news/32306/10-vim-color-schemes-you-need-to-own
:hi/highlight
命令,可查看当前 vim 的颜色配置
:help hi/highlight
显示帮助文件(syntax.txt)内容
可访问官方在线版 http://vimdoc.sourceforge.NET/htmldoc/syntax.html ,介绍了颜色配置脚本中关键字的含义和使用方法
相同配色 vim 脚本在不同的终端下可能显示不太一致,这是由终端下颜色设置不一致导致的,属正常情况。
在/Users/username 下面建立文件.vimrc ,将设置信息写进文件中;这是用户的配置信息,优先级最高;
下面是我的的设置,这里可以根据自己的需要进行选择性配置。
set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
colorscheme molokai " dracula 设定配色方案 molokai
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
filetype plugin indent on " 开启插件
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
" set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
" set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
3、在设置中有一个比较重要的设置就是配色设置,这主要看个人喜欢什么样的颜色风格,网上有很多配色方案可以下载,配色方案为.vim后缀的文件。下载下来文件之后,在终端用
open /usr/share/vim命令打开vim文件夹,打开vim73>>colors,
然后将下载下来的配色方案放进colors文件夹。这样在.vimrc文件中配置coloscheme +配色方案名称;就可以应用新的配色方案了,我用的是molokai;
另外,配方方案文件也是可以自己修改的。
vim颜色主题设置:
/usr/share/vim/vim80/colors。
indent设置:/usr/share/vim/vim80/indent。
$ ls /usr/share/vim/vim80/colors
blue.vim delek.vim evening.vim murphy.vim README.txt torte.vim
darkblue.vim desert.vim koehler.vim pablo.vim ron.vim zellner.vim
default.vim elflord.vim morning.vim peachpuff.vim shine.vim
然后再自己的~HOME/建立一个 .vimrc文档
[$ vi .vimrc
:colorscheme evening
vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)
"=========================================================================
" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console
"
" Last Change: 2010年08月02日 15时13分
"
" Version: 1.80
"
"=========================================================================
set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
colorscheme molokai " 设定配色方案
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
filetype plugin indent on " 开启插件
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
" set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
" set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为
" set foldclose=all " 设置为自动关闭折叠
" nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
" 用空格键来开关折叠
" return OS type, eg: windows, or linux, mac, et.st..
function! MySys()
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction
" 用户目录变量$VIMFILES
if MySys() == "windows"
let $VIMFILES = $VIM.'/vimfiles'
elseif MySys() == "linux"
let $VIMFILES = $HOME.'/.vim'
endif
" 设定doc文档目录
let helptags=$VIMFILES.'/doc'
" 设置字体 以及中文支持
if has("win32")
set guifont=Inconsolata:h12:cANSI
endif
" 配置多语言环境
if has("multi_byte")
" UTF-8 编码
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
" Buffers操作快捷方式!
nnoremap <C-RETURN> :bnext<CR>
nnoremap <C-S-RETURN> :bprevious<CR>
" Tab操作快捷方式!
nnoremap <C-TAB> :tabnext<CR>
nnoremap <C-S-TAB> :tabprev<CR>
"关于tab的快捷键
" map tn :tabnext<cr>
" map tp :tabprevious<cr>
" map td :tabnew .<cr>
" map te :tabedit
" map tc :tabclose<cr>
"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动
"光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的
"时候会变得非常方便.
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
"一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用)
nnoremap <leader>1 :set filetype=xhtml<CR>
nnoremap <leader>2 :set filetype=css<CR>
nnoremap <leader>3 :set filetype=javascript<CR>
nnoremap <leader>4 :set filetype=php<CR>
" set fileformats=unix,dos,mac
" nmap <leader>fd :se fileformat=dos<CR>
" nmap <leader>fu :se fileformat=unix<CR>
" use Ctrl+[l|n|p|cc] to list|next|previous|jump to count the result
" map <C-x>l <ESC>:cl<CR>
" map <C-x>n <ESC>:cn<CR>
" map <C-x>p <ESC>:cp<CR>
" map <C-x>c <ESC>:cc<CR>
" 让 Tohtml 产生有 CSS 语法的 html
" syntax/2html.vim,可以用:runtime! syntax/2html.vim
let html_use_css=1
" Python 文件的一般设置,比如不要 tab 等
autocmd FileType python set tabstop=4 shiftwidth=4 expandtab
autocmd FileType python map <F12> :!python %<CR>
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y
" 打开javascript折叠
let b:javascript_fold=1
" 打开javascript对dom、html和css的支持
let javascript_enable_domhtmlcss=1
" 设置字典 ~/.vim/dict/文件的路径
autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict
autocmd filetype css set dictionary=$VIMFILES/dict/css.dict
autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
"-----------------------------------------------------------------
" plugin - bufexplorer.vim Buffers切换
" \be 全屏方式查看全部打开的文件列表
" \bv 左右方式查看 \bs 上下方式查看
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - taglist.vim 查看函数列表,需要ctags程序
" F4 打开隐藏taglist窗口
"-----------------------------------------------------------------
if MySys() == "windows" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"'
elseif MySys() == "linux" " 设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
nnoremap <silent><F4> :TlistToggle<CR>
let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
let Tlist_File_Fold_Auto_Close=1 " 自动折叠当前非编辑文件的方法列表
let Tlist_Auto_Open = 0
let Tlist_Auto_Update = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_Process_File_Always = 1
let Tlist_Display_Prototype = 0
let Tlist_Compact_Format = 1
"-----------------------------------------------------------------
" plugin - mark.vim 给各种tags标记不同的颜色,便于观看调式的插件。
" \m mark or unmark the word under (or before) the cursor
" \r manually input a regular expression. 用于搜索.
" \n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks .
" \* 当前MarkWord的下一个 \# 当前MarkWord的上一个
" \/ 所有MarkWords的下一个 \? 所有MarkWords的上一个
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录
" :ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree
" o 打开关闭文件或者目录 t 在标签页中打开
" T 在后台标签页中打开 ! 执行此文件
" p 到上层目录 P 到根目录
" K 到第一个节点 J 到最后一个节点
" u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作)
" r 递归刷新当前目录 R 递归刷新当前根目录
"-----------------------------------------------------------------
" F3 NERDTree 切换
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC>:NERDTreeToggle<CR>
"-----------------------------------------------------------------
" plugin - NERD_commenter.vim 注释代码用的,
" [count],cc 光标以下count行逐行添加注释(7,cc)
" [count],cu 光标以下count行逐行取消注释(7,cu)
" [count],cm 光标以下count行尝试添加块注释(7,cm)
" ,cA 在行尾插入 ,并且进入插入模式。 这个命令方便写注释。
" 注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
let NERDCompactSexyComs=1 " 多行注释时样子更好看
"-----------------------------------------------------------------
" plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释
"-----------------------------------------------------------------
let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com"
let g:DoxygenToolkit_briefTag_funcName="yes"
map <leader>da :DoxAuthor<CR>
map <leader>df :Dox<CR>
map <leader>db :DoxBlock<CR>
map <leader>dc a <LEFT><LEFT><LEFT>
"-----------------------------------------------------------------
" plugin – ZenCoding.vim 很酷的插件,HTML代码生成
" 插件最新版:http://github.com/mattn/zencoding-vim
" 常用命令可看:http://nootn.com/blog/Tool/23/
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin – checksyntax.vim JavaScript常见语法错误检查
" 默认快捷方式为 F5
"-----------------------------------------------------------------
let g:checksyntax_auto = 0 " 不自动检查
"-----------------------------------------------------------------
" plugin - NeoComplCache.vim 自动补全插件
"-----------------------------------------------------------------
let g:AutoComplPop_NotEnableAtStartup = 1
let g:NeoComplCache_EnableAtStartup = 1
let g:NeoComplCache_SmartCase = 1
let g:NeoComplCache_TagsAutoUpdate = 1
let g:NeoComplCache_EnableInfo = 1
let g:NeoComplCache_EnableCamelCaseCompletion = 1
let g:NeoComplCache_MinSyntaxLength = 3
let g:NeoComplCache_EnableSkipCompletion = 1
let g:NeoComplCache_SkipInputTime = '0.5'
let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets'
" <TAB> completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" snippets expand key
imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
"-----------------------------------------------------------------
" plugin - matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" % 正向匹配 g% 反向匹配
" [% 定位块首 ]% 定位块尾
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
" SVN/git管理工具
"-----------------------------------------------------------------
"-----------------------------------------------------------------
" plugin – a.vim
"-----------------------------------------------------------------
在vim启动过程中,首先将查找配置文件并执行其中的命令。而这些初始化文件一般有vimrc、gvimrc和exrc三种。
利用:version
命令,可以得到配置文件的详细信息。
注意:如果执行gvim,那么$VIMRUNTIME/menu.vim也会被执行。
配置文件位置
vimrc是主配置文件,它有全局和用户两种版本。
全局vimrc文件,存放在Vim的安装目录中。可以使用以下命令,确定Vim的安装目录:
:echo $VIM
默认情况下,系统vimrc存放在以下位置:
Linux: /usr/share/vim/vimrc
Windows: c:\program files\vimrc
用户vimrc文件,存放在用户主目录中。可以使用以下命令,确定用户主目录:
:echo $HOME
默认情况下,用户vimrc存放在以下位置:
Linux: /home/username/.vimrc
Windows: c:\documents and settings\username\_vimrc
注意:用户配置文件优先于系统配置文件。
gvimrc是GVIM的配置文件,它也有全局和用户两种版本,并且存放在与vimrc相同的目录中。
默认情况下,系统gvimrc存放在以下位置:
Linux: /usr/share/vim/gvimrc
Windows: c:\program files\vim\_gvimrc
默认情况下,用户gvimrc存放在以下位置:
Linux: /home/username/.gvimrc
Windows: c:\documents and settings\username\_gvimrc
exrc文件,仅用于向后兼容olvi/ex,它的全局和用户两种版本也放置于vimrc相同的目录里。除非你使用vi-compatible模式,否则不需要关注exrc配置文件。
注意:在Unix和Linux下,vim的配置文件被命名为以点开头的隐藏文件;而在Windows下,配置文件则以下划线开头命名。
编辑配置文件
可以使用以下命令,新建缓冲区来编辑配置文件:
:edit $MYVIMRC
也可以使用以下命令,新建标签页来编辑配置文件:
:tabedit $MYVIMRC
例如,我们可以在配置文件中使用以下命令,来设置vim的选项:
:syntax on "打开语法加亮功能
:set shiftwidth=4 "设置缩进宽度为4个空格
其中,单引号(")为注释内容。
应用配置文件
修改配置文件后,需要重新启动Vim,或使用:source命令来应用新的设置:
:source $MYVIMRC
我们可以在配置文件中增加以下命令,在保存后自动应用配置:
autocmd bufwritepost .vimrc source $MYVIMRC