macOS中Vim基本配置,颜色主题/语法/indent设置

时间:2023-12-30 12:48:44

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:

Exvim是一个第三方vim的格式配置方案,旨在将vim变成一个IDE。

官方网站:http://www.ex-dev.com/exvim/wiki/index.php?title=Main_Page

安装及配置:

  1. 下载Exvim安装包,解压到~/文件夹下。安装对应工具和配置。所用命令:
    cp -R toolkit ~/.toolkit 
    cp -R vimfiles ~/.vim
  2. 安装外部工具(使用第三方软件管理器)
    必装工具:ctags,idutils,gawk,sed,findutils
    选装工具:cscope,graphviz,source-highlight,python
  3. 设置toolkit路径
    在.vimrc中添加toolkit路径
    let g:ex_toolkit_path = ‘~/.toolkit’
  4. 设置.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>
在安装Exvim的过程中会需要安装一些外部工具以提供支持,在mac环境下就需要借助一些第三方软件资源管理器来达到这一目的。
  1. 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
  2. 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
  3. 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。

vim语法设置:/usr/share/vim/vim80/syntax。

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 配置文件 ,高亮+自动缩进+行号+折叠+优化

将一下代码copy到 用户目录下 新建文件为  .vimrc
保存即可生效; 如果想所有用户生效 请修改 /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命令,可以得到配置文件的详细信息。

macOS中Vim基本配置,颜色主题/语法/indent设置

注意:如果执行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