分享

vundle: vim插件管理安装之错误总结

 just_person 2019-01-17

我安装遇到的主要问题是不知道vundle有老版和新版之分,以致于rpt设置的新版,git clone 的却是老版,于是就遇到一些诡异的问题了,例如找不到:BuildInstall命令。。。

vundle新版和旧版还是差的比较多的。旧版:vundle#rc()、Bundle;新版:vundle#begin()、Plugin.

网上找到的大部分是老版本的安装方式,如下:

一. Vundle的安装

$ git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 
2. 更新.vimrc配置文件

  1. set nocompatible " be iMproved
  2. filetype off " required!
  3. set rtp+=~/.vim/bundle/vundle/
  4. call vundle#rc()
  5. " let Vundle manage Vundle
  6. " required!
  7. Bundle 'gmarik/vundle'
  8. " 可以通过以下四种方式指定插件的来源
  9. " a) 指定Github中vim-scripts仓库中的插件,直接指定插件名称即可,插件明中的空格使用“-”代替。
  10. Bundle 'L9'
  11. “ b) 指定Github中其他用户仓库的插件,使用“用户名/插件名称”的方式指定
  12. Bundle 'tpope/vim-fugitive'
  13. Bundle 'Lokaltog/vim-easymotion'
  14. Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
  15. Bundle 'tpope/vim-rails.git'
  16. " c) 指定非Github的Git仓库的插件,需要使用git地址
  17. Bundle 'git://git.wincent.com/command-t.git'
  18. " d) 指定本地Git仓库中的插件
  19. Bundle 'file:///Users/gmarik/path/to/plugin'
  20. filetype plugin indent on " required!

3. 安装插件,顺便用vim打开一个文件,输入下面命令

:BundleInstall  

二.新版安装

