Vim C/C++开发配置
1.基础准备
安装g++ gcc git cmake
sudoapt-getinstall g++ gcc cmake git
安装vim
sudoapt-getinstallvim
2.安装Vim插件管理工具Vundle
Vundle让你可以非常轻松地安装、更新、搜索和清理插件
- 按
ctrl + alt + T
打开Terminal
进入到~/.vim
文件夹中,如果没有则创建~$ cd ~/.vim/#如果无文件夹#mkdir .vim
- 在
~/.vim
目录下创建一个bundle目录,下载Vundle.vim到/.vim/bundle目录下```/.vim$ mkdir bundle~/.vim$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim``` 如果无法下载,可以直接点击链接下载到该文件夹中。
3.配置~/vimrc
- 在
~/.vim
下创建文件vimrc``````~/.vim$ vim vimrc
将以下内容复制到vimrc
中filetype offsyntax onsetrtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()Plugin 'VundleVim/Vundle.vim'Plugin 'https://hub.fastgit.org/mhinz/vim-startify'" 酷炫的 vim 开始界面Plugin 'scrooloose/nerdtree' " 文件树Plugin 'Valloric/YouCompleteMe'" 代码提示补全插件 Plugin 'sickill/vim-monokai' " monokai主题Plugin 'vim-airline/vim-airline'" 美化状态栏Plugin 'vim-airline/vim-airline-themes' " 设置ailinePlugin 'plasticboy/vim-markdown'" markdown高亮Plugin 'octol/vim-cpp-enhanced-highlight' " C++代码高亮Plugin 'mhinz/vim-signify'Plugin 'dense-analysis/ale'Plugin 'morhetz/gruvbox'" 主题 Plugin 'luochen1990/rainbow' "rainbow parenthesiscall vundle#end()"------------------------------------"-------------keyboard map-----------"-----------------------------------inoremap jj <esc>"-----------------------------------"让vimrc配置变更立即生效'autocmd BufWritePost $MYVIMRC source $MYVIMRCcolorscheme gruvboxset background=dark filetype onset signcolumn=yes "强制显示侧边栏,防止时有时无syntax on setshiftwidth=4settabstop=4let g:ycm_clangd_binary_path='clangd'set number"搜索忽略大小写set ignorecase"搜索逐字符高亮set hlsearchset incsearch" 为C程序提供自动缩进set smartindentset cursorline " 突出显示当前行"光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号"set showmatch"括号自动匹配补全"inoremap (()<Esc>iinoremap [[]<Esc>iinoremap {{}<Esc>iinoremap {{<CR>}<Esc>O" C++的编译和运行map <F5> :call CompileRunGpp()<CR>func! CompileRunGpp()exec "w"exec "!g++ % -o %<"exec "! ./%<"endfunc"rainbow parenthesislet g:rainbow_active =1" 文件树的设置nmap <Leader><Leader> :NERDTreeToggle<CR>let NERDTreeWinSize=32" 设置NERDTree子窗口宽度letNERDTreeWinPos="left"" 设置NERDTree子窗口位置let NERDTreeShowHidden=1 " 显示隐藏文件letNERDTreeMinimalUI=1" NERDTree 子窗口中不显示冗余帮助信息let g:rainbow_conf = {\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],\ 'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],\ 'operators': '_,\|+\|-_',\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],\ 'separately': {\ '*': {},\ 'tex': {\ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'],\ },\ 'css': 0,\ }\}" 绑定F2到NERDTreeTogglemap <F2> :NERDTreeToggle<CR>" YouCompleteMeset runtimepath+=~/.vim/bundle/YouCompleteMelet g:ycm_collect_identifiers_from_tags_files = 1 " 开启 YCM 基于标签引擎let g:ycm_collect_identifiers_from_comments_and_strings =1" 注释与字符串中的内容也用于补全let g:syntastic_ignore_files=[".*\.py$"]let g:ycm_seed_identifiers_with_syntax = 1 " 语法关键字补全let g:ycm_complete_in_comments =1let g:ycm_confirm_extra_conf =0let g:ycm_key_list_select_completion =['<c-n>', '<Down>']" 映射按键, 没有这个会拦截掉tab, 导致其他插件的tab不能用.let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']let g:ycm_complete_in_comments = 1 " 在注释输入中也能补全let g:ycm_complete_in_strings =1" 在字符串输入中也能补全let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'let g:ycm_show_diagnostics_ui =0" 禁用语法检查inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" | " 回车即选中当前项nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|" 跳转到定义处"let g:ycm_min_num_of_chars_for_completion=2" 从第2个键入字符就开始罗列匹配项let g:ycm_global_ycm_extra_conf = "~/.vim/plugged/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py" "" airlinelet laststatus =2let g:airline_powerline_fonts =1let g:airline_theme ="dark"let g:airline#extensions#tabline#enabled = 1"" vim-monokai" colorscheme monokai"" vim-markdown" Github风格markdown语法let g:vim_markdown_no_extensions_in_markdown = 1"" vim-cpp-enhanced-highlightlet g:cpp_class_scope_highlight =1let g:cpp_member_variable_highlight =1let g:cpp_class_decl_highlight =1let g:cpp_experimental_template_highlight =1" 自定义error和warning图标let g:ale_sign_error = '✗'let g:ale_sign_warning = '⚡'" 显示Linter名称,出错或警告等相关信息let g:ale_echo_msg_error_str ='E'let g:ale_echo_msg_warning_str ='W'let g:ale_echo_msg_format ='[%linter%] %s [%severity%]'"设置状态栏显示的内容,这里必须添加%{ALEGetStatusLine()到状态栏里"设置ale显示内容let g:ale_statusline_format =['✗ %d', '⚡ %d', '✔ OK']" 对verilog、c++、c、python单独设置linterlet g:ale_linters ={'verilog':['vlog'],\'c++':['clangd'],\'c':['gcc'],\'python':['pylint'],\}let g:ale_lint_on_text_changed =1let g:ale_set_loclist =0let g:ale_set_quickfix =1
4.安装插件
terminal
中输入vim
命令~$ vim
- 进入到
vim
中后输入:PluginInstall
命令安装插件 安装完成,如下如图所示### 5.自动补全插件YouCompleteMe
的配置 进行到这一步,vim
基本已经配置差不多啦,最后来进行自动补全的配置。 此时打开vim
底部会出现YCM
的报错,现在来解决。 1. 安装python3
、python3-dev``````~$ sudoaptinstall python3 python3-dev
1. 执行如下命令(使用绝对路径)~$ /usr/bin/python3 ~/.vim/bundle/YouCompleteMe/install.py --all--verbose
3.出现如下界面表示成功
6.Vim演示
可以愉快的玩耍啦,开启你的vim C++ 之旅吧!
本文转载自: https://blog.csdn.net/m0_52910424/article/details/132063716
版权归原作者 Drailife 所有, 如有侵权,请联系我们删除。
版权归原作者 Drailife 所有, 如有侵权,请联系我们删除。