我的vim

"colorscheme 主题插件名设置主题
"blue.vim      desert.vim    koehler.vim  peachpuff.vim  slate.vim
"darkblue.vim  elflord.vim   morning.vim  README.txt     torte.vim
"default.vim   evening.vim   murphy.vim   ron.vim        zellner.vim
"delek.vim     industry.vim  pablo.vim    shine.vim
"下载主题插件文件,文件可放在~/.vim/color目录下,便于管理
 set nu                     "在左侧行号                                           
 set nobackup               "覆盖文件时不备份
 set ruler                  "在右下角显示光标位置的状态行
set tabstop=4               " 设置软制表符宽度为4
set softtabstop=4           " 设置软制表符宽度为4
set shiftwidth=4            " 设置缩进的空格数为4
set autoindent              " 设置自动缩进:即每行的缩进值与上一行相等
set cindent                 " 使用 C/C++ 语言的自动缩进方式
set cursorline              " 突出显示当前行
set expandtab               " 空格代替制表符
set showmatch               " 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set ruler                   " 在状态栏显示光标的当前位置(位于哪一行哪一列)
 set guifont=Consolas:h15    " 设置字体和字体大小
 set nobackup                " 取消备份文件
                            " 默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号~
setlocal noswapfile         " 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp
set noundofile              " 取消生成un文件
set hlsearch                " 设置高亮显示搜索字符串
set showmode                " 在底部显示,当前处于命令模式还是插入模式
set showcmd                 " 命令模式下,在底部显示,当前键入的指令。比如输入快捷键将在底部显示具体命令
set t_Co=256                " 启用256色
set noerrorbells            " 出错时不要发出响声
" 高亮显示
syntax on
syntax enable
" 编码配置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8


colorscheme desert
"把当前秒数转换成小时数,自动变换主题
let hour=(localtime()/60/60%24)
if hour == 1
	colorscheme blue
elseif hour == 2
	colorscheme desert
elseif hour == 3
	colorscheme koehler
elseif hour == 4
	colorscheme peachpuff
elseif hour == 5
	colorscheme slate
elseif hour == 6
	colorscheme darkblue
elseif hour == 7
	colorscheme elford
elseif hour == 8
	colorscheme morning
elseif hour == 9
	colorscheme torte
elseif hour == 10
	colorscheme default
elseif hour == 11
	colorscheme evening
elseif hour == 12
	colorscheme murphy
elseif hour == 13
	colorscheme ron
elseif hour == 14
	colorscheme zellner
elseif hour == 15
	colorscheme delek
elseif hour == 16
	colorscheme industry
elseif hour == 17
	colorscheme pablo
elseif hour == 18
	colorscheme shine
elseif hour == 19
	colorscheme desert
elseif hour == 20
	colorscheme desert
elseif hour == 21
	colorscheme desert
elseif hour == 22
	colorscheme desert
elseif hour == 23
	colorscheme desert
elseif hour == 24
	colorscheme desert
endif

call plug#begin('~/.vim/plugged')                                                               
Plug 'junegunn/vim-plug'                                                                       
	"此处可以添加其他插件
	"Plug 'github网站上的其他vimscript插件'      
	Plug 'scrooloose/nerdtree'      
        Plug 'jiangmiao/auto-pairs'	
	Plug 'vim-scripts/taglist.vim'    
        Plug 'preservim/nerdcommenter'	
	Plug 'frazrepo/vim-rainbow'
	Plug 'vim-airline/vim-airline'
	Plug 'vim-airline/vim-airline-themes'
        Plug 'Valloric/YouCompleteMe'
	Plug 'dense-analysis/ale'
	Plug 'SirVer/ultisnips'
	Plug 'honza/vim-snippets'
    call plug#end() 
"->NERDTree目录树插件---配置选项=====================================================         
let g:NERDTreeDirArrowExpandable = '▸'  "目录图标                                                                
let g:NERDTreeDirArrowCollapsible = '▾'
"autocmd vimenter * NERDTree                "自动打开目录树
"vim【无文件】也显示目录树 
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
"vim打开目录文件也显示目录树?
autocmd StdinReadPre * let s:std_in=1 
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene     | endif
"CRTL+N开关目录树
map <C-n> :NERDTreeToggle<CR>
"关闭最后一个文件,同时关闭目录树
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
"<-NERDTree目录树插件---配置选项===============================================================
"->taglist浏览插件配置=========================================     
"taglist窗口显示在右侧,缺省为左侧     
let Tlist_Use_Right_Window=1    
"设置ctags路径"将taglist与ctags关联     
let Tlist_Ctags_Cmd = '/usr/bin/ctags'     
"启动vim后自动打开taglist窗口     
let Tlist_Auto_Open = 1     
"不同时显示多个文件的tag,只显示当前文件的     
"不同时显示多个文件的tag,仅显示一个     
let Tlist_Show_One_File = 1     
"taglist为最后一个窗口时,退出vim     
let Tlist_Exit_OnlyWindow = 1     
"let Tlist_Use_Right_Window =1     
"设置taglist窗口大小     
"let Tlist_WinHeight = 90  
"let Tlist_WinWidth = 40     
"设置taglist打开关闭的快捷键F8     
noremap <F8> :TlistToggle<CR>     
"更新ctags标签文件快捷键设置     
noremap <F6> :!ctags -R<CR>     
"<-taglist=========================================  
"Rainbow 
au FileType c,cpp,objc,objcpp call rainbow#load()
"vim-airline-themes配置(县不启用)
"set laststatus=2  "永远显示状态栏
"let g:airline_powerline_fonts = 1  " 支持 powerline 字体
"let g:airline#extensions#tabline#enabled = 1 " 显示窗口tab和buffer
"let g:airline_theme='moloai'  " murmur配色不错
"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 = '⎇'


