构建vim IDE


参考 Vim 安装、基本配置、使用、插件

1. vim基础

vimrc配置

syntax=on                             "语法高亮
set nu                                "显示行号
set tabstop=4                         "修改tap宽度为4
set autoindent                        "自动缩进
set mouse=a                           "可以使用鼠标
set cursorline                        "高亮显示当前行
set guifont=Courier_New:h10:cANSI     "设置字体Courier_New,大小10号
set filetype=on                       "打开文件类型检测功能

" 设置自动缩进
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4

"设置文本宽度,当文本很长的时候,按照长度自动拆分
set textwidth=200

"控制哪些字符可以通过%命令进行匹配, 
"在开括号“(,{,[”上点击%键,将会自动跳转到对应的闭括号“),},]”上;
"同理,在闭括号上点击%键,也会跳转回到对应的开括号上;
"同时,匹配跳转也能够正确处理括号嵌套的情况。
set showmatch
set matchpairs=(:),{:}

"支持{}、[]、()、""、''自动补全  
inoremap ( <c-r>=OpenPair('(')<CR>  
inoremap ) <c-r>=ClosePair(')')<CR>  
inoremap { <c-r>=OpenPair('{')<CR>  
inoremap } <c-r>=ClosePair('}')<CR>  
inoremap [ <c-r>=OpenPair('[')<CR>  
inoremap ] <c-r>=ClosePair(']')<CR>  
" just for xml document, but need not for now.  
"inoremap < <c-r>=OpenPair('<')<CR>  
"inoremap > <c-r>=ClosePair('>')<CR>  

function! OpenPair(char)  
    let PAIRs = {  
                \ '{' : '}',  
                \ '[' : ']',  
                \ '(' : ')',  
                \ '<' : '>'  
                \}  

    if line('$')>2000  
        let line = getline('.')  
        let txt = strpart(line, col('.')-1)  
    else  
        let lines = getline(1,line('$'))  
        let line=""  
        for str in lines  
            let line = line . str . "\n"  
        endfor  
        let blines = getline(line('.')-1, line("$"))  
        let txt = strpart(getline("."), col('.')-1)  
        for str in blines  
            let txt = txt . str . "\n"  
        endfor  
    endif  

    let oL = len(split(line, a:char, 1))-1  
    let cL = len(split(line, PAIRs[a:char], 1))-1  
    let ol = len(split(txt, a:char, 1))-1  
    let cl = len(split(txt, PAIRs[a:char], 1))-1  
    if oL>=cL || (oL<cL && ol>=cl)  
        return a:char . PAIRs[a:char] . "\<Left>"  
    else  
        return a:char  
    endif  
endfunction  

function! ClosePair(char)  
    if getline('.')[col('.')-1] == a:char  
        return "\<Right>"  
    else  
        return a:char  
    endif  
endf  

inoremap ' <c-r>=CompleteQuote("'")<CR>  
inoremap " <c-r>=CompleteQuote('"')<CR>  

function! CompleteQuote(quote)  
    let ql = len(split(getline('.'), a:quote, 1))-1  
    let slen = len(split(strpart(getline("."), 0, col(".")-1), a:quote, 1))-1  
    let elen = len(split(strpart(getline("."), col(".")-1), a:quote, 1))-1  
    let isBefreQuote = getline('.')[col('.') - 1] == a:quote  
    
    if '"'==a:quote && "vim"==&ft && 0==match(strpart(getline('.'), 0, col('.')-1), "^[\t ]*$")  
        " for vim comment.  
        return a:quote  
    elseif "'"==a:quote && 0==match(getline('.')[col('.')-2], "[a-zA-Z0-9]")  
        " for Name's Blog.  
        return a:quote  
    elseif (ql%2)==1  
        " a:quote length is odd.  
        return a:quote  
    elseif ((slen%2)==1 && (elen%2)==1 && !isBefreQuote) || ((slen%2)==0 && (elen%2)==0)  
        return a:quote . a:quote . "\<Left>"  
    elseif isBefreQuote  
        return "\<Right>"  
    else  
        return a:quote . a:quote . "\<Left>"  
    endif  
endfunction 

2. vim插件

2.1 Vim插件管理器

  1. git clone https://github.com/VundleVim/Vundle.vim.git 到路径 ~/.vim/bundle下
    安装插件管理器
  2. 修改~/.vimrc文件
set nocompatible
filetype off

set rtp += ~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

call vundle#end()
filetype plugin indnet on
  1. 随便用vim打开一个文件,执行PluginInstall:
    执行PluginInstall

2.2 Nerd Tree插件

该插件用来构建目录树

  1. 安装,将下列语句置于call vundle#begin()和vundle#end()中间
Plugin 'scrooloose/nerdtree'
  1. 修改配置文件 ~/.vimrc,添加下列语句
"nerdtree
autocmd vimenter * NERDTree    "打开vim,自动开启nerd tree
map <F3> : NERDTreeMinrror<CR>  "通过F3打开/关闭 nerd tree
map <F3> : NERDTreeToggle<CR>
  1. 随便用vim打开一个文件,执行PluginInstall:
    NERDTree

2.3 ctags安装

因为tagbar和ctrlp的安装都需要有tags标签,所以需要先安装ctags

  1. 安装ctags
apt-get install ctags
  1. 到根目录下执行命令
ctags -R
  1. 设置tags路径
set tags = /tags所在文件夹的路径/tags
set autochdir

2.4 tagbar插件

该插件用来浏览文件结构

  1. 安装,将下列语句置于call vundle#begin()和vundle#end()中间
Plugin 'majutsushi/tagbar'
  1. 修改配置文件 ~/.vimrc,添加下列语句
"tagbar
nmap <F8> : TagbarToggle<CR>        "通过F8打开/关闭Tagbar
  1. 随便用vim打开一个文件,执行PluginInstall
    Tagbar

2.5 ctrlp文本搜索工具

该插件用来浏览文件结构

  1. 安装,将下列语句置于call vundle#begin()和vundle#end()中间
Plugin 'kien/ctrlp.vim'
  1. 修改配置文件 ~/.vimrc,添加下列语句
"ctrlp
let g:airline_cmd = 'CtrlP'            " cltr + p 按键启动
  1. 随便用vim打开一个文件,执行PluginInstall
    ctrlp

3. vim配色

  1. 下载或者编辑某个配色方案的.vim文件,保存到~/.vim/colors目录下
    例如:
    molokai

  2. 修改vim配置文件 ~/.vimrc,增加配置项

colorscheme molokai
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值