vim 配置

219 阅读2分钟
  • 自用的 .vimrc 配置,使用了 ctrlpvim/ctrlp.vim 实现文件查找,使用了 bling/vim-airline 美化标题栏,使用了 preservim/tagbar 实现了查看函数列表
set nocompatible              " be iMproved, required
set paste
set clipboard=unnamed
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

"
Bundle 'Valloric/YouCompleteMe'

" 文件搜索
Bundle 'ctrlpvim/ctrlp.vim'

" 文本搜索
Bundle 'junegunn/fzf'
Bundle 'junegunn/fzf.vim'

" 括号匹配高亮
Bundle 'kien/rainbow_parentheses.vim'

" 可视化缩进
Bundle 'nathanaelkane/vim-indent-guides'

" 标签导航
Bundle 'vim-scripts/ctags.vim'

"目录树导航
Bundle 'scrooloose/nerdtree'

" 配色
Bundle 'vim-scripts/python.vim'

" ale
Bundle 'w0rp/ale'

" 缩进线
Bundle 'Yggdroot/indentLine'

"
Bundle 'vim-python/python-syntax'

"
Bundle 'bling/vim-airline'
Bundle 'vim-airline/vim-airline-themes'

"
Bundle 'preservim/tagbar'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
filetype on

" autoread
set autoread

" encoding
set encoding=utf-8
set ffs=unix,dos,mac
set langmenu=zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 
set fileencoding=utf-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
set helplang=cn

set ambiwidth=double
let laststatus = 2
set nu
set showcmd
set showmatch
set nobackup
set backspace=2
set mouse=a

" tab设置
set smarttab
set tabstop=4
set softtabstop=4
set autoindent
set shiftwidth=4
set noexpandtab

" 语法高亮
syntax enable
syntax on

" Fomat工具(快捷的可以自行修改)
noremap<F7> :!isort %<cr>

" 配色方案
colorscheme molokai
" colorscheme desert
" colorscheme koehler
" 搜索高亮
set hlsearch

" 文件历史缓存设置
set undofile
set undodir=~/.vim/undodir
silent !mkdir ~/.vim/undodir > /dev/null 2>&1

" NERDTree
let NERDTreeDirArrows = 0
let g:NERDTreeWinSize = 50
map <F2> :NERDTreeMirror<CR>
map <F5> :NERDTreeToggle<CR>

" 设置切换Buffer快捷键"
nnoremap <C-N> :bn<CR>
nnoremap <C-M> :bp<CR>

" 查询跳转
nnoremap <F10> :cn<CR>
nnoremap <F11> :cprev<CR>

" 保存
nmap <C-S> :w!<CR>
vmap <C-S> <C-C>:w!<CR>
imap <C-S> <Space><CR><ESC>:w!<CR>
cmap <C-S> <Esc>:w!<CR>

" 自动 ctags
function! UpdateCtags()
    let curdir=getcwd()
	while !filereadable("./tags")
	    cd ..
		if getcwd() == "/"
			break
		endif
	endwhile
    if filewritable("./tags")
	    !/home/chensentian/download/ctags -R .
	endif
	execute ":cd " . curdir
endfunction
nmap <F9> :call UpdateCtags()<CR>
autocmd BufWritePost *.c,*.h,*.hpp,*.cpp,*.py call UpdateCtags()

" python 格式化
nnoremap <C-I> :%!isort %<CR>:edit!<CR>
nnoremap <C-F> :%!black --line-length 120 %<CR>:edit!<CR>

let g:indentLine_enabled=0
let g:python_highlight_all = 1

" airline
let g:airline_powerline_fonts = 1
let g:airline_theme="tomorrow"
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#buffer_nr_show = 1

"
nnoremap [b :bp<CR>
nnoremap ]b :bn<CR>
set guifont=Powerline_Consolas:h14:cANSI

" 打开 quickfix
noremap <C-Q> :copen<CR>
noremap <C-E> :cclose<CR>

" 打开终端
noremap <C-T> :botright terminal<CR>

"
let g:tagbar_ctags_bin="/home/chensentian/download/ctags"
let g:tagbar_width=60
map <F12> :Tagbar<CR>