Vim配置

前言

我使用 Vim 主要是为了写 C/C++ 程序,这里记录了一些配置步骤,给自己做个备份,也给来访的朋友做个参考。

Vim的配置,主要体现在 vimrc 上。我觉得 vimrc 里的配置项,可以分成三类:

  • 功能配置项:自带功能的设置,比如 set nu (显示标尺)。
  • 自由配置项:根据自身需要,编写的一些命令甚至函数,比如通过 map 映射实现补全括号。
  • 插件配置项:对安装的插件的配置

这篇文章也分这三部分,来介绍我的配置。

文章目录:

  • 前言
  • 功能配置项
  • 自由配置项
  • 插件配置项

功能配置项

" ==判断操作系统== " windows系统下的配置
if(has("win64") || has("win32"))
    let g:isWin = 1
    let g:isUnix = 0
else
    let g:isWin = 0
    let g:isUnix = 1
endif

" ==功能配置项== " 不与 Vi 模式兼容
set nocompatible
" 显示行号 set nu " 安装的 Vundle 插件要求此项为 off
filetype off
" 开启语法高亮 syntax on " 开启自动缩进,缩进宽度为 4 个空格
set autoindent shiftwidth=4
" 开启 C 语言风格的自动缩进,缩进宽度为 4 个空格(不知道和autoindent的区别是啥) set cindent shiftwidth=4 " 设置 tab 键缩进宽度为4个空格
set tabstop=4
" 设置高亮显示匹配的括号 set showmatch " 设置输入 / 搜索时,实时高亮显示查找结果
set incsearch
" 设置字符终端中允许接收鼠标控制 set mouse=a if(g:isWin) set guifont=Consolas:h12 colorscheme desert endif if(g:isUnix) " 解决有时windows下文件在Linux下阅读发现中文乱码的问题
    set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
endif

自由配置项

" ==自由配置项==
" 对圆括号自动补全
inoremap ( ()<ESC>i
" 对方括号自动补全
inoremap [ []<ESC>i
"对尖括号自动补全
inoremap < <><ESC>i
" 对双引号自动补全
inoremap " ""<ESC>i
" 对单引号自动补全
inoremap ' ''<ESC>i
" 对花括号自动补全
inoremap { {}<ESC>i

" 设置 Ctrl+w 键为保存键
map <C-w> <ESC>:w<CR>i

插件配置项

说到插件配置项,不免要提一提插件的安装与使用。目前来说,可以通过 Vundle 插件很方便地从 Vim Scripts 网站上下载安装各种插件。Vim Scripts 网站的搜索功能在其页面导航栏的 All Scrpits 中。

我现在使用的 Vim 插件有下面这几样,具体的用法等本文不作介绍,网络上有很多介绍它们的文章。再次说一遍,所有的插件都可以很方便地通过 Vundle 来下载安装,所以这是一个必装的插件。Vundle 插件依赖于 git 和 curl,要使用 Vundle,必须首先保证这两个工具在系统里全局可用。我用的插件列表如下:

  • Vundle 插件管理器
  • Tagbar 替代taglist的
  • ctrlp.vim 快速搜索跳转到工程内的其它文件
  • The-NERD-tree 文件夹浏览器

具体配置如下:

" ==插件配置项==
" Vundle settings {
" windows上装vundle,要注意路径
if (g:isWin)
    set rtp+=D:\programFiles\Vim\vimfiles\bundle\Vundle.vim\
    call vundle#begin('D:\programFiles\Vim\vimfiles\bundle\')
else
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
endif

    " 方便管理插件
    Plugin 'VundleVim/Vundle.vim'
    " 替代taglist
    Plugin 'Tagbar'
    " 快速搜索打开文件
    Plugin 'ctrlp.vim'
    " 文件夹浏览器
    Plugin 'The-NERD-tree'

    call vundle#end()
    filetype plugin indent on
" }

" NERDtree {
map <F4> <ESC>:NERDTreeToggle<CR>
" }

" Tagbar {
" 为 Tagbar 插件定制
nmap <F3> :TagbarToggle<CR>
" }

以上三个部分贴到同一个 vimrc 里,就是我的 Vim 配置了。(完)

本文最后更新于 2016-4-8

你可能感兴趣的:(vim)