1. Vundle的安装

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2. 更新.vimrc配置文件(下面是我的.vimrc文件)

  1. " ***************** 全局设置 ************** "
  2. " 开启文件类型侦测
  3. filetype on
  4. " 根据侦测到的不同类型加载对应的插件
  5. filetype plugin on
  6. " 自动缩进
  7. filetype indent on
  8. " 开启语法高亮功能
  9. syntax enable
  10. " 允许用指定语法高亮配色方案替换默认方案
  11. syntax on
  12. set nocompatible "关闭兼容模式
  13. set incsearch "开启实时搜索功能
  14. set ignorecase "搜索忽略大小写
  15. set wildmenu "vim命令自动补全
  16. set autoread "文件自动更新
  17. set gcr=a:block-blinkon0 "禁止关闭闪烁
  18. set laststatus=2 "总是显示状态栏
  19. set ruler "显示光标位置
  20. set number "显示行号
  21. set cursorline "高亮显示当前行
  22. "set cursorcolumn "高亮显示当前列
  23. set hlsearch "高亮显示搜索结果
  24. " set nowrap "禁止折行
  25. set backspace=2 "回退键生效
  26. "set backspace=indent,eol,start
  27. set novisualbell
  28. " 禁止显示滚动条
  29. set guioptions-=l
  30. set guioptions-=L
  31. set guioptions-=r
  32. set guioptions-=R
  33. " 禁止显示菜单和工具条
  34. set guioptions-=m
  35. set guioptions-=T
  36. " 将制表符扩展为空格
  37. set expandtab
  38. " 设置编辑时制表符占用空格数
  39. set tabstop=4
  40. " 设置格式化时制表符占用空格数
  41. set shiftwidth=4
  42. " 让 vim 把连续数量的空格视为一个制表符
  43. set softtabstop=4
  44. " 基于缩进或语法进行代码折叠
  45. set foldmethod=syntax
  46. " 启动 vim 时关闭折叠代码
  47. set nofoldenable
  48. " 交互式打开shell
  49. set shell=bash\ -i
  50. " *************** 设置全局快捷键 *****************
  51. " 定义快捷键的前缀,即<Leader>
  52. "let mapleader="\<space>"
  53. let mapleader="'"
  54. " 设置快捷键将选中文本块复制至系统剪贴板
  55. vnoremap <Leader>y "+y
  56. " 设置快捷键将系统剪贴板内容粘贴至 vim
  57. nmap <Leader>p "+p
  58. " 定义快捷键关闭当前分割窗口
  59. nmap <Leader>q :q<CR>
  60. " 定义快捷键保存当前窗口内容
  61. nmap <Leader>w :w<CR>
  62. " 定义快捷键保存所有窗口内容并退出 vim
  63. "nmap <Leader>WQ :wa<CR>:q<CR>
  64. " 不做任何保存,直接退出 vim
  65. "nmap <Leader>Q :qa!<CR>
  66. " 依次遍历子窗口
  67. nnoremap nw <C-W><C-W>
  68. " 跳转至右方的窗口
  69. nnoremap <Leader>l <C-W>l
  70. " 跳转至左方的窗口
  71. nnoremap <Leader>h <C-W>h
  72. " 跳转至上方的子窗口
  73. nnoremap <Leader>k <C-W>k
  74. " 跳转至下方的子窗口
  75. nnoremap <Leader>j <C-W>j
  76. " 定义快捷键在结对符之间跳转
  77. nmap <Leader>M %
  78. nnoremap <Leader>g <C-]>
  79. nnoremap <Leader>b <C-t>
  80. " ************** 插件管理与设置 ************ "
  81. " vundle 环境设置
  82. filetype off
  83. set rtp+=~/.vim/bundle/Vundle.vim
  84. " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
  85. call vundle#begin()
  86. Plugin 'VundleVim/Vundle.vim'
  87. Plugin 'Lokaltog/vim-powerline' "status 美化
  88. Plugin 'octol/vim-cpp-enhanced-highlight' "对c++语法高亮增强
  89. Plugin 'kshenoy/vim-signature' "书签可视化的插件
  90. Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' "书签行高亮
  91. Plugin 'majutsushi/tagbar' "taglist的增强版,查看标签,依赖于ctags
  92. Plugin 'scrooloose/nerdcommenter' "多行注释,leader键+cc生成, leader+cu删除注释
  93. Plugin 'scrooloose/nerdtree' "文件浏览
  94. Plugin 'Valloric/YouCompleteMe' "自动补全
  95. Plugin 'kien/ctrlp.vim' "搜索历史打开文件,在命令行模式下按ctrl+p触发
  96. Plugin 'vim-scripts/grep.vim' "在命令行模式使用grep命令,:Grep
  97. Plugin 'Lokaltog/vim-easymotion' "快速跳转,按两下leader键和f组合
  98. Plugin 'vim-scripts/ShowTrailingWhitespace.git' "高亮显示行尾的多余空白字符
  99. Plugin 'vim-scripts/indentpython.vim.git'
  100. Plugin 'vim-scripts/Solarized.git' "主题方案
  101. Plugin 'nathanaelkane/vim-indent-guides.git' "缩进对齐显示
  102. "Plugin 'vim-scripts/indexer.tar.gz' "自动生成标签
  103. "Plugin 'vim-scripts/DfrankUtil' "indexer 依赖
  104. "Plugin 'vim-scripts/vimprj' "indexer 依赖
  105. Plugin 'davidhalter/jedi-vim' "python 补全,不依赖于tags,但比较慢,可以使用indexer替换,但不能跳转项目外
  106. Plugin 'vim-scripts/Markdown'
  107. Plugin 'tpope/vim-surround'
  108. Plugin 'ekalinin/Dockerfile.vim'
  109. " 插件列表结束
  110. call vundle#end()
  111. filetype on
  112. " Powerline 设置
  113. " 设置状态栏主题风格
  114. let g:Powerline_colorscheme='solarized256'
  115. " 设置tagbar
  116. " 设置 tagbar 子窗口的位置出现在主编辑区的左边
  117. let tagbar_left=1
  118. " " 设置显示/隐藏标签列表子窗口的快捷键。速记:identifier list by tag
  119. nnoremap <Leader>t :TagbarToggle<CR>
  120. " " 设置标签子窗口的宽度
  121. let tagbar_width=32
  122. " " tagbar 子窗口中不显示冗余帮助信息
  123. let g:tagbar_compact=1
  124. " " 设置 ctags 对哪些代码标识符生成标签
  125. " signature设置
  126. let g:SignatureMap = {
  127. \ 'Leader' : "m",
  128. \ 'PlaceNextMark' : "m,",
  129. \ 'ToggleMarkAtLine' : "m.",
  130. \ 'PurgeMarksAtLine' : "m-",
  131. \ 'DeleteMark' : "dm",
  132. \ 'PurgeMarks' : "mda",
  133. \ 'PurgeMarkers' : "m<BS>",
  134. \ 'GotoNextLineAlpha' : "']",
  135. \ 'GotoPrevLineAlpha' : "'[",
  136. \ 'GotoNextSpotAlpha' : "`]",
  137. \ 'GotoPrevSpotAlpha' : "`[",
  138. \ 'GotoNextLineByPos' : "]'",
  139. \ 'GotoPrevLineByPos' : "['",
  140. \ 'GotoNextSpotByPos' : "mn",
  141. \ 'GotoPrevSpotByPos' : "mp",
  142. \ 'GotoNextMarker' : "[+",
  143. \ 'GotoPrevMarker' : "[-",
  144. \ 'GotoNextMarkerAny' : "]=",
  145. \ 'GotoPrevMarkerAny' : "[=",
  146. \ 'ListLocalMarks' : "ms",
  147. \ 'ListLocalMarkers' : "m?"
  148. \ }
  149. " 使用 NERDTree 插件查看工程文件。设置快捷键,速记:file list
  150. nmap <Leader>f :NERDTreeToggle<CR>
  151. " 设置NERDTree子窗口宽度
  152. let NERDTreeWinSize=32
  153. " 设置NERDTree子窗口位置
  154. let NERDTreeWinPos="right"
  155. " 显示隐藏文件
  156. let NERDTreeShowHidden=1
  157. " NERDTree 子窗口中不显示冗余帮助信息
  158. let NERDTreeMinimalUI=1
  159. " 删除文件时自动删除文件对应 buffer
  160. let NERDTreeAutoDeleteBuffer=1
  161. " YCM 补全菜单配色
  162. " 菜单
  163. "highlight Pmenu ctermfg=2 ctermbg=3 guifg=#005f87 guibg=#EEE8D5
  164. " 选中项
  165. "highlight PmenuSel ctermfg=2 ctermbg=3 guifg=#AFD700 guibg=#106900
  166. " 补全功能在注释中同样有效
  167. let g:ycm_complete_in_comments=1
  168. " 允许 vim 加载 .ycm_extra_conf.py 文件,不再提示
  169. let g:ycm_confirm_extra_conf=0
  170. " 开启 YCM 标签补全引擎
  171. let g:ycm_collect_identifiers_from_tags_files=1
  172. " 引入 C++ 标准库tags
  173. set tags+=/data/misc/software/misc./vim/stdcpp.tags
  174. " YCM 集成 OmniCppComplete 补全引擎,设置其快捷键
  175. "inoremap <leader>; <C-x><C-o>
  176. " 补全内容不以分割子窗口形式出现,只显示补全列表
  177. set completeopt-=preview
  178. " 从第一个键入字符就开始罗列匹配项
  179. let g:ycm_min_num_of_chars_for_completion=1
  180. " 禁止缓存匹配项,每次都重新生成匹配项
  181. let g:ycm_cache_omnifunc=0
  182. " 语法关键字补全
  183. let g:ycm_seed_identifiers_with_syntax=1
  184. let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
  185. """ color settings
  186. set t_Co=256
  187. if has("gui_running")
  188. set guioptions=gR
  189. set mousemodel=popup
  190. set background=light
  191. ""hi LineNr cterm=bold guibg=black guifg=white
  192. ""hi CursorLine cterm=none ctermbg=lightgray ctermfg=none
  193. ""hi CursorColumn cterm=none ctermbg=lightgray ctermfg=none
  194. else
  195. set background=dark
  196. ""hi LineNr cterm=bold ctermbg=black ctermfg=white
  197. ""hi CursorLine cterm=none ctermbg=darkgray ctermfg=none
  198. ""hi CursorColumn cterm=none ctermbg=darkgray ctermfg=none
  199. endif
  200. colorscheme solarized
  201. "colorscheme default
  202. " indent guides
  203. "let g:indent_guides_enable_on_vim_startup=1
  204. " 从第二层开始可视化显示缩进
  205. let g:indent_guides_start_level=2
  206. "let g:indent_guides_auto_colors = 0
  207. "hi IndentGuidesOdd guibg=red ctermbg=3
  208. "hi IndentGuidesEven guibg=green ctermbg=4
  209. " 色块宽度
  210. let g:indent_guides_guide_size=1
  211. " 快捷键 i 开/关缩进可视化
  212. noremap <Leader>sj :IndentGuidesToggle<CR>

3. 安装插件,顺便用vim打开一个文件,输入下面命令

:PluginInstall

三.相关错误

插件安装完后,重新用vim打开一个文件,显示下面错误:

  1. Indexer error: Exuberant Ctags not found in PATH.
  2. .........
解决方法:

  1. For Ubuntu and derivatives:
  2. sudo apt-get install exuberant-ctags
  1. With yum:
  2. sudo yum install ctags-etags

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多