CentOS 7
sudo yum install git cscope ctags-etags vim-X11
Ubuntu 16
sudo apt-get install exuberant-ctags cscope vim-gtk git
Install vim plugin manager
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
git clone https://github.com/powerline/fonts
cd fonts && ./install.sh
.vimrc
Create the ~/.vimrc following text
"====================================================================
" Start vundle
"====================================================================
set nocompatible " be iMproved, required
filetype off " required
syntax on
set backspace=indent,eol,start
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
"===============================================================
" Write your plugins here
"===============================================================
" Layout
Plugin 'Yggdroot/indentLine'
Plugin 'ntpeters/vim-better-whitespace'
" Git info
Plugin 'tpope/vim-fugitive'
" C code trace
Plugin 'chazy/cscope_maps'
Plugin 'erig0/cscope_dynamic'
Plugin 'vim-scripts/taglist.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'wesleyche/SrcExpl'
Plugin 'majutsushi/tagbar'
" Integrate tools
Plugin 'wesleyche/Trinity'
" Files/search
Plugin 'kien/ctrlp.vim'
Plugin 'scrooloose/nerdtree'
" Python
Plugin 'nvie/vim-flake8'
Plugin 'vim-scripts/python.vim'
Plugin 'python-mode/python-mode'
Plugin 'vim-scripts/python_match.vim'
Plugin 'vim-scripts/indentpython.vim'
Plugin 'vim-syntastic/syntastic'
" MISC
Plugin 'vim-airline/vim-airline'
"====================================================================
" Run vundle
"====================================================================
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
"====================================================================
" Tagbar Settings
"====================================================================
" Open and close the tagbar separately
nmap <F7> :TagbarToggle<CR>
"====================================================================
" Trinity Settings
"====================================================================
" Open and close all the three plugins on the same time
nmap <F8> :TrinityToggleAll<CR>
" Open and close the Source Explorer separately
nmap <F9> :TrinityToggleSourceExplorer<CR>
" Open and close the Taglist separately
nmap <F10> :TrinityToggleTagList<CR>
" Open and close the NERD Tree separately
nmap <F11> :TrinityToggleNERDTree<CR>
"====================================================================
" Airline settings
"====================================================================
let g:airline_powerline_fonts = 1
set laststatus=2
"====================================================================
" Editor and display Settings
"====================================================================
colorscheme koehler " Color for gvim
set hlsearch " Highlight search
set guifont=Inconsolata\ for\ Powerline\ 24 " Font
set cursorline " Hight background at current cursor line
set nu " Display line numbers
" Set background color at colum 80
set colorcolumn=80
highlight ColorColumn guibg=#202020
" Show tabs
set listchars=tab:\|.
set list
"====================================================================
" Indent Settings
"====================================================================
" Tabs
set ts=4
set shiftwidth=4
set expandtab
" visual indent shift
vnoremap < <gv
vnoremap > >gv
"====================================================================
" SrcExpl Settings
"====================================================================
" Open and close the SrcExpl separately
" // The switch of the Source Explorer
nmap <F6> :SrcExplToggle<CR>
" // Set the height of Source Explorer window
let g:SrcExpl_winHeight = 8
" // Set 100 ms for refreshing the Source Explorer
let g:SrcExpl_refreshTime = 100
" // Set "Enter" key to jump into the exact definition context
let g:SrcExpl_jumpKey = "<ENTER>"
" // Set "Space" key for back from the definition context
let g:SrcExpl_gobackKey = "SPACE>"
" // In order to avoid conflicts, the Source Explorer should know what plugins
" // except itself are using buffers. And you need add their buffer names into
" // below listaccording to the command ":buffers!"
let g:SrcExpl_pluginList = [
\ "__Tag_List__",
\ "_NERD_tree_"
\ ]
" // Enable/Disable the local definition searching, and note that this is not
" // guaranteed to work, the Source Explorer doesn't check the syntax for now.
" // It only searches for a match with the keyword according to command 'gd'
let g:SrcExpl_searchLocalDef = 1
" // Do not let the Source Explorer update the tags file when opening
let g:SrcExpl_isUpdateTags = 0
" // Use 'Exuberant Ctags' with '--sort=foldcase -R .' or '-L cscope.files' to
" // create/update the tags file
let g:SrcExpl_updateTagsCmd = "ctags --sort=foldcase -R ."
" // Set "<F12>" key for updating the tags file artificially
let g:SrcExpl_updateTagsKey = "<F12>"
" // Set "<F3>" key for displaying the previous definition in the jump list
let g:SrcExpl_prevDefKey = "<F3>"
" // Set "<F4>" key for displaying the next definition in the jump list
let g:SrcExpl_nextDefKey = "<F4>"
"====================================================================
" Pymode
"====================================================================
let g:pymode_folding = 0
"====================================================================
" MISC Settings
"====================================================================
" Shared unamed regitered with primary selection
set clipboard+=unnamed
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py'
"====================================================================
" Python Settings
"====================================================================
set encoding=utf-8
let python_highlight_all=1
au BufNewFile,BufRead *.py
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\ set fileformat=unix
Install vim Plugins
- vim
- Type the command in vim
- :PluginInstall