vim : personal back up 2108.4.14 sat

back up of vimrc

CHANGE from vimplus of chxuan

"  
"             __                __            
"     __   __/_/___ ___  ____  / /_  _______  
"     \ \ / / / __ `__ \/ __ \/ / / / / ___/  
"      \ V / / / / / / / /_/ / / /_/ (__  )  
"       \_/_/_/ /_/ /_/ ,___/_/\____/____/  
"                    /_/  
"              
"  
" Source: https://github.com/chxuan/vimplus  
  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 通用设置  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 定义快捷键的前缀,即<Leader>  
let mapleader = ","  
" 开启文件类型侦测  
filetype on  
" 根据侦测到的不同类型加载对应的插件  
filetype plugin on  
" 不让vim发出讨厌的滴滴声  
set noerrorbells  
set vb t_vb=  
" 不要使用vi的键盘模式,使用vim自己的  
set nocompatible  
" 去掉输入错误的提示  
set noeb  
" 告诉我们文件的哪一行被改变过  
set report=0  
" 可以在buffer的任何地方使用鼠标  
set mouse=a  
set selection=exclusive  
"set selectmode=mouse,key  
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o

"encoding
set encoding=utf-8
set termencoding=utf-8
"set fileencodings=utf-8,gbk,latin1
set fileencoding=utf-8
"## setting  
set fencs=utf-8,GB18030,ucs-bom,default,latin1  
set clipboard=unnamed  
"set mousemodel=popup  
set selection=inclusive
"指定在选择文本时, 光标所在位置也属于被选中的范围。
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 显示设置  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 开启语法高亮功能  
syntax enable  
" 允许指定语法高亮配色方案替换默认方案  
syntax on  
" 开启256色支持,默认是8色  
set t_Co=256  
" 命令行显示输入的命令  
set showcmd           
" 命令行的高度  
set cmdheight=2  
" 命令行显示vim当前模式  
set showmode  
" 总是显示状态栏  
set laststatus=2  
" 开启行号显示  
set number  
" 显示光标当前位置  
set ruler             
" 高亮显示当前行/列  
set cursorline  
" set cursorcolumn  
" 用浅色高亮当前行  
autocmd InsertEnter * se cul      
" 禁止显示菜单和工具条  
set guioptions-=T             
set guioptions-=m             
" 禁止显示滚动条  
set guioptions-=l  
set guioptions-=L  
set guioptions-=r  
set guioptions-=R  
" 字符间插入的像素行数目  
set linespace=0  
" 在被分割的窗口间显示空白,便于阅读  
set fillchars=vert:\ ,stl:\ ,stlnc:\  
" 高亮显示匹配的括号  
set showmatch  
" 匹配括号高亮的时间(单位是十分之一秒)  
set matchtime=1  
" 光标移动到buffer的顶部和底部时保持3行的距离  
set scrolloff=3  
" 带有如下符号的单词不要被换行分割  
set iskeyword+=_,$,@,%,#,-  
" 允许backspace和光标键跨越行边界  
set whichwrap+=<,>,h,l  
  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 代码缩进和排版  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 设置自动缩进  
