将 VIM 打造成一个简单的IDE

1. 安装 vundle —— VIM插件管理器,很实用

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

2. 添加插件

可以直接编辑 .vimrc 文件

下面是我的 .vimrc 

syntax on
set nocompatible  
set background=dark
"colorscheme blackbeauty
"colorscheme blacksea

"TAB 宽度
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4

set showmatch

"自动缩进
set autoindent
set smartindent
set cindent


"显示行号
set number
"搜索逐字符高亮
set incsearch
"搜素时高亮显示被找到的文本
set hlsearch

"设置工作目录为当前编辑文件的目录
set bsdir=buffer
set autochdir

"编辑vimrc之后,重新加载
autocmd! bufwritepost _vimrc source $VIM/_vimrc

"#################插件管理#####################
               
filetype on
filetype plugin on
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle required!
Bundle 'gmarik/vundle'

"shortcuts
map  :NERDTreeToggle
map  :silent! Tlist


" My bundles.

" 文件管理器
Bundle 'scrooloose/nerdtree'
" 让Tree把自己给装饰得多姿多彩漂亮点
let NERDChristmasTree=1
" 控制当光标移动超过一定距离时,是否自动将焦点调整到屏中心
let NERDTreeAutoCenter=1
" 指定鼠标模式(1.双击打开 2.单目录双文件 3.单击打开)
let NERDTreeMouseMode=2
" 是否默认显示书签列表
let NERDTreeShowBookmarks=1
" 是否默认显示文件
let NERDTreeShowFiles=1
" 是否默认显示行号
let NERDTreeShowLineNumbers=0
" 窗口位置('left' or 'right')
let NERDTreeWinPos='left'
" 窗口宽度
let NERDTreeWinSize=31
" 以打开NERDTree时的目录为工作目录
let NERDTreeChDirMode=1

" 注释插件
Bundle 'The-NERD-Commenter'

Bundle 'davidhalter/jedi-vim'

Bundle 'majutsushi/tagbar'

Bundle 'wesleyche/SrcExpl'

" 状态栏增强
Bundle 'https://github.com/Lokaltog/vim-powerline.git'
set guifont=PowerlineSymbols "for Powerline
set laststatus=2
set t_Co=256
let g:Powerline_symbols='unicode'
set encoding=utf8

" C/C++ 自动补全
Bundle 'OmniCppComplete'
set tags=tags;
" tags目录
set tags+=$VIM/vimfiles/tags/cpp
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" automatically open and close the popup menu / preview window
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest,preview


Bundle 'taglist.vim'
" 让taglist窗口出现在Vim的右边
let Tlist_Use_Right_Window = 1 
" 当同时显示多个文件中的tag时,设置为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。
let Tlist_File_Fold_Auto_Close = 1 
" 只显示一个文件中的tag,默认为显示多个
let Tlist_Show_One_File = 1 
" Tag的排序规则,以名字排序。默认是以在文件中出现的顺序排序
let Tlist_Sort_Type ='name' 
" Taglist窗口打开时,立刻切换为有焦点状态
let Tlist_GainFocus_On_ToggleOpen = 1 
" 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow = 1 
" 设置窗体宽度为32,可以根据自己喜好设置
let Tlist_WinWidth = 32 
" 这里比较重要了,设置ctags的位置,不是指向MacOS自带的那个,而是我们用homebrew安装的那个
let Tlist_Ctags_Cmd ="/usr/local/Cellar/ctags/5.8_1/bin/ctags"



" The rest of config.
augroup vimrc_autocmds
autocmd!
" highlight characters past column 120
autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black
autocmd FileType python match Excess /\%120v.*/
autocmd FileType python set nowrap
augroup END


 "激活插件与文件类型的依赖关系
filetype plugin indent on     " required!

" Brief help
" :BundleList
" :BundleInstall
" :BundleSearch foo
" :BundleClean

保存后再次打开 vim 可能会提示错误,没关系,进入 vim 之后 :BundleInstall 一下就可以直接安装插件了。

下面简单介绍一下几个插件的功能


3. NERDTree

一个文件管理器,可以浏览当前文件夹下的所有源文件,可以方便地在各个文件中切换

我设置了快捷键 F2 ,可以显示 所有文件


4. Powerline

一个状态栏增强插件,彩色显示当前的插入、正常状态,可以显示文件进度、当前光标位置。如下:


其他de不一一介绍了下面是我的一张运行效果截图

将 VIM 打造成一个简单的IDE_第1张图片


你可能感兴趣的:(VIM)