go语言没有如source insight般优秀的编辑器,试用了多种,vim算最好的,其次可以用liteide(有反查变量函数引用点、修改行变色功能),两者可配合使用。
更新:最好的是idea+go插件
下面是一步步搭建vim go语言编辑环境的过程。
ubuntu为例,前提:go开发环境配置好、git安装好。
安装 Pathogen
-
前往,找到下方的最新版 Package ZIP 包下载链接;
-
下载解压后你会得到一个名称为
autoload
的目录,将目录下的文件pathogen.vim
拷贝至~/.vim/autoload/pathogen.vim
; -
编辑
~/.vimrc
文件,在顶部加入行call pathogen#infect()
。
安装 VIM-GO 插件
装好了插件管理器,就可以开始安装我们想要的插件了。
- 进入目录
~/.vim/bundle
后执行命令git clone
。 - 编辑
~/.vimrc
文件,加入以下内容(最后一行用于禁止自动下载):syntax enablefiletype plugin onset numberlet g:go_disable_autoinstall = 0
此时,插件本身已经安装完成,可以根据 的说明进行使用,其中要指出的是 <C-x><C-o>
为代码补全提示,且一般需要在输入 .
操作符之后使用。
let g:go_highlight_functions = 1let g:go_highlight_methods = 1let g:go_highlight_structs = 1let g:go_highlight_operators = 1let g:go_highlight_build_constraints = 1
let g:go_fmt_command = "goimports"
自动import对应文件。
安装 neocomplete
如果想要实时的代码补全提示,可以通过安装 neocomplete 插件来实现,不过它对 VIM 的版本有比较高的要求,具体可以查看它的主页 。
- 进入目录
~/.vim/bundle
后执行命令git clone
。 - 编辑
~/.vimrc
文件,加入行let g:neocomplete#enable_at_startup = 1
。这样就能在启动 VIM 时自动开启实时补全功能。
安装ctags与gotags
sudo apt-get install ctags,然后
go get -u github.com/jstemmer/gotags
安装 Go 语言的相关解析器。~/.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'\ }
使用:光标在某变量或函数上,输入gd跳转。ctrl+o返回
安装tagbar
-
装 tagbar 插件了,和安装 VIM-GO 一样,首先进入
~/.vim/bundle
目录。然后执行git clone
。 -
编辑
~/.vimrc
文件,加入行nmap <F8> :TagbarToggle<CR>
。这是个快捷键映射,你可以把F8
换成任意的。
安装nerdtree
-
进入目录
~/.vim/bundle
后执行命令git clone
。 -
编辑
~/.vimrc
文件,加入行map <F7> :NERDTreeToggle<CR>
。如此一来,当你需要浏览目录的时候,就可以使用快捷键<Ctrl+n>
来调出浏览窗口了。
安装mark.vim
用vim打开后输入:so %即可,详见:h vimball
nmap mlMarkSet #高亮或反高亮一个单词 nmap md MarkClearnmap mn MarkSearchAnyNext #跳转到任一下一个高亮单词 nmap mp MarkSearchAnyPrevnmap mf MarkSearchCurrentNext #跳转到当前高亮的下一个单词 nmap mb MarkSearchCurrentPrev
安装visualmask
名称: | visualmask |
下载地址: |
|
安装: | 把下载下来的 visualmask.vim 放到 $HOME/.vim/plugin 目录下。 |
帮助: | 见 visualmask.vim 的开头部分。 |
普通模式下按 ctrl+F2 或者 mm 即可进行设置高亮书签;按 F2 或 Shift+F2 进行跳跃;将光标移动到书签上,再按 ctrl+F2 或 mm 取消该书签。
使用的过程中遇到一个问题,每次添加书签的时候都会提示:E197: Cannot set language to "en_US"。将 visualmask.vim 的第55行:
exec ":lan mes en_US"
改成以下即可解决:
exec ":lan mes en_US.utf8"g
安装Ack
先装ack-grep, sudo apt-get install ack-grep
git clone https://github.com/mileszs/ack.vim.git ~/.vim/bundle/ack.vim
vimrc中加入 :
map:Ack
光标停留在某函数或变量名上,按F4回车,即可全局搜索调用处
ctrlP找文件快捷
直接<Ctrl + p>,输入文件名,可像sublime一样快速定位文件。