Created
May 7, 2018 11:12
-
-
Save noman798/b311d6fc9a603d00a24a4697ff3f3347 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""""""""""""""""""""""""""""""""""""" | |
" | |
" bundle 插件管理 | |
" 首先执行下面的命令安装Vundle | |
" git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim | |
" 安装命令 PluginInstall | |
""""""""""""""""""""""""""""""""""""""" | |
set nocompatible " be iMproved, required | |
filetype off " required | |
set rtp+=/usr/share/vim/vimfiles/bundle/Vundle.vim | |
call vundle#rc('/usr/share/vim/vimfiles/bundle') | |
Plugin 'Chiel92/vim-autoformat' | |
Plugin 'gmarik/Vundle.vim' "插件管理 | |
" Plugin 'Valloric/YouCompleteMe' "自动补全 | |
" Plugin 'Yggdroot/indentLine' "垂直缩进对齐线 | |
" Plugin 'bling/vim-airline' "底部状态栏 | |
" Plugin 'chrisbra/csv.vim' "CSV文件插件 | |
" Plugin 'edkolev/tmuxline.vim' "Airline支持tmux | |
" Plugin 'gregsexton/MatchTag' "html标签匹配高亮 | |
" Plugin 'mattn/emmet-vim' "zen-codeing | |
" Plugin 'terryma/vim-multiple-cursors' "多光标选择 | |
" Plugin 'vim-scripts/matchit.zip' "html标签跳转 | |
"Plugin 'btyh17mxy/yapf.vim' | |
Plugin 'maksimr/vim-jsbeautify' | |
Plugin 'dyng/ctrlsf.vim' "让ag支持上下文 | |
Plugin 'ervandew/supertab' "supertab 补全 | |
Plugin 'godlygeek/tabular' "自动对齐 | |
Plugin 'hynek/vim-python-pep8-indent' "python自动缩进 | |
Plugin 'jlfwong/vim-mercenary' "hg插件,支持blame和diff | |
Plugin 'kchmck/vim-coffee-script' "Coffee-script语法高亮 | |
Plugin 'keitheis/vim-plim' "plim | |
Plugin 'kien/ctrlp.vim' "根据文件名和文件内容模糊搜索并打开文件 | |
Plugin 'ludovicchabant/vim-lawrencium' "hg插件 | |
Plugin 'luochen1990/rainbow' "彩虹括号,匹配的括号显示为同一颜色 | |
Plugin 'rking/ag.vim' "ag插件 | |
Plugin 'scrooloose/nerdtree' "文件浏览 | |
Plugin 'scrooloose/syntastic' "语法检查 | |
Plugin 'tpope/vim-commentary' "批量注释 | |
Plugin 'vim-scripts/ctags.vim' "生成Tag,跟TagList搭配 | |
Plugin 'vim-scripts/mako.vim' "mako语法高亮 | |
Plugin 'vim-scripts/taglist.vim' "显示Tag | |
Plugin 'wavded/vim-stylus' "plim | |
Plugin 'yegappan/mru' "最近打开过的文件 | |
Plugin 'tell-k/vim-autopep8' "自动格式化 | |
call vundle#end() " required | |
filetype plugin indent on " required | |
"结束bundle | |
" if filereadable("/home/web/yapf.vim/plugin/yapf.vim") | |
" source /home/web/yapf.vim/plugin/yapf.vim | |
" endif | |
if filereadable("/home/web/.vim/bundle/google_yapf.vim/yapf.vim") | |
source /home/web/.vim/bundle/google_yapf.vim/yapf.vim | |
endif | |
autocmd FileType python set commentstring=#\ %s | |
autocmd FileType html set commentstring=#\ %s | |
autocmd FileType coffee set commentstring=#\ %s | |
autocmd FileType sh set commentstring=#\ %s | |
autocmd FileType conf set commentstring=#\ %s | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" 自定义函数 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
"定义 FormatRun() | |
func RunPy2InPy3() | |
call system("2to3-3.6 --fix=print --nobackups" . expand('%') . " -w &> /dev/null") | |
exec ":e %" | |
exec "!python %" | |
endfunc | |
"定义 FormatRun() | |
func FormatRun() | |
"运行python | |
if &filetype == 'html' | |
call HtmlBeautify() | |
exec "w" | |
endif | |
if &filetype == 'py'||&filetype == 'python' | |
exec "w" | |
call RunPy2InPy3() | |
endif | |
if &filetype == 'coffee' | |
exec "w" | |
exec "!coffee %" | |
endif | |
if &filetype == 'sh' | |
exec "w" | |
exec "!bash %" | |
endif | |
if &filetype == 'js'||&filetype == 'javascript' | |
call JsBeautify() | |
exec "w" | |
endif | |
endfunc | |
"结束定义FormatRun | |
"定义FormartSrc() | |
"需使用以下的格式化插件https://bitbucket.org/zuroc/42qu-linux-config | |
func FormartSrc() | |
exec "w" | |
if &filetype == 'c' | |
exec "!astyle --style=ansi --one-line=keep-statements -a --suffix=none %" | |
elseif &filetype == 'cpp' || &filetype == 'hpp' | |
exec "r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> | |
/dev/null 2>&1" | |
elseif &filetype == 'perl' | |
exec "!astyle --style=gnu --suffix=none %" | |
elseif &filetype == 'py'||&filetype == 'python' | |
exec "r !pydent % > /dev/null 2>&1" | |
elseif &filetype == 'java' | |
exec "!astyle --style=java --suffix=none %" | |
elseif &filetype == 'jsp' | |
exec "!astyle --style=gnu --suffix=none %" | |
elseif &filetype == 'xml' | |
exec "!astyle --style=gnu --suffix=none %" | |
endif | |
exec "e! %" | |
endfunc | |
"结束定义FormartSrc | |
"show hg diff with vim | |
function HgCiDiff() | |
"In .hgrc editor option I call vim "+HgCiDiff()" | |
"It opens new split with diff inside | |
rightbelow vnew | |
:.!hg diff | |
set ft=diff | |
saveas! /tmp/hgdiff.txt | |
execute "normal \<c-w>w" | |
endfunction | |
"end | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" 基本配置外观配置 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
syntax on | |
syntax enable | |
set encoding=utf-8 | |
set termencoding=utf-8 | |
set fileencoding=utf-8 | |
set nocompatible | |
set backspace=2 | |
set number "左侧显示行号 | |
"set ruler "底部显示行列号 | |
set sw=4 | |
set ts=4 | |
set softtabstop=4 expandtab | |
set expandtab | |
set hlsearch "搜索时匹配项高亮显示 | |
"set autoindent "新行自动缩进 | |
set cindent "C语言风格缩进 | |
set showcmd "命令行模式按tab补全命令 | |
set wildmenu "命令行模式按tab补全命令 | |
"根据缩进折叠代码 | |
set fdm=indent | |
filetype indent on | |
autocmd FileType python setlocal et sta sw=4 sts=4 | |
"python文件模板 | |
autocmd BufNewFile *.py 0r /etc/vim/bundle/template/vim.py | |
autocmd BufNewFile *.coffee 0r /etc/vim/bundle/template/vim.coffee | |
retab | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" ctrlp设置 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
let g:ctrlp_custom_ignore = { | |
\'file' : '\v\.(pyc|html\.py)$', | |
\} | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" nerdtree设置 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
let NERDTreeIgnore=['\.pyc$', '\~$', '__pycache__$'] | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" syntastic设置 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
"let g:syntastic_mode_map = { 'mode': 'active', 'active_filetypes': [],'passive_filetypes': ['html'] } | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_check_on_open = 1 | |
let g:syntastic_error_symbol = '→' | |
let g:syntastic_warning_symbol = '!' | |
let g:syntastic_html_tidy_ignore_errors=[" proprietary attribute \"ms_"] | |
let g:syntastic_python_checkers=['flake8'] | |
let g:syntastic_python_flake8_args='--ignore=E501,E225,E402,E265' | |
"let g:syntastic_python_checkers = ['pyflakes'] | |
"let g:syntastic_python_checkers = ['flake8'] | |
let g:syntastic_coffee_checkers = ['coffeelint'] | |
let g:syntastic_coffee_coffeelint_args = "-f ~/.coffeelint.json" | |
nnoremap <C-w>E :SyntasticCheck<CR> :SyntasticToggleMode<CR> | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" Taglist and Ctags | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 | |
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim | |
"let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口 | |
let Tlist_File_Fold_Auto_Close = 1 | |
"只显示当前文件tag,其它文件的tag都被折叠起来 | |
"set tags=/andes/project/mkdemo/src/tags | |
"F12生成/更新tags文件 | |
set tags=tags; | |
"set autochdir | |
"nmap <F12> :call UpdateTagsFile()<CR> | |
"设置F12快捷键 自动生成当前目录tags文件 | |
function! UpdateTagsFile() | |
silent !ctags -R --fields=+ianS --extra=+q | |
endfunction | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" airline | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
set laststatus=2 | |
"let g:airline_powerline_fonts = 1 | |
let g:airline#extensions#branch#enabled = 1 | |
let g:airline#extensions#syntastic#enabled = 1 | |
let g:airline#extensions#tabline#enabled = 1 | |
let g:tmuxline_separators = { | |
\ 'left' : '', | |
\ 'left_alt': '>', | |
\ 'right' : '', | |
\ 'right_alt' : '<', | |
\ 'space' : ' '} | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" ycm setting | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
"let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/yum_extra_conf.py' | |
let g:ycm_collect_identifiers_from_tags_files = 1 | |
let g:ycm_seed_identifiers_with_syntax = 1 | |
let g:ycm_autoclose_preview_window_after_insertion = 1 | |
let g:ycm_autoclose_preview_window_after_completion = 1 | |
let g:ycm_confirm_extra_conf = 0 | |
"let g:ycm_server_keep_logfiles = 1 "写入日志文件 | |
"let g:ycm_server_log_level = 'debug' "打开调试模式 | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" autopep8自动格式化设置 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
let g:autopep8_disable_show_diff=1 | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" 颜色主题 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
set t_Co=256 | |
set background=dark | |
hi Boolean ctermfg=141 | |
hi Character ctermfg=222 | |
hi ColorColumn ctermbg=236 | |
hi Conditional ctermfg=64 | |
hi Constant ctermfg=121 cterm=bold | |
hi Cursor ctermfg=16 ctermbg=253 | |
hi CursorColumn ctermbg=236 | |
hi CursorLine ctermbg=240 cterm=none | |
hi CursorLineNr ctermfg=208 cterm=none | |
hi Debug ctermfg=225 cterm=bold | |
hi Define ctermfg=81 | |
hi Delimiter ctermfg=241 | |
hi DiffAdd ctermbg=24 | |
hi DiffChange ctermfg=181 ctermbg=239 | |
hi DiffDelete ctermfg=125 ctermbg=233 | |
hi DiffText ctermbg=102 cterm=bold | |
hi Directory ctermfg=154 cterm=bold | |
hi Error ctermfg=219 ctermbg=89 | |
hi ErrorMsg ctermfg=199 ctermbg=16 cterm=bold | |
hi Exception ctermfg=64 cterm=bold | |
hi Float ctermfg=141 | |
hi FoldColumn ctermfg=67 ctermbg=16 | |
hi Folded ctermfg=67 ctermbg=16 | |
hi Function ctermfg=154 | |
hi Identifier ctermfg=208 cterm=none | |
hi Ignore ctermfg=244 ctermbg=232 | |
hi IncSearch ctermfg=193 ctermbg=16 | |
hi Keyword ctermfg=197 cterm=bold | |
hi Label ctermfg=229 cterm=none | |
hi LineNr ctermfg=239 ctermbg=black | |
hi Macro ctermfg=193 | |
hi MatchParen ctermfg=233 ctermbg=208 cterm=bold | |
hi MoreMsg ctermfg=229 | |
hi NonText ctermfg=59 | |
hi Normal ctermfg=252 ctermbg=black | |
hi Number ctermfg=148 | |
hi Pmenu ctermfg=81 ctermbg=16 | |
hi PmenuSbar ctermbg=232 | |
hi PmenuSel ctermfg=255 ctermbg=242 | |
hi PmenuThumb ctermfg=81 | |
hi PreCondit ctermfg=118 cterm=bold | |
hi PreProc ctermfg=118 | |
hi Question ctermfg=81 | |
hi Operator ctermfg=64 | |
hi SpecialChar ctermfg=64 cterm=bold | |
hi Repeat ctermfg=64 cterm=bold | |
hi Statement ctermfg=64 cterm=bold | |
hi Tag ctermfg=64 | |
hi keyword ctermfg=64 cterm=bold | |
hi Search ctermfg=0 ctermbg=222 cterm=NONE | |
hi SignColumn ctermfg=118 ctermbg=235 | |
hi Special ctermfg=81 | |
hi SpecialComment ctermfg=245 cterm=bold | |
hi SpecialKey ctermfg=239 | |
hi StatusLine ctermfg=238 ctermbg=253 | |
hi StatusLineNC ctermfg=244 ctermbg=232 | |
hi StorageClass ctermfg=208 | |
hi String ctermfg=144 | |
hi Structure ctermfg=81 | |
hi Title ctermfg=166 | |
hi Todo ctermfg=231 ctermbg=232 cterm=bold | |
hi Type ctermfg=81 cterm=none | |
hi Typedef ctermfg=81 | |
hi Underlined ctermfg=244 cterm=underline | |
hi VertSplit ctermfg=244 ctermbg=232 cterm=bold | |
hi Visual ctermbg=238 | |
hi VisualNOS ctermbg=238 | |
hi WarningMsg ctermfg=231 ctermbg=238 cterm=bold | |
hi WildMenu ctermfg=81 ctermbg=16 | |
hi Comment ctermfg=59 | |
"set cursorline "光标所在行高亮 | |
let g:rainbow_active = 1 "彩虹括号 | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" 解决长行文本变卡 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
"set synmaxcol=128 | |
set ttyfast | |
set ttyscroll=3 | |
set lazyredraw | |
""""""""""""""""""""""""""""""""""""""" | |
" | |
" 快捷键 | |
" | |
""""""""""""""""""""""""""""""""""""""" | |
"解决组合快捷键导致某些快捷键变卡的问题 | |
"例如如果map了np, 就会导致搜索n有一个很长的反应时间 | |
set timeoutlen=200 | |
map <F12> :call FormatRun()<CR> | |
"map <F10> :SyntasticCheck pyflakes<CR> | |
"map <F9> :SyntasticCheck python<CR> | |
"map <F8> :res-1<CR> | |
"map <F7> :res+1<CR> | |
"map <F6> :vertical res-1<CR> | |
"map <F5> :vertical res+1<CR> | |
"map <F4> :call FormartSrc()<CR> | |
"map <F3> :set paste<CR> | |
"map <F2> :set nopaste<CR> | |
"ag搜索 | |
nmap <C-S>f :CtrlSF | |
nmap <C-S>o :CtrlSFOpen<CR> | |
nmap ss :CtrlSF <C-R><C-W><CR> | |
vnoremap ss y:CtrlSF <C-R>"<CR> | |
vnoremap <C-Tab> :Tabularize <C-R><C-W><CR> | |
vnoremap <Backspace> :Commentary <CR> | |
nmap <C-N>t :NERDTree<cr> | |
nmap mr :MRU<cr> | |
nmap tl :TlistToggle<cr> | |
nmap bn :bn<cr> | |
nmap bp :bp<cr> | |
nmap ne :lnext<cr> | |
nmap pe :lprev<cr> | |
autocmd BufWritePre *.py :%s/^\(\s*print\)\s\+\(.*\)/\1(\2)/e | |
autocmd BufWritePre *.{cpp,c,d,slm,py,coffee,conf,html,sh,scss,css,js} :%s/\t/ /e | |
autocmd BufWrite *.{txt,cpp,c,d,slm,py,coffee,conf,html,sh,scss,css,js} :RemoveTrailingSpaces | |
au BufWrite *.py,*.html,*.scss,*.css :Autoformat | |
set viminfo='100,<10000,s1000,h |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment