前言

作为一个程序员,一个常用的工具就是编辑器,常用的编辑器有Sublime Text、Emacs、Vim、Source Insight、Atom、TextMate.

引用知乎大佬刘尚奇的言论

中国范围,08年以前Vim和Emacs认知度较低,两基友相爱相杀,流行度不相上下;此后Vim一跃领先,在11年后以压倒性优势成为最流行的editor;Emacs份额也稳中有升,并在12年后迎来更广的认知度和流行度;Sublime Text的趋势跟Worldwide相似但略有delay,流行度在13年超越Emacs;TextMate一直作为小众的存在,从Sublime Text诞生起就被超越。

可以看出vim仍是目前的主流编辑器,它流行的一个主要原因就是可扩展。配上各种插件就可以实现非常炫酷的功能。

本人的环境

系统:Centos7
vim版本:8.0

插件列表

  • Vundle
    管理vim插件的插件 ,其特色在于使用git来管理插件,更新方便。
  • Nerdtree
    树形目录插件,可以方便查看目录
  • DoxygenToolkit
    用它可以很方便地添加 Doxygen 风格的注释,可以节省大量时间和精力,提高写代码的效率。
  • Taglist
    TagList插件是一款基于ctags,在vim代码窗口旁以分割窗口形式显示当前的代码结构概览,增加代码浏览的便利程度的vim插件。
  • nerdcommenter
    快速注释插件,可以很方便的注释代码
  • vim-airline
    状态栏美化插件
  • YouCompleteMe
    代码自动补全插件

最终效果

1. 安装/升级Vim

基本所有的操作系统都会内置vim,但是YouCompleteMe插件要求vim版本7.4以上,所以我升级到了vim8.0,centos的包管理工具没有8.0的版本,需要进行手动编译安装。若vim版本大于7.4可忽略本步。

sudo yum install ncurses-devel
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
cd src/
./configure --with-features=huge -enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config --prefix=/usr/local/
sudo make
sudo make install
export PATH=/usr/local/bin:$PATH
vim --version

2. 安装Vundle

若没有安装git

sudo yum install -y git

下载vundle

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

打开配置文件

vim ~/.vimrc

添加以下代码

set nocompatible              " 去除VI一致性,必须要添加
filetype off                  " 必须要添加" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here')" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'" 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
Plugin 'ascenator/L9', {'name': 'newL9'}" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须
filetype plugin indent on    " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on

用vim打开一个新的文件,执行

:PluginInstall

显式Done后安装完毕

3. 安装 Nerdtree

打开vim的配置文件

vim ~/.vimrc

添加代码Plugin ‘scrooloose/nerdtree’在这行之前

" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须

添加后

Plugin 'scrooloose/nerdtree'
" 你的所有插件需要在下面这行之前
call vundle#end()            " 必须

在vim中执行

:PluginInstall

在配置文件中添加以下代码

map <leader>t :NERDTreeToggle<CR>
"map <C-n> :NERDTreeToggle<CR>
" 显示行号
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=30
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 显示书签列表
let NERDTreeShowBookmarks=1" vim不指定具体文件打开是,自动使用nerdtree
" autocmd StdinReadPre * let s:std_in=1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree |endif
" 当vim打开一个目录时,nerdtree自动使用
" autocmd StdinReadPre * let s:std_in=1
" autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) &&
"!exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif" 当vim中没有其他文件,值剩下nerdtree的时候,自动关闭窗口
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

4. 安装DoxygenToolkit

在vim配置文件中call vundle#end() 之前添加

Plugin 'DoxygenToolkit.vim'

在call vundle#end() 之后添加

let g:DoxygenToolkit_briefTag_funcName = "yes"
" for C++ style, change the '@' to '\'
let g:DoxygenToolkit_commentType = "C++"
let g:DoxygenToolkit_briefTag_pre = "\\brief "
let g:DoxygenToolkit_templateParamTag_pre = "\\tparam "
let g:DoxygenToolkit_paramTag_pre = "\\param "
let g:DoxygenToolkit_returnTag = "\\return "
let g:DoxygenToolkit_throwTag_pre = "\\throw " " @exception is also valid
let g:DoxygenToolkit_fileTag = "\\file "
let g:DoxygenToolkit_dateTag = "\\date "
let g:DoxygenToolkit_authorTag = "\\author "
let g:DoxygenToolkit_versionTag = "\\version "
let g:DoxygenToolkit_blockTag = "\\name "
let g:DoxygenToolkit_classTag = "\\class "
let g:DoxygenToolkit_authorName = "suntangji, suntangj2016i@gmail.com"
let g:doxygen_enhanced_color = 1
"let g:load_doxygen_syntax = 1
nmap <F4> :DoxAuthor<cr>

