• vim


    set enc=utf-8
    set fencs=utf-8,gbk,big5,cp936,gb18030,gb2312,utf-16
    set fenc=utf-8
    
    set number
    
    " 不与 Vi 兼容(采用 Vim 自己的操作命令)
    set nocompatible
    
    " 在状态栏显示正在输入的命令
    set showcmd
    
    set mouse=a
    
    " 启用256色
    set t_Co=256
    
    " 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致
    set autoindent
    " tab相关变更
    " 设置Tab键的宽度        [等同的空格个数]
    set tabstop=4
    " 每一次缩进对应的空格数
    set shiftwidth=4
    " 按退格键时可以一次删掉 4 个空格
    set softtabstop=4
    
    " 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数。
    set shiftwidth=4
    
    " 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
    set expandtab
    
    set softtabstop=4
    
    " 光标所在的当前行高亮。
    set cursorline
    
    " 关闭自动折行
    set nowrap
    
    " 在状态栏显示光标的当前位置(位于哪一行哪一列)。
    set  ruler
    
    " 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。
    set showmatch
    
    " 搜索时,高亮显示匹配结果。
    set hlsearch
    
    set history=1000
    
    " 打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示。
    set autoread
    
    " 搜索设置
    set ignorecase                                               
    set incsearch                                                
    
    " 复制粘贴设置,使用系统剪切板
    set clipboard=unnamed           
    
    " 开启语法高亮
    syntax on
    
    " 突出显示当前列
    "set cursorcolumn
    " 突出显示当前行
    set cursorline
    
    "可随时用倒退键删除
    set backspace=2        
    
    set statusline=
    set statusline +=%F            "full path
    set statusline +=%L               "total lines
    " echo $MYVIMRC
    " source $MYVIMRC
    
    set enc=utf-8
    set fencs=utf-8,gbk,big5,cp936,gb18030,gb2312,utf-16
    set fenc=utf-8
    set shortmess=atI
    
    call plug#begin()
    Plug 'luochen1990/rainbow'
    Plug 'Valloric/YouCompleteMe'
    Plug 'tpope/vim-surround'
    Plug 'tpope/vim-fugitive'
    Plug 'scrooloose/nerdtree'
    Plug 'ctrlpvim/ctrlp.vim'
    Plug 'nathanaelkane/vim-indent-guides'
    Plug 'lervag/vimtex'
    Plug 'Xuyuanp/nerdtree-git-plugin'
    Plug 'rdnetto/YCM-Generator'
    Plug 'nsf/gocode'
    Plug 'tpope/vim-fireplace'
    Plug 'universal-ctags/ctags'
    Plug 'ludovicchabant/vim-gutentags'
    Plug 'skywind3000/asyncrun.vim'
    Plug 'dense-analysis/ale'
    Plug 'octol/vim-cpp-enhanced-highlight'
    Plug 'tpope/vim-unimpaired'
    Plug 'yggdroot/leaderf'
    Plug 'vim-airline/vim-airline'
    Plug 'pangloss/vim-javascript'
    Plug 'plasticboy/vim-markdown'
    Plug 'leafgarland/typescript-vim'
    Plug 'tbastos/vim-lua'
    Plug 'sickill/vim-monokai'
    Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
    Plug 'bronson/vim-trailing-whitespace'
    Plug 'tikhomirov/vim-glsl'
    Plug 'moll/vim-node'
    Plug 'vhdirk/vim-cmake'
    Plug 'terryma/vim-multiple-cursors'
    Plug 'godlygeek/tabular'
    Plug 'tpope/vim-commentary'
    Plug 'chiel92/vim-autoformat'
    call plug#end()
    
    "nerdTree 相关配置
    " 关闭NERDTree快捷键
    map <leader>t :NERDTreeToggle<CR>
    ""当NERDTree为剩下的唯一窗口时自动关闭
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
    ""修改树的显示图标
    let g:NERDTreeDirArrowExpandable = ''
    let g:NERDTreeDirArrowCollapsible = ''
    let NERDTreeAutoCenter=1
    " 显示行号
    let NERDTreeShowLineNumbers=1
    " 是否显示隐藏文件
    let NERDTreeShowHidden=1
    " 设置宽度
    let NERDTreeWinSize=25
    " 在终端启动vim时,共享NERDTree
    let g:nerdtree_tabs_open_on_console_startup=1
    " 忽略一下文件的显示
    let NERDTreeIgnore=['.pyc','~$','.swp']
    let g:NERDTreeIndicatorMapCustom = {
         "Modified"  : "",
         "Staged"    : "",
         "Untracked" : "",
         "Renamed"   : "",
         "Unmerged"  : "",
         "Deleted"   : "",
         "Dirty"     : "",
         "Clean"     : "✔︎",
         'Ignored'   : '',
         "Unknown"   : "?"
         }
    " }}}
    
    
    
    " ctags 相关配置
    set tags=./.tags;,.tags
    
    " gutentags 搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归
    let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']
    
    " 所生成的数据文件的名称
    let g:gutentags_ctags_tagfile = '.tags'
    
    " 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录
    let s:vim_tags = expand('~/.cache/tags')
    let g:gutentags_cache_dir = s:vim_tags
    
    " 配置 ctags 的参数
    let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
    let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
    let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
    
    " 检测 ~/.cache/tags 不存在就新建
    if !isdirectory(s:vim_tags)
       silent! call mkdir(s:vim_tags, 'p')
    endif
    
    
    
    
    " 自动打开 quickfix window ,高度为 6
    let g:asyncrun_open = 6
    
    " 任务结束时候响铃提醒
    let g:asyncrun_bell = 1
    
    " 设置 F10 打开/关闭 Quickfix 窗口
    nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr>
    
    
    
    
    let g:ale_linters_explicit = 1
    let g:ale_completion_delay = 500
    let g:ale_echo_delay = 20
    let g:ale_lint_delay = 500
    let g:ale_echo_msg_format = '[%linter%] %code: %%s'
    let g:ale_lint_on_text_changed = 'normal'
    let g:ale_lint_on_insert_leave = 1
    let g:airline#extensions#ale#enabled = 1
    
    let g:ale_c_gcc_options = '-Wall -O2 -std=c99'
    let g:ale_cpp_gcc_options = '-Wall -O2 -std=c++14'
    let g:ale_c_cppcheck_options = ''
    let g:ale_cpp_cppcheck_options = ''
    
    let g:ale_sign_error = "ue009ue009"
    hi! clear SpellBad
    hi! clear SpellCap
    hi! clear SpellRare
    hi! SpellBad gui=undercurl guisp=red
    hi! SpellCap gui=undercurl guisp=blue
    hi! SpellRare gui=undercurl guisp=magenta
    
    let g:ycm_add_preview_to_completeopt = 0
    let g:ycm_show_diagnostics_ui = 0
    let g:ycm_server_log_level = 'info'
    let g:ycm_min_num_identifier_candidate_chars = 2
    let g:ycm_collect_identifiers_from_comments_and_strings = 1
    let g:ycm_complete_in_strings=1
    let g:ycm_key_invoke_completion = '<c-z>'
    let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'
    set completeopt=menu,menuone
    
    noremap <c-z> <NOP>
    
    let g:ycm_semantic_triggers =  {
                'c,cpp,python,java,go,erlang,perl': ['re!w{2}'],
                'cs,lua,javascript': ['re!w{2}'],
                }
    
    " 跳转快捷键
    nnoremap <c-k> :YcmCompleter GoToDeclaration<CR>|
    nnoremap <c-h> :YcmCompleter GoToDefinition<CR>|
    nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
    " 停止提示是否载入本地ycm_extra_conf文件
    "let g:ycm_confirm_extra_conf = 0
    " 语法关键字补全
    let g:ycm_seed_identifiers_with_syntax = 1
    " 开启 YCM 基于标签引擎
    let g:ycm_collect_identifiers_from_tags_files = 1
    " 从第2个键入字符就开始罗列匹配项
    let g:ycm_min_num_of_chars_for_completion=2
    " 在注释输入中也能补全
    let g:ycm_complete_in_comments = 1
    " 在字符串输入中也能补全
    let g:ycm_complete_in_strings = 1
    " 注释和字符串中的文字也会被收入补全
    let g:ycm_collect_identifiers_from_comments_and_strings = 1
    " 让补全行为与一般的IDE一致
    set completeopt=longest,menu
    
    " 弹出列表时选择第1项的快捷键(默认为<TAB>和<Down>)
    "let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
    " 弹出列表时选择前1项的快捷键(默认为<S-TAB>和<UP>)
    "let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
    " 主动补全, 默认为<C-Space>
    "let g:ycm_key_invoke_completion = ['<C-Space>']
    " 停止显示补全列表(防止列表影响视野), 可以按<C-Space>重新弹出
    "let g:ycm_key_list_stop_completion = ['<C-y>']
    
    noremap <F3> :Autoformat<CR> 
    
    
    
    let g:Lf_ShortcutF = '<c-p>'
    let g:Lf_ShortcutB = '<m-n>'
    noremap <c-n> :LeaderfMru<cr>
    noremap <m-p> :LeaderfFunction!<cr>
    noremap <m-n> :LeaderfBuffer<cr>
    noremap <m-m> :LeaderfTag<cr>
    let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' }
    
    let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git']
    let g:Lf_WorkingDirectoryMode = 'Ac'
    let g:Lf_WindowHeight = 0.30
    let g:Lf_CacheDirectory = expand('~/.vim/cache')
    let g:Lf_ShowRelativePath = 0
    let g:Lf_HideHelp = 1
    let g:Lf_StlColorscheme = 'powerline'
    let g:Lf_PreviewResult = {'Function':0, 'BufTag':0}
    
    
    
    
    
    
    
    
    
    set number
    
    " 不与 Vi 兼容(采用 Vim 自己的操作命令)
    set nocompatible
    
    " 字体
     if has('gui_running')
        if has("win16") || has("win32") || has("win95") || has("win64")
            set guifont=Sarasa_Mono_SC:h12
        else
            set guifont=Sarasa Mono SC 12
        endif
    endif
    
    colorscheme monokai
    
    " 长度超过80的行标记
    "highlight OverLength ctermbg=red ctermfg=white guibg=#ff0000 guifg=#005500
    "match OverLength /\%81v.+/
    "highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
    "match OverLength /\%>80v.+/
    "highlight ColorColumn ctermbg=lightgrey guibg=lightgrey ctermfg=black guifg=black
    "set colorcolumn=81
    
    " 在状态栏显示正在输入的命令
    set showcmd
    
    set mouse=a
    
    " 启用256色
    set t_Co=256
    
    " 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致
    set autoindent
    " tab相关变更
    " 设置Tab键的宽度        [等同的空格个数]
    set tabstop=4
    " 每一次缩进对应的空格数
    set shiftwidth=4
    " 按退格键时可以一次删掉 4 个空格
    set softtabstop=4
    
    " 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数。
    set shiftwidth=4
    
    " 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
    set expandtab
    
    set softtabstop=4
    
    " 光标所在的当前行高亮。
    set cursorline
    
    " 关闭自动折行
    set nowrap
    
    " 在状态栏显示光标的当前位置(位于哪一行哪一列)。
    set  ruler
    
    " 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。
    set showmatch
    
    " 搜索时,高亮显示匹配结果。
    set hlsearch
    
    set history=1000
    
    " 打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示。
    set autoread
    
    " 搜索设置
    set ignorecase
    set incsearch
    
    " 复制粘贴设置,使用系统剪切板
    " set clipboard=unnamed
    
    " 开启语法高亮
    syntax on
    
    " 突出显示当前列
    "set cursorcolumn
    " 突出显示当前行
    set cursorline
    
    "可随时用倒退键删除
    set backspace=2
    
    
    
    " 一直显示status line
    "set laststatus=2
    "
    "set statusline=
    ""set statusline +=%F            "full path
    ""set statusline +=%L            "total lines
    "
    "" mode 颜色
    "hi NormalColor guifg=Black guibg=grey ctermbg=grey ctermfg=0
    "hi InsertColor guifg=Black guibg=red ctermbg=red ctermfg=0
    "hi ReplaceColor guifg=Black guibg=maroon1 ctermbg=165 ctermfg=0
    "hi VisualColor guifg=Black guibg=yellow ctermbg=yellow ctermfg=0
    "set statusline+=%#NormalColor#%{(mode()=='n')?'  N ':''}
    "set statusline+=%#InsertColor#%{(mode()=='i')?'  I ':''}
    "set statusline+=%#ReplaceColor#%{(mode()=='R')?'  R ':''}
    "set statusline+=%#VisualColor#%{(mode()=='v')?'  V ':''}
    "set statusline+=%#PmenuSel#
    "set statusline+=%#LineNr#
    "set statusline+= %f
    "set statusline+=%m
    "set statusline+=%=
    "set statusline+=%#CursorColumn#
    "set statusline+= %y
    "set statusline+= %{&fileencoding?&fileencoding:&encoding}
    "set statusline+=[%{&fileformat}]
    "set statusline+= %p%%
    "set statusline+= %l:%c
    "set statusline+= 

    https://github.com/junegunn/vim-plug

  • 相关阅读:
    Ubuntu Server 18.04安装后vi命令解决键盘错乱方法和wifi连接之后不能上网
    Ubuntu Server 18.04安装并配置wifi
    Spring 实战学习笔记(第三章 Bean的高级装配)
    linux mysql不区分表名大小写配置
    阿里云 Centos7.3安装mysql5.7.18 rpm安装
    maven私服配置国内aliyun中央仓库
    angularjs指令详解(转)
    angularjs<a>标签失效解决办法
    angular.element
    Linux ALSA
  • 原文地址:https://www.cnblogs.com/Searchor/p/11486015.html
Copyright © 2020-2023  润新知