summaryrefslogtreecommitdiffstats
path: root/vimrcs/plugs.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vimrcs/plugs.vim')
-rw-r--r--vimrcs/plugs.vim153
1 files changed, 153 insertions, 0 deletions
diff --git a/vimrcs/plugs.vim b/vimrcs/plugs.vim
new file mode 100644
index 0000000..4d389a3
--- /dev/null
+++ b/vimrcs/plugs.vim
@@ -0,0 +1,153 @@
1" Vundle插件管理器配置
2set nocompatible " 去除VIM一致性,必须
3filetype off " 必须
4
5" 设置包括vundle和初始化相关的运行时路径"
6set rtp+=/home/player/useful/bundle/Vundle.vim
7call vundle#begin('/home/player/useful/bundle')
8
9Plugin 'VundleVim/Vundle.vim' " 启用vundle管理插件,必须
10Plugin 'Valloric/YouCompleteMe' " 代码补全插件
11Plugin 'preservim/nerdtree' " 文件目录树插件
12Plugin 'Xuyuanp/nerdtree-git-plugin' " nerdtree git支持
13Plugin 'scrooloose/syntastic' " 语法检查插件
14Plugin 'github/copilot.vim' " GitHub Copilot插件
15Plugin 'voldikss/vim-translator' " 翻译插件
16Plugin 'yegappan/taglist' " taglist插件
17Plugin 'octol/vim-cpp-enhanced-highlight' " C++语法高亮插件,在原生基础上支持STL等
18Plugin 'nathanaelkane/vim-indent-guides' " 缩进线插件
19Plugin 'scrooloose/nerdcommenter' " 注释插件
20" Plugin 'skywind3000/vim-terminal-help' " vim-terminal-help插件
21" Plugin 'neoclide/coc.nvim' " coc.nvim插件
22" Plugin 'Lokaltog/powerline',{'rtp':'powerline/bindings/vim/'} " 状态栏信息插件
23
24call vundle#end()
25filetype plugin indent on " 加载vim自带和插件相应的语法和文件类型相关脚本,必须
26
27" YouCompleteMe
28let g:ycm_global_ycm_extra_conf = '/home/player/useful/bundle/YouCompleteMe/.ycm_extra_conf.py'
29let g:ycm_python_binary_path = '/usr/bin/python' " python路径
30" let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' " C family语言的配置文件
31let g:ycm_confirm_extra_conf = 0 " 停止提示是否载入本地ycm_extra_conf文件
32let g:ycm_use_ultisnips_completer = 1 " 默认载入本地ycm_extra_conf文件
33let g:ycm_min_num_of_chars_for_completion = 2 " 从第2个键入字符就开始罗列匹配项
34let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 从注释和字符串中收集标识符
35let g:ycm_complete_in_comments = 1 " 在注释中也可以补全
36let g:ycm_complete_in_strings = 1 " 在字符串中也可以补全
37let g:ycm_enable_fuzzy_match = 1 " 开启模糊匹配
38let g:ycm_seed_identifiers_with_syntax = 1 " 语法关键字补全
39let g:ycm_collect_identifiers_from_tags_files = 1 " 开启 YCM 基于标签引擎
40let g:ycm_key_list_select_completion = ['<C-n>', '<Down>'] " 选择第1项的快捷键(默认为<TAB>和<Down>)
41let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>'] " 选择前1项的快捷键(默认为<S-TAB>和<UP>)
42let g:ycm_autoclose_preview_window_after_completion = 1 " 补全后自动关闭预览窗口
43" let g:ycm_key_invoke_completion = ['<C-Space>'] " 主动补全, 默认为<C-Space>
44" let g:ycm_key_list_stop_completion = ['<C-y>'] " 停止显示补全列表防影响视野, <C-Space>重新弹出
45let g:ycm_semantic_triggers = {
46 \ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
47 \ 'cs,lua,javascript': ['re!\w{2}'],
48 \ }
49" hi PMenu ctermfg=34 ctermbg=21 guifg=darkred guibg=darkblue
50" hi PMenuSel ctermfg=21 ctermbg=34 guifg=darkblue guibg=darkred
51hi PMenu ctermfg=darkgrey ctermbg=21 guifg=darkred guibg=darkblue
52hi PMenuSel ctermfg=yellow ctermbg=34 guifg=darkblue guibg=darkred
53nnoremap gdec :YcmCompleter GoToDeclaration<CR>
54nnoremap gdef :YcmCompleter GoToDefinition<CR>
55nnoremap gd :YcmCompleter GoToDefinitionElseDeclaration<CR>
56nnoremap gr :YcmCompleter GoToReferences<CR>
57
58" NERDTree
59" autocmd vimenter * NERDTree "进入vim自动打开nerdtree
60" 当nerdtree为当前标签页剩余唯一窗口时自动关闭
61autocmd bufenter * if(winnr('$') ==1 && exists('b:NERDTree') && b:NERDTree.isTabTree()) | quit | endif
62nmap T :NERDTreeToggle<CR> " 开关文件目录树,注意shift+i切换是否显示隐藏文件
63let g:NERDTreeDirArrowExpandable = '+'
64let g:NERDTreeDirArrowCollapsible = '-' " 修改树的显示图标
65let g:NERDTreeWinPos='left' " 窗口位置
66let g:NERDTreeSize=10 " 窗口尺寸
67let g:NERDTreeShowLineNumbers=1 " 窗口是否显示行号
68let NERDTreeShowHidden=1 " 显示隐藏文件
69let NERDTreeIgnore = ['\.pyc$', '\.swp', '\.swo', '\.vscode', '__pycache__'] " 过滤: 所有指定文件和文件夹不显示
70autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif " 在每个标签页打开相同的文件树
71
72" nerdtree-git-plugin
73let g:NERDTreeGitStatusIndicatorMapCustom = {
74 \ 'Dirty' :'Dty',
75 \ 'Modified' :'M',
76 \ 'Staged' :'Sta',
77 \ 'Untracked' :'U',
78 \ 'Renamed' :'R',
79 \ 'Unmerged' :'Umg',
80 \ 'Deleted' :'X',
81 \ 'Ignored' :'Ign',
82 \ 'Clean' :'Cl',
83 \ 'Unknown' :'?',
84 \ }
85let g:NERDTreeGitStatusShowIgnored = 1 " a heavy feature may cost much more time. default: 0
86let g:NERDTreeGitStatusUntrackedFilesMode = 'all' " a heavy feature too. default: normal
87
88" vim-terminal-help
89" set termwinsize=10*106
90" let g:terminal_key = ''
91" 设置光标在终端与编辑器间切换的快捷键
92
93" syntastic
94" YouCompleteMe插件对该插件支持过于优秀,一般不再需要配置,故废弃
95let g:syntastic_python_checkers=['pylint']
96let g:syntastic_python_pylint_args=['--disable=C0111,R0903,C0301']
97" GNU as汇编语言语法检查,需要安装as86和ld86
98let g:syntastic_asm_checkers=['as86']
99" syntastic end
100
101" powerline
102let laststatus=2
103let g:airlinr_powerline_fonts=1 " 使用官方打过补丁的字体
104let g:Powerline_symbols='fancy'
105
106" vim-translator
107let g:translator_target_lang = 'zh'
108let g:translator_source_lang = 'auto'
109" let g:translator_default_engines = ['youdao', 'bing', 'google', 'haici']
110let g:translator_default_engines = ['bing']
111let g:translator_history_enable = v:true
112let g:translator_window_type = 'popup' " 可选值为 'popup' 和 'preview',默认为 'popup'
113" Echo translation in the cmdline
114nmap <silent> <Leader>t <Plug>Translate
115vmap <silent> <Leader>t <Plug>TranslateV
116" Display translation in a window
117nmap <silent> <Leader>w <Plug>TranslateW
118vmap <silent> <Leader>w <Plug>TranslateWV
119" Close the translation window
120nmap <silent> <Leader>c <Plug>TranslateC
121" Replace the text with translation
122nmap <silent> <Leader>r <Plug>TranslateR
123vmap <silent> <Leader>r <Plug>TranslateRV
124" Translate the text in clipboard
125nmap <silent> <Leader>x <Plug>TranslateX
126
127" 进行Taglist的设置
128" map <space>tl Tlist<CR> "
129let Tlist_Ctags_Cmd='/usr/local/bin/ctags' " 因为我们放在环境变量里,所以可以直接执行
130let Tlist_Use_Right_Window=1 " 让窗口显示在右边,0的话就是显示在左边
131let Tlist_Show_One_File=1 " 让taglist可以同时展示多个文件的函数列表
132let Tlist_File_Fold_Auto_Close=0 " 非当前文件列表折叠隐藏
133let Tlist_Exit_OnlyWindow=1 " 当taglist是最后一个分割窗口时,自动推出vim
134let Tlist_Process_File_Always=1 " 是否一直处理tags.1:处理;0:不处理
135let Tlist_Inc_Winwidth=1 " 不是一直实时更新tags,因为没有必要
136" 每隔多少秒更新一次tags,如果为0则不更新
137let Tlist_Update_Time=5
138" 在每个标签页打开相同的函数列表
139autocmd BufWinEnter * if getcmdwintype() == '' | silent TlistUpdate | endif
140" 打开新标签页时自动打开函数列表
141autocmd BufWinEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.IsTabTree()) | silent TlistToggle | endif
142
143" vim-indent-guides
144let g:indent_guides_enable_on_vim_startup = 1 " 启动时自动开启缩进线
145let g:indent_guides_guide_size = 1 " 缩进线宽度
146let g:indent_guides_start_level = 2 " 从第二级开始显示缩进线
147let g:indent_guides_auto_colors = 1 " 自动颜色
148autocmd VimEnter * :IndentGuidesToggle
149highlight IndentGuidesOdd ctermbg=darkgray " 缩进线颜色
150highlight IndentGuidesEven ctermbg=darkgrey " 缩进线颜色
151
152" nerdcommenter
153map <space-m> <Leader>c<space>