vim配置 go C++

<meta charset="utf-8">

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 主题色

  1. git clone git://github.com/seebi/dircolors-solarized.git (对ls后的目录增加颜色)

  2. cp ~/vim-plug-ins/dircolors-solarized/dircolors.256dark ~/.dircolors

  3. 注意有的终端需要设置支持256颜色 还需要在.vimrc中加一句 set t_Co=256 并在.bashrc中添加 export TERM=xterm-256color

3、为vim配置颜色--Molokai 主题色

  1. git clone https://github.com/tomasr/molokai.git (下载Molokai主题颜色)

  2. 创建文件夹 mkdir ~/.vim/colors

  3. 将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文件中添加一下三行命令,设置环境变量

  1. export GOBIN=$HOME/go1.6.linux-amd64/go/bin

  2. export GOPATH=HOME/go1.8.7.linux-amd64/go:HOME/go_src:HOME/code/wangyang/jmongo-server:HOME/code/wangyang/jmongo-server/build/rely:HOM E/test:HOME/code/wangyang/mongodb/mongodb-src-r3.2.9/src/mongo-tools

  3. export GOROOT=$HOME/go1.8.7.linux-amd64/go

  4. 在~/.bash_profile文件中添加一下三行命令export PATH=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、如果运行过程中出现异常,或者没有生成上述可执行程序时,可以手动进行补充。

  1. 首先在$GOPATH/src路径下建立/golang.org/x 文件夹,然后到这个文件夹下执行:git clone https://github.com/golang/tools

  2. 下载完成之后执行:go install golang.org/x/tools/cmd/guru (guru工具可以实现go语言函数跳转功能)

  3. 如果第一步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 <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>

nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>

nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>

nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>

nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>

nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>

nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>

nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>

let g:miniBufExplMapCTabSwitchBufs = 1

let g:miniBufExplMapWindowNavVim = 1

let g:miniBufExplMapWindowNavArrows = 1

nnoremap <silent> <F12> :A<CR>

nnoremap <silent> <F3> :Grep<CR>

let g:SuperTabRetainCompletionType=2

let g:SuperTabDefaultCompletionType="<C-X><C-O>"

"" 自动语法高亮

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 <F4> :TagbarToggle<CR>

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 <C-l> gt

nnoremap <C-h> gT

nnoremap <leader>t : tabe<CR>

map <F3> :NERDTreeMirror<CR> "F3开启关闭NERDTree

map <F3> :NERDTreeToggle<CR>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • .vimrc内容如下 "=============================================...
    Morb1d阅读 1,021评论 0 0
  • "========================================================...
    徐志恒阅读 4,109评论 1 1
  • 快捷键 分屏 :split 或 :sp 水平分 上下:vsplit 或 :vs垂直分屏 左右关闭分屏 :qu...
    taobao阅读 446评论 0 1
  • 看了一堆参考,还是乱七八糟,虽然自己已经捋顺了,但是使用还是不顺手,各种快捷键不能用,于是发现了这个,四年前发的,...
    晨曦Bai阅读 8,023评论 2 2
  • 今天我们来入门Jupyter notebook这个东西,研究一下它的功能目录:一、简介二、安装与运行三、Pytho...
    hwang_zhic阅读 3,630评论 0 6