在vim中执行

:PluginInstall

5. 安装Taglist

taglist依赖ctags,需要进行安装

sudo yum install -y ctags

在vim配置文件中call vundle#end() 之前添加

Plugin 'taglist.vim'

在call vundle#end() 之后添加

let Tlist_Ctags_Cmd='ctags'
let Tlist_Show_One_File=1           "不同时显示多个文件的tag,只显示当前文件的
let Tlist_WinWidt =28               "设置taglist的宽度
let Tlist_Exit_OnlyWindow=1         "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window=1        "在右侧窗口中显示taglist窗口
"let Tlist_Use_Left_Windo =1
map <leader>l :Tlist<CR>

在vim中执行

:PluginInstall

6. 安装nerdcommenter

在vim配置文件中call vundle#end() 之前添加

Plugin 'scrooloose/nerdcommenter'

在vim中执行

:PluginInstall

7. 安装vim-airline

在vim配置文件中call vundle#end() 之前添加

Plugin 'bling/vim-airline'
Plugin 'vim-airline/vim-airline-themes'

在call vundle#end() 之后添加

let g:airline_theme="luna"
"这个是安装字体后 必须设置此项"
"let g:airline_theme="kolor"
let g:airline_powerline_fonts = 1
set laststatus=2  "永远显示状态栏
set t_Co=256      "在windows中用xshell连接打开vim可以显示色彩
"打开tabline功能,方便查看Buffer和切换,这个功能比较不错"
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#buffer_nr_show = 1 "设置切换Buffer快捷键"
nnoremap <C-N> :bn<CR>
nnoremap <C-P> :bp<CR>" 关闭状态显示空白符号计数,这个对我用处不大"
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#symbol = '!'
" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'

在vim中执行

:PluginInstall

初次安装以后打开Vim,若发现状态栏会出现乱码,这时有两种解决方案,一种是安装powerline字体或者Nerd Fonts实现字体显示,另一种是用unicode字符替代,对于第一种方案,字体的安装请参考github相应主页上的说明

8. 安装YouCompleteMe

该插件需要手动编译
首先安装依赖

sudo yum install -y python-dev python3-dev gcc cmake 

方式一 通过Vundle下载源码(不推荐)

该方式下载时间较长,不会进行仓库完备性检查
在vim配置文件中call vundle#end() 之前添加

Plugin 'Valloric/YouCompleteMe'

在vim中执行

:PluginInstall

方式二 通过git 下载源码

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive

进行编译

cd ~/.vim/bundle/YouCompleteMe
sudo yum upgrade
sudo ./install.py --clang-completer

安装完成后将.yum_extra_conf.py复制一份到 ~/

cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/

打开.yum_extra_conf.py,在flags中添加以下代码

'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/',
'-isystem',
'/usr/include/i386-linux-gnu/c++'

把flags中‘home/xxx’更改为’home/你的用户名’
打开配置文件.vimrc添加

let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'  "设置全局配置文件的路径
let g:ycm_seed_identifiers_with_syntax=1    " 语法关键字补全
let g:ycm_confirm_extra_conf=0  " 打开vim时不再询问是否加载ycm_extra_conf.py配置
let g:ycm_key_invoke_completion = '<C-a>' " ctrl + a 触发补全
set completeopt=longest,menu    "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)

至此,大功告成!