set autoindent  
" 设置使用C/C++语言的自动缩进方式  
set cindent  
" 设置C/C++语言的具体缩进方式  
set cinoptions=g0,:0,N-s,(0  
" 智能的选择对其方式  
set smartindent  
" 自适应不同语言的智能缩进  
filetype indent on  
" 将制表符扩展为空格  
set expandtab  
" 设置编辑时制表符占用空格数  
set tabstop=4  
" 设置格式化时制表符占用空格数  
set shiftwidth=4  
" 让vim把连续数量的空格视为一个制表符  
set softtabstop=4  
" 在行和段开始处使用制表符  
set smarttab  
" 历史文件中需要记录的行数  
set history=1000  
" 禁止/开启折行  
set wrap  
"set nowrap  
" 使用回格键正常处理indent,eol,start等  
set backspace=2 


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 搜索设置  
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" " 高亮显示搜索结果  
 set hlsearch  
" " 开启实时搜索功能  
 set incsearch  
" " 搜索时大小写不敏感  
 set ignorecase  
" When searching try to be smart about cases 
set smartcase
" " 设置魔术  
 set magic                     
"   
"   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 代码折叠  
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" " 基于缩进或语法进行代码折叠  
 set foldmethod=indent  
" "set foldmethod=syntax  
" " 启动vim时关闭折叠代码  
 set nofoldenable  
"   
"   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 代码补全  
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" " vim自身命名行模式智能补全  
 set wildmenu  
" " 补全内容不以分割子窗口形式出现,只显示补全列表  
 set completeopt-=preview  
"   
"   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 缓存设置  
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" " 禁止生成临时文件  
" set nobackup  
" set noswapfile  
" " 文件在vim之外修改过,自动重新读入  
 set autoread  
" " 设置自动保存  
" set autowrite  
" " 在处理未保存或只读文件的时候,弹出确认  
 set confirm  
"   
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 编码设置  
" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
 set langmenu=zh_CN.UTF-8  
" " 帮助系统设置为中文  
 set helplang=cn  
" " 设置编码格式  
 set termencoding=utf-8  
 set encoding=utf8  
" " 使用utf-8或gbk打开文件  
 set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030



          
 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
" 新建文件设置  
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
autocmd BufNewFile *.cpp,*.cc,*.c,*.hpp,*.h,*.sh,*.py exec ":call SetTitle()"   
func SetTitle()   
    if expand("%:e") == 'sh'  
        call setline(1,"\#!/bin/bash")   
        call append(line("."), "")   
    elseif expand("%:e") == 'py'  
        call setline(1,"#!/usr/bin/env python")  
        call append(line("."),"# coding=utf-8")  
        call append(line(".")+1, "")   
    elseif expand("%:e") == 'cpp'  
        call setline(1,"#include <iostream>")   
        call append(line("."), "")   
    elseif expand("%:e") == 'cc'  
        call setline(1,"#include <iostream>")   
        call append(line("."), "")   
    elseif expand("%:e") == 'c'  
        call setline(1,"#include <stdio.h>")   
        call append(line("."), "")   
    elseif expand("%:e") == 'h'  
        call setline(1, "#pragma once")  
    elseif expand("%:e") == 'hpp'  
        call setline(1, "#pragma once")  
    endif  
endfunc   
autocmd BufNewFile * normal G



" Vundle  
filetype off
set rtp+=~/.vim/bundle/Vundle.vim  
call vundle#begin()  
" vundle 管理的插件列表必须位于vundle#begin()和vundle#end()之间  
Plugin 'VundleVim/Vundle.vim'  
Plugin 'L9'  
Plugin 'chxuan/change-colorscheme'  
Plugin 'Yggdroot/indentLine'  
Plugin 'haya14busa/incsearch.vim'  
Plugin 'wsdjeg/FlyGrep.vim'  
Plugin 'iamcco/mathjax-support-for-mkdp'  
Plugin 'iamcco/markdown-preview.vim'  
Plugin 'jiangmiao/auto-pairs'  
Plugin 'scrooloose/nerdcommenter'  
Plugin 'scrooloose/nerdtree'  
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}  
Plugin 'rkulla/pydiction'  
Plugin 'Valloric/MatchTagAlways'  
Plugin 'docunext/closetag.vim'  
Plugin 'godlygeek/tabular'  
Plugin 'tpope/vim-fugitive'  
Plugin 'tpope/vim-surround'  
Plugin 'tpope/vim-commentary'  
Plugin 'tpope/vim-repeat'  
Plugin 'tpope/vim-endwise'  
Plugin 'ctrlpvim/ctrlp.vim'  
Plugin 'majutsushi/tagbar'  
Plugin 'octol/vim-cpp-enhanced-highlight'  
Plugin 'vim-airline/vim-airline'  
Plugin 'vim-airline/vim-airline-themes'  
Plugin 'vim-scripts/a.vim'  
Plugin 'vim-scripts/DoxygenToolkit.vim'  
Plugin 'vim-scripts/txt.vim'  
Plugin 'ryanoasis/vim-devicons'  
Plugin 'gorodinskiy/vim-coloresque'  
Plugin 'will133/vim-dirdiff'  
Plugin 'mhinz/vim-startify'  
Plugin 'junegunn/vim-slash'  
  
