dockvim基本设置和部分通用插件安装
1、复制 .vimrc 文件到个人根目录下
2、创建文件夹 ~/.vim/bundle/
3、安装插件管理工具 vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
4、vim进入 .vimrc里执行 :PluginInstall
vim颜色设置
1、创建文件夹 ~/vim-plug-ins/, 用以存放配置过程中下载的各种临时文件
2、为linux终端配置颜色--solarized 主题色
git clone git://github.com/seebi/dircolors-solarized.git (对ls后的目录增加颜色)
cp ~/vim-plug-ins/dircolors-solarized/dircolors.256dark ~/.dircolors
注意有的终端需要设置支持256颜色 还需要在.vimrc中加一句 set t_Co=256 并在.bashrc中添加 export TERM=xterm-256color
3、为vim配置颜色--Molokai 主题色
git clone https://github.com/tomasr/molokai.git (下载Molokai主题颜色)
创建文件夹 mkdir ~/.vim/colors
将molokai.vim复制到 ~/.vim/color目录下,cp ~/vim-plug-ins/molokai/colors/molokai.vim ~/.vim/colors/
安装配置go编译环境
1、创建go工具包源码路径 mkdir ~/go-src
2、创建go的安装路径 mkdir ~/go1.6.linux-amd64 (我是以版本号命令的)
3、解压go的压缩包到~/go1.6.linux-amd64路径下, 命令:tar -zxvf go1.6.linux-amd64.tar.gz
4、设置环境变量,GOBIN,GOPATH,GOROOT
在~/.bashrc文件中添加一下三行命令,设置环境变量
export GOBIN=$HOME/go1.6.linux-amd64/go/bin
export GOPATH=HOME/go_src:HOME/code/wangyang/jmongo-server/build/rely:HOME/code/wangyang/mongodb/mongodb-src-r3.2.9/src/mongo-tools
export GOROOT=$HOME/go1.8.7.linux-amd64/go
在~/.bash_profile文件中添加一下三行命令export PATH=GOPATH:$HOME/go1.8.7.linux-amd64/go/bin
5、在~/test路径下创建一个go test程序(hellogolang.go),验证环境是否配置成功。
初始化go辅助工具
1、go插件初始化,vim打开一个go文件,运行命令 :GoInstallBinaries 用来安装go-tools等相关工具,运行结束后,会在$GOBIN目录中生成如下可执行程序
[图片上传失败...(image-d4848a-1564453731341)]
2、如果运行过程中出现异常,或者没有生成上述可执行程序时,可以手动进行补充。
首先在$GOPATH/src路径下建立/golang.org/x 文件夹,然后到这个文件夹下执行:git clone https://github.com/golang/tools
下载完成之后执行:go install golang.org/x/tools/cmd/guru (guru工具可以实现go语言函数跳转功能)
如果第一步go插件初始化没有成功,可以在此时在执行一遍第一步,检查是否成功。
初始化C++相关设置
1、确认是否已经安装ctags插件,若没有安装ctags,则执行yum install ctags安装
2、在C++源码工程根目录运行命令: ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 生成tags
参考文献:
1、vim终端配色(非gui版本)——Monokai https://www.cnblogs.com/liubaocheng999/p/3274645.html
2、Golang开发环境搭建-Vim篇 http://tonybai.com/2014/11/07/golang-development-environment-for-vim/
3、vim颜色表 http://blog.csdn.net/cp3alai/article/details/45509459
4、golang vim 插件设置 https://my.oschina.net/u/1765027/blog/811056?hmsr=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com
5、vim之tags详解 https://www.linuxidc.com/Linux/2017-01/139378.htm
6、vim中ctags简单实用教程 https://blog.csdn.net/haifeng_gu/article/details/72934188?utm_source=itdadao&utm_medium=referral
7、vim中使用grep功能 https://blog.csdn.net/sunxiaopengsun/article/details/62046415
vimrc文件
############################################################################
[图片上传失败...(image-5a3509-1564453731340)]
.vim 详细内容:
set nocompatible " be iMproved, required
"set tags=/home/wangyang/work/tags
filetype off " required
let g:go_version_warning = 0
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
" Install Vim-go
Plugin 'fatih/vim-go'
Plugin 'Blackrush/vim-gocode'
Plugin 'Shougo/neocomplcache' "自动补全
Plugin 'scrooloose/nerdcommenter' "快速注释
Plugin 'scrooloose/nerdtree' "树形目录
Plugin 'FromtonRouge/OmniCppComplete' "CC++代码补全
Plugin 'Lokaltog/vim-powerline' "底部状态栏
Plugin 'msanders/snipmate.vim' "tab补全
Plugin 'wesleyche/SrcExpl' "显示跳转函数和变量定义
Plugin 'scrooloose/syntastic' "语法检测
"Plugin 'Valloric/YouCompleteMe'
Plugin 'dgryski/vim-godef'
Plugin 'majutsushi/tagbar'
Plugin 'jiangmiao/auto-pairs' "括号引号匹配
" Install Vim-C++
"Plugin 'Lokaltog/vim-powerline' "status 美化
Plugin 'octol/vim-cpp-enhanced-highlight' "对c++语法高亮增强
Plugin 'kshenoy/vim-signature' "书签可视化的插件
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' "书签行高亮
"Plugin 'majutsushi/tagbar' "taglist的增强版,查看标签,依赖于ctags
"Plugin 'Valloric/YouCompleteMe' "自动补全
Plugin 'kien/ctrlp.vim' "搜索历史打开文件,在命令行模式下按ctrl+p触发
Plugin 'vim-scripts/grep.vim' "在命令行模式使用grep命令,:Grep
Plugin 'Lokaltog/vim-easymotion' "快速跳转,按两下leader键和f组合
"Plugin 'vim-scripts/ShowTrailingWhitespace.git' "高亮显示行尾的多余空白字符
Plugin 'vim-scripts/indentpython.vim.git'
"Plugin 'vim-scripts/Solarized.git' "主题方案
Plugin 'nathanaelkane/vim-indent-guides.git' "缩进对齐显示
"Plugin 'vim-scripts/indexer.tar.gz' "自动生成标签
""Plugin 'vim-scripts/DfrankUtil' "indexer 依赖
"Plugin 'vim-scripts/vimprj' "indexer 依赖
"Plugin 'davidhalter/jedi-vim' "python
"补全,不依赖于tags,但比较慢,可以使用indexer替换,但不能跳转项目外
"Plugin 'vim-scripts/Markdown'
"Plugin 'tpope/vim-surround'
"Plugin 'ekalinin/Dockerfile.vim'
"Plugin 'scrooloose/syntastic'
" End install vim-C++
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin on " required
let g:neocomplcache_enable_at_startup = 1 "neocomplecache 配置
filetype plugin indent on "启用缩进
set smartindent "智能对齐
set encoding=utf-8
set noundofile
set nobackup
set noswapfile
set cscopequickfix=s-,c-,d-,i-,t-,e-
"设置字体和大小
set guifont=Courier_new:h12:b:cDEFAULT
nmap s :cs find s =expand("")
nmap g :cs find g =expand("")
nmap c :cs find c =expand("")
nmap t :cs find t =expand("")
nmap e :cs find e =expand("")
nmap f :cs find f =expand("")
nmap i :cs find i ^=expand("")$
nmap d :cs find d =expand("")
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
nnoremap :A
nnoremap :Grep
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType=""
"" 自动语法高亮
syntax on
" 检测文件类型
filetype on
" " 检测文件类型插件
filetype plugin on
" " 不设定在插入状态无法用退格键和 Delete 键删除回车符
" set backspace=indent,eol,start
" set whichwrap+=<,>,h,l
" " 显示行号
set number
" " 上下可视行数
set scrolloff=6
"" replace tab with space
set expandtab
" " 设定 tab 长度为 4
set tabstop=4
" " 设置按BackSpace的时候可以一次删除掉4个空格
set softtabstop=4
" " 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
set smarttab
set history=1024
" " 不突出显示当前行
set nocursorline
" " 覆盖文件时不备份
set nobackup
" " 自动切换当前目录为当前文件所在的目录
set autochdir
" " 自动查找tags
set tags=tags;
" " 搜索时忽略大小写,但在有一个或以上大写字母时仍大小写敏感
set ignorecase
set smartcase
" " 搜索到文件两端时不重新搜索
set nowrapscan
" " 实时搜索
set incsearch
" " 搜索时高亮显示被找到的文本
set hlsearch
" " 关闭错误声音
set noerrorbells
set novisualbell
" "set t_vb=
"
" " 不自动换行
" "set nowrap
" "How many tenths of a second to blink
set mat=2
" " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden
" " 智能自动缩进
set smartindent
" " 设定命令行的行数为 1
set cmdheight=1
" " 显示状态栏 (默认值为 1, 无法显示状态栏)
set laststatus=2
" "显示括号配对情况
set showmatch
"
" " 解决自动换行格式下, 如高度在折行之后超过窗口高度结果这一行看不到的问题
set display=lastline
" " 设定配色方案
set background=dark
"colorscheme solarized
colorscheme molokai
set t_Co=256
" " 设置在状态行显示的信息
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\[%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%)
" hilight function name
autocmd BufNewFile,BufRead * :syntax match cfunctions "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2")"
autocmd BufNewFile,BufRead * :syntax match cfunctions "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1")"
"上面两行为了匹配函数名的,为下面的给函数名定义颜色做准备
"给函数名加颜色
hi cfunctions ctermfg=215
"设置光标行,光标移到哪一行,哪一行的行号就变成了浅黄色,相当的动感
set cursorline
"设置自动折叠方式
"set fdm=indent
" 显示Tab符
"set list
"set listchars=tab:\|\ ,trail:.,extends:>,precedes:<
" "启动时不显示 捐赠提示
set shortmess=atl
"blank 空白
"buffers 缓冲区
"curdir 当前目录
"folds 折叠
"help 帮助
"options 选项
"tabpages 选项卡
"winsize 窗口大小
"slash 转换文件路径中的\为/以使session文件兼容unix
"unix 设置session文件中的换行模式为unix
set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,slash,unix,resize
"
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" backspace
set backspace=eol,start,indent
"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"配置tagbar
map :TagbarToggle
let g:tagbar_autofocus = 1
"gotags配置
let g:tagbar_type_go = {
\ 'ctagstype' : 'go',
\ 'kinds' : [
\ 'p:package',
\ 'i:imports:1',
\ 'c:constants',
\ 'v:variables',
\ 't:types',
\ 'n:interfaces',
\ 'w:fields',
\ 'e:embedded',
\ 'm:methods',
\ 'r:constructor',
\ 'f:functions'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 't' : 'ctype',
\ 'n' : 'ntype'
\ },
\ 'scope2kind' : {
\ 'ctype' : 't',
\ 'ntype' : 'n'
\ },
\ 'ctagsbin' : 'gotags',
\ 'ctagsargs' : '-sort -silent'
\ }
"NERDTREE 配置
let mapleader = ','
nnoremap gt
nnoremap gT
nnoremap t : tabe
map :NERDTreeMirror "F3开启关闭NERDTree
map :NERDTreeToggle