"YCM 自动补全设置
"let g:ycm_key_invoke_completion = '<c-z>'
"set completeopt-=preview   "关闭preview窗口
"启用基于语义的自动补全
let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
let g:ycm_error_symbol = '✗'
let g:ycm_warning_symbol = '⚠'
let g:ycm_semantic_triggers =  {
\ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
\ 'cs,lua,javascript': ['re!\w{2}']
\ }
"设置白名单文件
let g:ycm_filetype_whitelist = {
\ "c":1,
\ "cpp":1,
\ "sh":1,
\ "py":1
\ }
"修改提示框颜色
highlight Pmenu ctermfg=4 ctermbg=8 guifg=#ffffff guibg=#000000  "提示不再是粉红色(pink)
highlight PMenu ctermfg=yellow ctermbg=darkgrey guifg=#ffffff guibg=#000000
highlight PMenuSel ctermfg=white ctermbg=black guifg=#000000 guibg=#ffffff
"声明、定义跳转
nnoremap <C-u> :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
"YCM-Generator配置
nnoremap <C-y> :YcmGenerateConfig ./<CR>   "更新.ycm_extra_conf.py文件



let g:ycm_global_ycm_extra_conf = '/home/aluu/.vim/plugged/YouCompleteMe/.ycm_extra_conf.py'    
let g:ycm_min_num_of_chars_for_completion               = 1 " 输入第 1 个字符开始补全                  
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_collect_identifiers_from_tag_files            = 1 " 使用 ctags 生成的 tags 文件    
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全    
let g:ycm_cache_omnifunc                                = 0 " 每次重新生成匹配项,禁止缓存匹配项    
let g:ycm_use_ultisnips_completer                       = 0 " 不查询 ultisnips 提供的代码模板补全,如果需要,设置成 1 即可
let g:ycm_show_diagnostics_ui                           = 0 " 禁用语法检查
let g:ycm_key_list_select_completion = ['<Down>']   " 选择下一条补全,Default: ['<TAB>', '<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']     " 选择上一条补全,Default: ['<S-TAB>', '<Up>']
let g:ycm_key_list_stop_completion  = ['<Enter>']  " 中止此次补全,Default: ['<C-y>'] 




"ultisnips配置
let g:UltiSnipsExpandTrigger       = "<c-tab>"     " 代码片段补全触发
let g:UltiSnipsListSnippets        = "<c-\>"       " 列出补全可选列表
let g:UltiSnipsJumpForwardTrigger  = "<c-j>"       " 下一条补全
let g:UltiSnipsJumpBackwardTrigger = "<c-k>"       " 选择上一条补全kk






" 启用ale插件
let g:ale_enabled = 1

" 设置异步运行
let g:ale_async = 1
" 设置编程检查语言为C或c++语言
let g:ale_linters = { 'c': ['clang_check', 'gcc'], 'cpp': ['clang_check', 'g++']}
" 显示状态栏+不需要高亮行
"let g:ale_sign_column_always = 1
"let g:ale_set_highlights = 0
"Vim自动运行ale插件
autocmd BufReadPost *.c,*.cpp,*.cc,*.h,*.hpp ale   "linter#Check('%')
"保存文件时自动运行ale插件
"autocmd BufWritePre *.c,*.cpp,*.cc,*.h,*.hpp ale   #linter#Check('%')
" 设置错误提示级别为高
let g:ale_set_global_error_level = 'high'

" 设置错误提示级别为低
let g:ale_set_global_warning_level = 'low'


"使用以下选项指定应用于标志的文本:
let g:ale_sign_error = '✘'
let g:ale_sign_warning = '❗'
let g:ale_sign_column_always = 1
let g:ale_echo_msg_error_str = '✘'
let g:ale_echo_msg_warning_str = '❗'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' "字符串格式化
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
" Set this. Airline will handle the rest.
let g:airline#extensions#ale#enabled = 1
let g:ale_floating_window_border = ['│', '─', '╭', '╮', '╯', '╰', '│', '─']
let g:ale_floating_window_border = []
let g:ale_floating_window_border = repeat([''], 8)
"自动保存文件时禁用ale检查 
"autocmd BufWritePre * silent! ale#linter#check({buf}) | let b:ale_echo_msgs = [] | if !empty(b:ale_echo_msgs) | echo '' | for msg in b:ale_echo_msgs | echo msg | endfor | unlet b:ale_echo_msgs | endif


" 文件保存时,显示警告
"let g:ale_lint_on_text_changed = 'never'
"let g:ale_lint_on_enter = 0
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ծ‸Ծ-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值