vim 配置

请先下载我上传的资源 vim.zip(vim的配置 实现自动补齐等功能)

https://www.cnblogs.com/Suzzz/p/4071880.html
https://blog.csdn.net/qq_37968132/article/details/79856758

YouCompleteMe,Vim的智能补全插件,能提供不逊于大型IDE的补全体验,安装这个插件需要先安装python-pil的包(有的发行版上可能没有这个包,可以试试搜索python-pillow),如果不事先解决这个问题的话,安装的时候就会提示No module names future,解决方法如下

$ sudo aptitude install python-pil python3-pil

如果仍然不能解决的话,就在终端使用pip解决

$ sudo pip install future

此外有时也会提示No module names frozendict这时用上面的方法继续用pip安装上frozendict模块即可。
安装完成ycm以后需要编译出库才能正常使用,而要编译出库则需要python开发库的支持,在终端执行

$ sudo aptitude install python-dev python3-dev

做完这些准备工作以后就可以开始编译了,ycm还额外支持C、C++、C#、go、typescript、javascript、rust等语言的补全,这里以添加C家族、Java和golang的支持为例,编译方法如下,其他语言的请参考官网的说明

$ cd ~/.vim/plugged/YouCompleteMe
$ ./install.py --clang-completer --java-completer --go-completer

编译完成以后再把.ycm_extra_conf.py复制到~目录

$ cp third_party/ycmd/examples/.ycm_extra_conf.py ~/

#如果没有vim当然要先安装,部分插件依赖于python
sudo apt-get install vim
 
#ctags,其他插件依赖该插件
sudo apt-get install ctags
 
#vim插件管理apt-vim https://github.com/egalpin/apt-vim.git
curl -sL https://raw.githubusercontent.com/egalpin/apt-vim/master/install.sh | sh#github提供的自动安装脚本
#自动安装的项目,提示是否安装
#pathogen
#tagbar
 
#安装nerdtree#文件列表
apt-vim install -y https://github.com/scrooloose/nerdtree.git
 
#安装YouCompleteMe#自动补全工具
apt-vim install -y  https://github.com/Valloric/YouCompleteMe.git#自动安装
 
#如果YouCompleteMe无法正常使用继续执行
git submodule update --init --recursive#相当大的可能性无法正常启用,需要执行该命令来更新子模组
#天,这是有多少三方库!!!一大波三方库正在接近
cd /home/dts/.vim/bundle/YouCompleteMe
./install.py --clang-completer#安装完三方库后,手动安装

根据需要配置插件

gedit~ / .vimrc

syntax on"语法高亮
set mouse=a  " always use mouse  
 
set number"显示行号
"自动缩进与C语言风格缩进
set autoindent
set cindent
 
"缩进宽度
set tabstop=4
set softtabstop=4
set shiftwidth=4
"switch case 对齐风格
set cino=g0,:0
 
"Tagbar
let g:tagbar_width=35    "宽度
let g:tagbar_ctags_bin='/usr/bin/ctags'  "设置tagbar使用的ctags的插件
let g:tagbar_right=1    "位置在右侧
let g:tagbar_autofocus=0    "是否自动聚焦 
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() "打开文件自动打开tagbar   
nmap :TagbarToggle    "快捷键
" NERD tree
let NERDChristmasTree=0
let NERDTreeWinSize=35
let NERDTreeChDirMode=2
let NERDTreeIgnore=['\~$']
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"
" Automatically open a NERDTree if no files where specified
autocmd vimenter * if !argc() | NERDTree | endif
" Close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Open a NERDTree
nmap :NERDTreeToggle
"YouCompleteMe
"自动开启语义补全
let g:ycm_seed_identifiers_with_syntax = 1
"在注释中也开启补全
let g:ycm_complete_in_comments = 1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"字符串中也开启补全
let g:ycm_complete_in_strings = 1
let g:ycm_collect_identifiers_from_tags_files = 1
"开启基于tag的补全,可以在这之后添加需要的标签路径  
let g:ycm_collect_identifiers_from_tags_files = 1
"开始补全的字符数
let g:ycm_min_num_of_chars_for_completion = 2
"补全后自动关闭预览窗口
let g:ycm_autoclose_preview_window_after_completion = 1
"禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_cache_omnifunc=0
"离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"语法关键字补全
let g:ycm_seed_identifiers_with_syntax = 1  
"在实现和声明之间跳转,并分屏打开
let g:ycm_goto_buffer_command = 'horizontal-split'
nnoremap g :YcmCompleter GoTo
 
execute pathogen#infect()
call pathogen#helptags()

你可能感兴趣的:(技术文档)