-
Linux_vim代码补全纠错插件配置与使用
1. 下载vundle插件管理工具
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
2. 使用vundle插件管理工具来进行插件的安装
终端通过打开~/.vimrc文件添加以下内容
set rtp+=~/.vim/bundle/Vundle.vim "需要安装的插件按照以下格式放在begin()之后
call vundle#begin()
Plugin 'gmarik/Vundle.vim' "安装插件管理工具
Plugin 'scrooloose/syntastic' "安装代码纠错工具
Plugin 'Valloric/YouCompleteMe' "安装代码补全工具
call vundle#end() "需要安装的插件需要放在end(之前)
filetype plugin indent on "允许使用插件功能
3. 插件管理工具的使用方式
- 将自己需要安装的插件放在vundle#begin和vundle#end之间即可,格式为
(1) Github上vim-scripts仓库的插件
只需要写出"仓库名"
(2) Github上非vim-scripts仓库的插件
需要写出"用户名/仓库名"
(3) git支持,但是不在Github上的插件
需要写出"git全路径"
- 开始使用vundle安装插件
(1) 运行vim,再输入命令再运行 :PluginInstall,等待安装完毕
(2) 通过命令行直接安装 vim +PluginInstall +qall
- 卸载不需要的插件
(1) 编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行
(2) 保存退出
(3) 重新打开vim,输入命令:BundleClean
- 部分插件可能安装后需要重新编译后才能生效,如YouCompleteMe自动补全插件
(1) 编译此插件需要安装有Python环境
sudo apt-get install python-dev
(2) 安装cmake
sudo apt-get install cmake
(3) 安装clangd
sudo apt-get install clangd
(4) 去到插件对应路径
cd ~/.vim/bundle/YouCompleteMe/
(5) 开始编译
./install.sh --clangd-completer
(6) 修改配置文件 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py
在flags数组中按照原添加头文件路径的格式添加自定义头文件路径或者需要的头文件路径
(7) 接着在~/.vimrc配置文件中配置好插件的设置即可使用
配置如下:
"======================以下配置是代码补全工具YouCompleteMe的常用功能参数配置,可根据自己需求进行配置======================"
let g:ycm_python_binary_path='/usr/bin/python3'
" YouCompleteMe 通过这个cm_global_ycm_extra_conf来获得补全规则,可以如下指定,也可以每次放置在工作目录
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py
"让YouCompleteMe同时利用原来的ctags
let g:ycm_collect_identifiers_from_tag_files = 1
" 跳转快捷键,可自定义是否开启或者定义按键
"nnoremap <C-I> :YcmCompleter GoToDeclaration<CR>|
"nnoremap <C-K> :YcmCompleter GoToDefinition<CR>|
"nnoremap <F12> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
" 停止提示是否载入本地ycm_extra_conf文件
let g:ycm_confirm_extra_conf = 0
" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax = 1
" 开启函数原型提示
let g:ycm_add_preview_to_completeopt = 1
" 关闭语法检查
let g:ycm_show_diagnostics_ui = 0
" 让补全行为与一般的IDE一致
set completeopt =longest,menu
" 从第3个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completion=3
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
" 注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1
" 不显示开启vim时检查ycm_extra_conf文件的信息
let g:ycm_confirm_extra_conf=0
" 每次重新生成匹配项,禁止缓存匹配项
let g:ycm_cache_omnifunc=0
" 查询ultisnips提供的代码模板补全,若不需要,设置为0
let g:ycm_use_ultisnips_completer=1
" 设置打开的文件最大大小限制,源程序文件太大必备(自定义)
let g:ycm_disable_for_files_larger_than_kb = 1000*1024*1024
" 设置标识符补全的最大候选项数量,0表示没有限制
let g:ycm_max_num_identifier_candidates = 10
" 设置语义补全的最大候选项数量,0表示没有限制
let g:ycm_max_num_candidates = 50
" 0表示关闭ycm语义补全和标识符补全触发器
let g:ycm_auto_trigger=1
" 文件类型白名单,vim打开这些类型文件时会开启YCM。*表示所有文件类型
let g:ycm_filetype_whitelist = { '*': 1 }
" 选中补全选项后自动关闭预览窗口
let g:ycm_autoclose_preview_window_after_completion = 1
"======================以下配置是代码纠错工具syntastic的常用功能参数配置,可根据自己需求进行配置======================"
" 设置error和warning的标志
let g:syntastic_enable_signs = 1
let g:syntastic_error_symbol='✗'
let g:syntastic_warning_symbol='►'
" List(相当于QuickFix)窗口,如果你发现syntastic因为与其他插件冲突而经常崩溃,将下面选项置0
let g:syntastic_always_populate_loc_list = 1
" List,默认值为2,表示发现错误时不自动打开,当修正以后没有再发现错误时自动关闭,置1表示自动打开自动关闭,0表示关闭自动打开和自动关闭,3表示自动打开,但不自动关闭
let g:syntastic_auto_loc_list = 1
"修改Locaton List窗口高度
let g:syntastic_loc_list_height = 3
" 打开文件时自动进行检查
let g:syntastic_check_on_open = 1
" 自动跳转到发现的第一个错误或警告处
let g:syntastic_auto_jump = 1
" 进行实时检查,如果觉得卡顿,将下面的选项置为1
let g:syntastic_check_on_wq = 0
" 高亮错误
let g:syntastic_enable_highlighting=1
" 让这个工具支持C++,选定自己的C++头文件所在路径
let g:syntastic_cpp_include_dirs = ['/usr/include/c++/9','/usr/include/x86_64-linux-gnu/c++/9']
let g:syntastic_cpp_checkers = ['gcc']
let g:syntastic_cpp_compiler = 'g++'
let g:syntastic_cpp_compiler_options = '-std=c++11 -Wall -Wextra'
(8) 至此两个主要插件已配置完全,其他插件因为本人未使用过,就不做说明了
出处:https://www.cnblogs.com/StartMyblog/p/15066005.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式