"""""""""""""""""""""""""""""""""""  
 Plugin 'fholgado/minibufexpl.vim'  
 Plugin 'Shutnik/jshint2.vim'  
 Plugin 'leshill/vim-json'  
 Plugin 'kchmck/vim-coffee-script'  
 Plugin 'mislav/vimfiles'  
 Plugin 'leafgarland/typescript-vim'  
 Plugin 'tpope/vim-markdown'  
 Plugin 'jelera/vim-javascript-syntax'  
 Plugin 'othree/javascript-libraries-syntax.vim'  
 Plugin 'mattn/emmet-vim'  
  
" " vim actions  
 Plugin 'easymotion/vim-easymotion'  
  
"" React  
Plugin 'pangloss/vim-javascript'  
Plugin 'mxw/vim-jsx'  
  
" Vue  
" Plugin 'posva/vim-vue'  
"  
" " Es6  
" Plugin 'tomtom/tlib_vim'  
" Plugin 'MarcWeber/vim-addon-mw-utils'  
" Plugin 'garbas/vim-snipmate'  
" Plugin 'isRuslan/vim-es6'"  

" load ycm finally to avoid time wasting  
"Plugin 'Valloric/YouCompleteMe'  
"""""""""""""""""""""""""""""""""""  
  
  
call vundle#end()              
filetype plugin indent on


" load vim default plugin  
runtime macros/matchit.vim  
  
" change-colorscheme  
map <F10> :NextColorScheme<CR>  
imap <F10> <ESC> :NextColorScheme<CR>  
map <F9> :PreviousColorScheme<CR>  
imap <F9> <ESC> :PreviousColorScheme<CR>  
  
" nerdtree  
" map <Leader>L <Plug>(easymotion-bd-jk)  
" nmap <Leader>L <Plug>(easymotion-overwin-line)  
map <Leader>n :NERDTreeToggle<CR>  
imap <Leader>n <ESC> :NERDTreeToggle<CR>  
"auto enter nerdtree
autocmd VimEnter * NERDTree
"auto go to right area
wincmd w
autocmd VimEnter * wincmd w
"set the size of window
let NERDTreeWinSize=25 
"autocmd vimenter * if !argc() | NERDTree | endif  
"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | :q | endif  
autocmd BufEnter * if 0 == len(filter(range(1, winnr('$')), 'empty(getbufvar(winbufnr(v:val), "&bt"))')) | :qa! | endif  


" Doxygen  
let g:DoxygenToolkit_authorName="chxuan, 787280310@qq.com"  
let s:licenseTag = "Copyright(C)\<enter>"  
let s:licenseTag = s:licenseTag . "For free\<enter>"  
let s:licenseTag = s:licenseTag . "All right reserved\<enter>"  
let g:DoxygenToolkit_licenseTag = s:licenseTag  
let g:DoxygenToolkit_briefTag_funcName="yes"  
let g:doxygen_enhanced_color=1  
let g:DoxygenToolkit_commentType="Qt"  

" YCM
let g:ycm_confirm_extra_conf = 0 
let g:ycm_error_symbol = '>>'
let g:ycm_warning_symbol = '>*'
let g:ycm_seed_identifiers_with_syntax = 1 
let g:ycm_complete_in_comments = 1 
let g:ycm_complete_in_strings = 1 
"let g:ycm_cache_omnifunc = 0 
nnoremap <leader>u :YcmCompleter GoToDeclaration<CR>
nnoremap <leader>i :YcmCompleter GoToDefinition<CR>
nnoremap <leader>o :YcmCompleter GoToInclude<CR>
nmap <F5> :YcmDiags<CR>


" ctags
set tags+=/usr/include/tags
set tags+=~/.vim/systags
set tags+=~/.vim/x86_64-linux-gnu-systags
let g:ycm_collect_identifiers_from_tags_files = 1
" let g:ycm_semantic_triggers = {} 
let g:ycm_semantic_triggers =  {
  \   'c' : ['->', '.','re![_a-zA-z0-9]'],
  \   'objc' : ['->', '.', 're!\[[_a-zA-Z]+\w*\s', 're!^\s*[^\W\d]\w*\s',
  \             're!\[.*\]\s'],
  \   'ocaml' : ['.', '#'],
  \   'cpp,objcpp' : ['->', '.', '::','re![_a-zA-Z0-9]'],
  \   'perl' : ['->'],
  \   'php' : ['->', '::'],
  \   'cs,java,javascript,typescript,d,python,perl6,scala,vb,elixir,go' : ['.'],
  \   'ruby' : ['.', '::'],
  \   'lua' : ['.', ':'],
  \   'erlang' : [':'],
  \ }
