Skip to content

Instantly share code, notes, and snippets.

@noman798
Created May 7, 2018 11:12
Show Gist options
  • Save noman798/b311d6fc9a603d00a24a4697ff3f3347 to your computer and use it in GitHub Desktop.
Save noman798/b311d6fc9a603d00a24a4697ff3f3347 to your computer and use it in GitHub Desktop.
""""""""""""""""""""""""""""""""""""""
"
" 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