vim配置及常用插件安装相关推荐

  1. vim配置之taglist插件安装

    上次说了不带插件的vim配置,今天补充两个,来日方长,不定期更新: 首先看一个路径: 下载ctags,将其中的ctags.exe复制到上边目录下边: 地址:https://sourceforge.ne ...

  2. vim常用插件安装及使用

    vim常用插件安装及使用 vim常用插件安装 一. Vim8内置插件管理方案 二.vim插件推荐及安装 2.1 NERDTree插件安装及使用 2.1.1 下载NERDTree插件 2.1.2 NER ...

  3. brew 无法安装iterm2_Mac系统iTerm2+oh-my-zsh配置及常用插件

    iTerm2,是目前Mac平台最好用,功能最强大的终端软件,可以说是Mac系统下终端利器.Mac系统默认使用的终端为bash(MacOS Catalina开始,默认终端已经变成zsh):zsh被喻为& ...

  4. IDEA 2022 常用 插件 安装 与 全局配置 教程 大全

    IDEA 2022 常用 插件 安装 与 全局配置 教程 大全 文章目录 IDEA 2022 常用 插件 安装 与 全局配置 教程 大全 一. 安装必备插件 1. Codota 代码智能提示插件 2. ...

  5. Fedora 28 系统基础配置以及常用软件安装方式

    实验说明: 很多人说Linux很难用,很难上手,其实不然,倘若不玩游戏,其实很多发行版Linux都可以成为主力系统,就比如本章要讲的 Fedora 28.本章会从镜像来源.系统安装.基础配置和常用软件 ...

  6. 【centos8服务器的开发环境配置及常用工具安装】

    centos8服务器的开发环境配置及常用工具安装(不定时更新) 文章目录 centos8服务器的开发环境配置及常用工具安装(不定时更新) 一.安装yum 二.安装unzip命令 三.安装jdk8 四. ...

  7. Sublime Text 3便携版下载安装和常用插件安装--顺便解决报错An error occured installing和no packages available for install

    文章目录 Sublime Text 3便携版下载安装和常用插件安装 1.Sublime Text 3便携版下载: 2.sublime 插件控制器(Package Control)安装 2.1离线安装P ...

  8. IDEA常用配置和常用插件及常用快捷键

    欢迎转载,转载请注明出处! 知乎:迷人滴海嘉 思否:迷人滴海嘉 简书:迷人滴海嘉 前言 本人使用 IntelliJ IDEA 两年多了,觉得还是非常好用的.在使用过程中总结了个人的IDEA常用配置和常 ...

  9. 2080Ti深度学习环境配置及常用软件安装

    2080Ti深度学习环境配置及常用软件安装 ubuntu 16.04 双系统的安装(已有window10系统) 显卡驱动安装 tensorflow安装 teamviewer安装 pycharm安装 m ...

最新文章

  1. centos7配置 console口_玩转KVM-一招打开vm的console口
  2. 学习JavaScript你必须掌握的8大知识点
  3. java的lookAndfeel_java-LookAndFeel行为之间的区别
  4. 灰度图像的8位平面分解
  5. ssm使用全注解实现增删改查案例——EmpServiceImpl
  6. 视频光端机各种视频接口的传输距离是多少?
  7. Java Spring 后端项目搭建
  8. C++ STL容器值set
  9. hessianphp java_hessian 在PHP中的使用
  10. linux服务器配置试卷,2016年Linux认证模拟练习题及答案
  11. Matlab适配器模式
  12. 在honeypack中启用HMR
  13. C# 多线程BackgroundWorker
  14. 实战!使用Docker安装OnlyOffice
  15. c语言程序怎样输出一个图形,用c语言如何输出并显示一个序列图形
  16. Postman下载与安装详细步骤
  17. 【DNSPOD】利用DNSPod实现动态域名解析【DDNS】
  18. Storm概念详解和工作原理,topology、spout、bolt的细节和API讲解之一
  19. 基于ssm整合的网上书城
  20. 虚拟机怎么安装软件 Mac虚拟机怎么安装软件

热门文章

  1. 软件工程第六章——详细设计
  2. 一些学习经验总结和分享
  3. 如何合并svn分支到主干上
  4. 分布式系统和分布式数据库系统(介绍篇)
  5. 裴蜀定理(Noi Color)应用
  6. Echarts3通过ajax动态获取数据,30秒定时图表数据,设置图表线条颜色和粗细
  7. IOC-IOC的简单介绍
  8. 什么是PCB加工中树脂塞孔工艺?
  9. 如何做好一个IT项目经理? (一)
  10. xt6使用技巧_凯迪拉克XT6中控按钮图解 XT6车内按键功能说明