New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

配置 VIM 的 Go 语言开发环境 #7

Open
Unknwon opened this Issue Nov 22, 2016 · 10 comments

Comments

5 participants
@Unknwon
Owner

Unknwon commented Nov 22, 2016

日期:2014-07-01
更新:2015-11-11

本文是针对像我这样的 VIM 小白而写的,所使用的 VIM-GO 插件虽然步骤简单但不够详细,特写此文以做记录和分享。欢迎各位大神纠正补充!

特别说明 本博文不是 Go 语言环境搭建教程,只是 VIM 插件部分的配置教程。如果需要了解如何下载及安装 Go 语言,请移步 配置 Go 语言开发环境 的前半部分。

VIM 插件地址:github.com/fatih/vim-go

安装 Pathogen

Pathogen 是 VIM 的一个插件管理器,很多插件都支持它,所以不要怕麻烦,因为安装它的步骤非常简单。

  1. 前往 Pathogen 首页,找到下方的最新版 Package ZIP 包下载链接。
  2. 下载解压后你会得到一个名称为 autoload 的目录,将目录下的文件 pathogen.vim 拷贝至 ~/.vim/autoload/pathogen.vim
  3. 编辑 ~/.vimrc 文件,在顶部加入行 call pathogen#infect()

安装 VIM-GO 插件

装好了插件管理器,就可以开始安装我们想要的插件了。

  1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/fatih/vim-go.git
  2. 编辑 ~/.vimrc 文件,加入以下内容(最后一行用于禁止自动下载):
syntax enable
filetype plugin on
set number
let g:go_disable_autoinstall = 0
  1. 此时,插件本身已经安装完成,你可以根据 github.com/fatih/vim-go 的说明进行使用,其中要指出的是 <C-x><C-o> 为代码补全提示,且一般需要在输入 . 操作符之后使用。

安装 neocomplete 实时提示

如果想要实时的代码补全提示,可以通过安装 neocomplete 插件来实现,不过它对 VIM 的版本有比较高的要求,具体可以查看它的主页 github.com/Shougo/neocomplete.vim

  1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/Shougo/neocomplete.vim.git
  2. 编辑 ~/.vimrc 文件,加入行 let g:neocomplete#enable_at_startup = 1。这样就能在启动 VIM 时自动开启实时补全功能。

安装 molokai 主题

该 VIM-GO 插件的作者同样写了一个 VIM 的 molokai 主题:github.com/fatih/molokai

安装过程非常简单,就是下载他的 molokai.vim 文件然后放入 ~/.vim/colors 中。然后在 ~/.vimrc 文件加入行 colorscheme molokai 即可。

0007_theme

安装 tagbar

这个插件其实是可选的,但是看起来很牛逼的样子,于是我也琢磨了下。

  1. 首先果断的你需要先安装 ctags,我是 Mac 所以用的 brew install ctags 就搞定了。
  2. 然后 go get -u github.com/jstemmer/gotags 安装 Go 语言的相关解析器。
  3. 接着在你的 ~/.vimrc 文件加入以下内容:
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'
\ }
  1. 是时候装 tagbar 插件了,和安装 VIM-GO 一样,首先进入 ~/.vim/bundle 目录。然后执行 git clone https://github.com/majutsushi/tagbar.git
  2. 编辑 ~/.vimrc 文件,加入行 nmap <F8> :TagbarToggle<CR>。这是个快捷键映射,你可以把 F8 换成任意的。

全部搞完了就是下面这么霸气!

0007_tagbar

安装目录浏览器 nerdtree

俗话说得好,不能查看目录的编辑器不是一个好的 IDE!为了让我们的 VIM 看起来更加霸气,是绝对不能错过 nerdtree 这款插件的。

  1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/scrooloose/nerdtree.git
  2. 编辑 ~/.vimrc 文件,加入行 map <C-n> :NERDTreeToggle<CR>。如此一来,当你需要浏览目录的时候,就可以使用快捷键 <Ctrl+n> 来调出浏览窗口了。

很好,我们来纵览一下最终战果:

0007_nerdtree

小结

到这里一个基本但是完整的配置过程就完成了,大家可以安装 VIM-GO 插件的文档,设置更多的快捷键,它支持非常多和非常实用的功能。另外,学习如何使用 VIM,建议可以像我一样从 简明 Vim 练级攻略 开始,每天练习一点点。

祝大家早日成为码神,哈哈!

@Unknwon Unknwon added VIM Go labels Nov 22, 2016

@hujianxin

This comment has been minimized.

Show comment
Hide comment
@hujianxin

hujianxin May 30, 2017

码神你用vim吗?现在用啥工具呀?

hujianxin commented May 30, 2017

码神你用vim吗?现在用啥工具呀?

@Unknwon

This comment has been minimized.

Show comment
Hide comment
@Unknwon

Unknwon May 30, 2017

Owner

其实。。我一直用的 Sublime Text...

Owner

Unknwon commented May 30, 2017

其实。。我一直用的 Sublime Text...

@hujianxin

This comment has been minimized.

Show comment
Hide comment
@hujianxin

hujianxin May 31, 2017

@Unknwon 视频中用的vscode呢?

hujianxin commented May 31, 2017

@Unknwon 视频中用的vscode呢?

@Unknwon

This comment has been minimized.

Show comment
Hide comment
@Unknwon

Unknwon May 31, 2017

Owner

@hujianxin 偶尔用吧。。

Owner

Unknwon commented May 31, 2017

@hujianxin 偶尔用吧。。

@korman

This comment has been minimized.

Show comment
Hide comment
@korman

korman Feb 12, 2018

我是用够懒的,那玩意有个mongo插件贼好用。

korman commented Feb 12, 2018

我是用够懒的,那玩意有个mongo插件贼好用。

@tianser

This comment has been minimized.

Show comment
Hide comment
@tianser

tianser May 24, 2018

vim下有没有啥插件可以查看interface被那些结构体实现了的没

tianser commented May 24, 2018

vim下有没有啥插件可以查看interface被那些结构体实现了的没

@Unknwon

This comment has been minimized.

Show comment
Hide comment
@Unknwon

Unknwon May 24, 2018

Owner

@cp542524698 vim-go 要是没有的话。。那就没有了。。

Owner

Unknwon commented May 24, 2018

@cp542524698 vim-go 要是没有的话。。那就没有了。。

@Tokumicn

This comment has been minimized.

Show comment
Hide comment
@Tokumicn

Tokumicn Jun 27, 2018

无闻老哥,你有自己的公众微信号吗?或者Go讨论群之类的?
听你的课程比较靠谱,也许未来方便的时候出一些付费教程,我会跟进。谢谢你的付出。

Tokumicn commented Jun 27, 2018

无闻老哥,你有自己的公众微信号吗?或者Go讨论群之类的?
听你的课程比较靠谱,也许未来方便的时候出一些付费教程,我会跟进。谢谢你的付出。

@Unknwon

This comment has been minimized.

Show comment
Hide comment
@Unknwon

Unknwon Jun 27, 2018

Owner

@Tokumicn 暂时没有呀,嘿嘿 没精力维护那么多东西😂

Owner

Unknwon commented Jun 27, 2018

@Tokumicn 暂时没有呀,嘿嘿 没精力维护那么多东西😂

@Tokumicn

This comment has been minimized.

Show comment
Hide comment
@Tokumicn

Tokumicn Jun 30, 2018

老哥加油!

Tokumicn commented Jun 30, 2018

老哥加油!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment