1:最开始的初衷是想装YCM插件,由于YCM需要vim8,而且对环境要求很多,配置很复杂,迟迟弄了2天也没弄出来
2:下面简单做个总结,以后来弄吧!
3:请先看这篇大佬的文章
https://blog.csdn.net/bc516125634/article/details/88858097
4这篇文章除了YCM安装不了,其他能安装的并且有作用的如下插件
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/taglist.vim'
Plugin 'godlygeek/tabular'
Plugin 'scrooloose/nerdcommenter'
Plugin 'w0rp/ale'
5如何安装这些插件,跟着我做只需要3步
5.1第一步安装vim的插件管理器(遇到错误就自己百度解决)
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
5.2 创建.vimrc文件,并粘贴如下代码
(注意粘贴进vim,需要:set paste;设置为粘贴模式)
vim ~/.vimrc
set nocompatible " 去除VI一致性,必须
filetype off " 必须
" 设置包括 vundle 和初始化相关的 runtimepath
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个 vundle 安装插件的路径
"call vundle#begin('~/some/path/here')
" 让 vundle 管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/taglist.vim'
Plugin 'godlygeek/tabular'
Plugin 'scrooloose/nerdcommenter'
Plugin 'w0rp/ale'
"{
" 所有的插件安装配置都必须在此范围内配置
"-----------------------------altercation/vim-colors-solarized-----------------------------------------------------
let g:solarized_termtrans = 1 " 使用 termnal 背景
let g:solarized_visibility = "high" " 使用 :set list 显示特殊字符时的高亮级别
" GUI 模式浅色背景,终端模式深色背景
if has('gui_running')
set background=light
else
set background=dark
endif
" 主题设置为 solarized
" 此处设置配色方案
colorscheme morning
"----------------------------------------------------scrooloose/nerdtree------------------------------
let NERDTreeHighlightCursorline = 1 " 高亮当前行
let NERDTreeShowLineNumbers = 1 " 显示行号
" 忽略列表中的文件
let NERDTreeIgnore = [ '\.pyc$', '\.pyo$', '\.obj$', '\.o$', '\.egg$', '^\.git$', '^\.repo$', '^\.svn$', '^\.hg$' ]
" 启动 vim 时打开 NERDTree
"autocmd vimenter * NERDTree
" 当打开 VIM,没有指定文件时和打开一个目录时,打开 NERDTree
"autocmd StdinReadPre * let s:std_in = 1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
"autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
" 关闭 NERDTree,当没有文件打开的时候
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | end
" <leader>nt 打开 nerdtree 窗口,在左侧栏显示
map <leader>nt :NERDTreeToggle<CR>
" <leader>tc 关闭当前的 tab
map <leader>tc :tabc<CR>
" <leader>to 关闭所有其他的 tab
map <leader>to :tabo<CR>
" <leader>ts 查看所有打开的 tab
map <leader>ts :tabs<CR>
" <leader>tp 前一个 tab
map <leader>tp :tabp<CR>
" <leader>tn 后一个 tab
map <leader>tn :tabn<CR>
"-----------------------------------------------------------------------majutsushi/tagbar-----------
let g:tagbar_ctags_bin = 'ctags' " tagbar 依赖 ctags 插件
let g:tagbar_width = 30 " 设置 tagbar 的宽度为 30 列,默认 40 列
let g:tagbar_autofocus = 1 " 打开 tagbar 时光标在 tagbar 页面内,默认在 vim 打开的文件内
let g:tagbar_left = 1 " 让 tagbar 在页面左侧显示,默认右边
"let g:tagbar_sort = 0 " 标签不排序,默认排序
" <leader>tb 打开 tagbar 窗口,在左侧栏显示
map <leader>tb :TagbarToggle<CR>
"--------------------------------------------------------------vim-scripts/taglist.vim--------------------
let Tlist_Show_One_File = 1 " 只显示当前文件的tags
let Tlist_GainFocus_On_ToggleOpen = 1 " 打开 Tlist 窗口时,光标跳到 Tlist 窗口
let Tlist_Exit_OnlyWindow = 1 " 如果 Tlist 窗口是最后一个窗口则退出 Vim
let Tlist_Use_Left_Window = 1 " 在左侧窗口中显示
let Tlist_File_Fold_Auto_Close = 1 " 自动折叠
let Tlist_Auto_Update = 1 " 自动更新
" <leader>tl 打开 Tlist 窗口,在左侧栏显示
map <leader>tl :TlistToggle<CR>
"------------------------------------------------godlygeek/tabular----------------------------------
"--------------------scrooloose/nerdcommenter------------------------------------------------------------------
let g:NERDSpaceDelims = 1 " 在注释符号后加一个空格
let g:NERDCompactSexyComs = 1 " 紧凑排布多行注释
let g:NERDDefaultAlign = 'left' " 逐行注释左对齐
let g:NERDAltDelims_java = 1 " JAVA 语言使用默认的注释符号
let g:NERDCustomDelimiters = {'c': {'left': '/*', 'right': '*/'}} " C 语言注释符号
let g:NERDCommentEmptyLines = 1 " 允许空行注释
let g:NERDTrimTrailingWhitespace = 1 " 取消注释时删除行尾空格
let g:NERDToggleCheckAllLines = 1 " 检查选中的行操作是否成功
"--------------------------------------------w0rp/ale------------------------------------------
let g:ale_lint_on_text_changed = 'normal' " 代码更改后启动检查
let g:ale_lint_on_insert_leave = 1 " 退出插入模式即检查
let g:ale_sign_column_always = 1 " 总是显示动态检查结果
let g:ale_sign_error = '>>' " error 告警符号
let g:ale_sign_warning = '--' " warning 告警符号
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%]' " 告警显示格式
" C 语言配置检查参数
let g:ale_c_gcc_options = '-Wall -Werror -O2 -std=c11'
let g:ale_c_clang_options = '-Wall -Werror -O2 -std=c11'
let g:ale_c_cppcheck_options = ''
" C++ 配置检查参数
let g:ale_cpp_gcc_options = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_clang_options = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_cppcheck_options = ''
"使用clang对c和c++进行语法检查,对python使用pylint进行语法检查
let g:ale_linters = {
\ 'c++': ['clang', 'gcc'],
\ 'c': ['clang', 'gcc'],
\ 'python': ['pylint'],
\}
" <F9> 触发/关闭代码动态检查
map <F9> :ALEToggle<CR>
"普通模式下,ak 前往上一个错误或警告,aj 前往下一个错误或警告
nmap ak <Plug>(ale_previous_wrap)
nmap aj <Plug>(ale_next_wrap)
" ad 查看错误或警告的详细信息
nmap ad :ALEDetail<CR>
"}
" 所有插件需要在下面这行之前配置
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
5.3 输入插件下载命令(由于代码在GitHub上,下载比较慢)
:PluginInstall
再次打开vim后应该是效果如下所示:
介绍如何使用这些下载的插件
:PluginList | 列出所有已配置的插件 |
---|---|
:PluginInstall | 安装 .vimrc.bundles 中列出来的所有插件 |
Ctrl - w - w | 切换窗口 |
\nt | 打开 nerdtree |
q | 关闭 nerdtree |