@工欲善其事,必先利其器
作为一名使用 Linux OS 开发的程序员来说,VIM无疑是我最喜爱的编辑器,没有之一。因为使用熟练之后,就可以解放你用鼠标的右手,”啪啪啪“一顿敲,有木有感觉很爽,哈哈。既然是自己最喜爱的编辑工具,我想有必要记录一下vim的一些配置,以备重新搭建开发环境时,无需从新配置。
关于Vim
关于Vim配置、插件、Vim命令和Vim教程,网上有套非常详尽的教程,贴出链接Vim详细教程,这里只做自己的配置记录。
Vim配置文件 .vimrc
Vim的系统配置目录,路径为/etc/vim/vimrc 本文修改此配置文件
Vim编辑器相关的所有功能开关都可以通过vimrc文件进行设置。
.vimrc配置文件分系统配置和用户配置两种。
系统vimrc配置文件存放在Vim的安装目录,默认路径为/usr/share/vim/vimrc。可以使用命令echo $VIM来确定Vim的安装目录。
用户vimrc文件,存放在用户主目录下~/vimrc。可以使用命令echo $HOME确定用户主目录。
注意:用户配置文件优先于系统配置文件,Vim启动时会优先读取当前用户根目录下的vimrc文件。所以与个人用户相关的个性化配置一般都放在~/vimrc中。
Vim配置及注释
这里就直接贴出本人的配置文件代码,可以直接复制使用,OS: Ubuntu 18.04 Vim: 8.0 代码如下:
" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below. If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
if has("syntax")
syntax on
endif
" ******************************从此处开始vim基础配置********************************
" 设置编码,支持中文
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set nu " 显示行号
set showmatch " 显示括号匹配
" 设置缩进
set tabstop=4
set shiftwidth=4
set autoindent
set paste " 粘贴模式,避免粘贴代码时格式变形
set cindent " 针对C语言语法自动缩进
syntax on " 开启语法高亮
set hlsearch " vim搜索时,使用黄色底色标记所查找的内容,方便查看
" ******************************从此处开始vim插件管理********************************
set rtp+=~/.vim/bundle/Vundle.vim " 设置包括vundle和初始化相关的runtime path
call vundle#begin()
Plugin 'VundleVim/Vundle.vim' " 让vundle管理插件版本
" 安装 Nerdtree
Plugin 'scrooloose/nerdtree'
" 安装DoxygenToolkit
Plugin 'DoxygenToolkit.vim'
" 安装Taglist
Plugin 'taglist.vim'
call vundle#end() " 你的所有插件必需要在这行之前
filetype plugin indent on " 加载vim自带和插件相应的语法和文件类型相关脚本
filetype plugin on " 忽视插件改变缩进,可以使用这句替代
" ******************************从此处开始vim插件配置********************************
" 设置 Nerdtree
map <leader>t :NERDTreeToggle<CR>
"map <C-n> :NERDTreeToggle<CR>
let NERDTreeShowLineNumbers=1 " 显示行号
let NERDTreeAutoCenter=1
let NERDTreeShowHidden=1 " 是否显示隐藏文件
let NERDTreeWinSize=30 " 设置宽度
let g:nerdtree_tabs_open_on_console_startup=1 " 在终端启动vim时,共享NERDTree
let NERDTreeIgnore=['\.pyc','\~$','\.swp'] " 忽略以下文件的显示
let NERDTreeShowBookmarks=1 " 显示书签列表
" 当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
" 设置DoxygenToolkit 本人设置为C风格
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 = "mahuiming, 807741077@qq.com"
let g:doxygen_enhanced_color = 1
"let g:load_doxygen_syntax = 1
nmap <F4> :DoxAuthor<cr>
" 设置Taglist
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>
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
相关插件的安装
参考:插件安装过程,根据这篇博客安装很顺利,亲测可用
插件列表
Vundle ——管理vim插件的插件 ,其特色在于使用git来管理插件,更新方便
Nerdtree ——树形目录插件,可以方便查看目录
DoxygenToolkit ——用它可以很方便地添加 Doxygen 风格的注释,可以节省大量时间和精力,提高写代码的效率。
Taglist ——TagList插件是一款基于ctags,在vim代码窗口旁以分割窗口形式显示当前的代码结构概览,增加代码浏览的便利程度的vim插件。
nerdcommenter ——快速注释插件,可以很方便的注释代码
vim-airline ——状态栏美化插件
YouCompleteMe —— 代码自动补全插件
需要手动安装的插件
下载安装Vundle,此之前必须先安装Git
mkdir ~/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
对于其他插件,就可以使用Vundle来自动安装管理,在完成 /etc/vim/vimrc 中插件的配置后,即打开vim界面
:PluginInstall
Done!
完成插件安装
好了,花了一早上时间,vim配置算是弄完了,之后有新的配置改动再做更新。关于插件如何使用,网上对每个插件都有详细的介绍,这里就不赘述了。