let g:ycm_semantic_triggers.c = ['->', '.', ' ', '(', '[', '&',']']

" a.vim: .h -> .cpp or .cpp -> .h
nnoremap <silent> <Leader>a :A<CR>


  
" tagbar  
  
" 用系统默认路径  
" let g:tagbar_ctags_bin = '/usr/bin/ctags' "linux  
" let g:tagbar_ctags_bin = '/usr/local/bin/ctags' "mac  
let g:tagbar_width = 30  
map <Leader>t :TagbarToggle<CR>  
imap <Leader>t <ESC> :TagbarToggle<CR>  
  
" colorscheme  
set background=dark  
let g:solarized_termcolors=256  
"colorscheme solarized  
"colorscheme monokai  
  
" cpp_class_scope_highlight  
let g:cpp_class_scope_highlight = 1  
let g:cpp_experimental_template_highlight = 1  
let c_no_curly_error = 1  
  
" airline  
"let g:airline_theme="luna"  
"let g:airline_theme="badwolf" 
"let g:airline_theme='bubblegum' 
let g:airline_powerline_fonts = 1  
"let g:airline_section_b = '%{strftime("%c")}'  
"let g:airline_section_y = 'BN: %{bufnr("%")}'  
let g:airline#extensions#tabline#enabled = 1  
"let g:airline#extensions#tabline#left_sep = ' '  
let g:airline#extensions#tabline#left_alt_sep = '|'  
"if !exists('g:airline_symbols')  
    "let g:airline_symbols = {}  
"endif  
  
"let g:airline_left_sep = '»'  
"let g:airline_left_sep = '▶'  
"let g:airline_right_sep = '«'  
"let g:airline_right_sep = '◀'  
 
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '❯'
let g:airline_right_sep = '◀'
let g:airline_right_alt_sep = '❮'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'  

nnoremap <C-N> :bn<CR>  
nnoremap <C-P> :bp<CR>  
  
" ctrlp  
let g:ctrlp_map = '<c-f>'  
let g:ctrlp_cmd = ':CtrlP'  
let g:ctrlp_working_path_mode = '0'  
set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux  
  
" vim-devicons  
"set guifont=Droid\ Sans\ Mono\ for\ Powerline\ airline\ Nerd\ Font\ Complete\ 12  
 set guifont=DroidSansMono\ Nerd\ Font\ 11



" incsearch.vim 
"this make 2 space before / or ?
"map /  <Plug>(incsearch-forward)  
"map ?  <Plug>(incsearch-backward)  
map g/ <Plug>(incsearch-stay)  
  
" markdown  
let g:mkdp_path_to_chrome = "firefox"  
nmap <silent> <F7> <Plug>MarkdownPreview  
imap <silent> <F7> <Plug>MarkdownPreview  
nmap <silent> <F8> <Plug>StopMarkdownPreview  
imap <silent> <F8> <Plug>StopMarkdownPreview  
  
" vim-easymotion  
let g:EasyMotion_smartcase = 1  
map <Leader><Leader>j <Plug>(easymotion-j)  
map <Leader><Leader>k <Plug>(easymotion-k)  
map <Leader><Leader>h <Plug>(easymotion-linebackward)  
map <Leader><Leader>l <Plug>(easymotion-lineforward)  
map <Leader><Leader>. <Plug>(easymotion-repeat)  
" <Leader>f{char} to move to {char}  
map <Leader>f <Plug>(easymotion-bd-f)  
nmap <Leader>f <Plug>(easymotion-overwin-f)  
" s{char}{char} to move to {char}{char}  
nmap s <Plug>(easymotion-overwin-f2)  
" Move to line  
map <Leader>L <Plug>(easymotion-bd-jk)  
nmap <Leader>L <Plug>(easymotion-overwin-line)  
" Move to word  
map <Leader>w <Plug>(easymotion-bd-w)  
nmap <Leader>w <Plug>(easymotion-overwin-w)  
  
" indentLine  
let g:indentLine_enabled=0  
nmap <Leader><Leader>il :IndentLinesToggle<CR>  
  
" pydiction  
let g:pydiction_location='~/.vim/bundle/pydiction/complete-dict'  
let g:pydiction_menu_height=10  
 



" 个性化  
if filereadable(expand($HOME . '/.vimrc.local'))  
    source $HOME/.vimrc.local 
endif




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值