go语言没有如source insight般优秀的编辑器,试用了多种,vim算最好的,其次可以用liteide(有反查变量函数引用点、修改行变色功能),两者可配合使用。

更新:最好的是idea+go插件

下面是一步步搭建vim go语言编辑环境的过程。

ubuntu为例,前提:go开发环境配置好、git安装好。

安装 Pathogen

  1. 前往http://www.vim.org/scripts/script.php?script_id=2332,找到下方的最新版 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 =

    此时,插件本身已经安装完成,可以根据 github.com/fatih/vim-go 的说明进行使用,其中要指出的是 <C-x><C-o> 为代码补全提示,且一般需要在输入 . 操作符之后使用。

  默认有一些高亮未打开,在.vimrc使用以下打开:
let g:go_highlight_functions =
let g:go_highlight_methods =
let g:go_highlight_structs =
let g:go_highlight_operators =
let g:go_highlight_build_constraints =
高亮效果:
 
在安装完后,打开vim,输入:goInstallBinaries安装各插件。
再在.vimrc中加一行
let g:go_fmt_command = "goimports"
自动import对应文件。
 

安装 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 时自动开启实时补全功能。

安装ctags与gotags

  1. sudo apt-get install ctags,然后 go get -u github.com/jstemmer/gotags 安装 Go 语言的相关解析器。
  2. ~/.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

  1. 装 tagbar 插件了,和安装 VIM-GO 一样,首先进入 ~/.vim/bundle 目录。然后执行 git clone https://github.com/majutsushi/tagbar.git

  2. 编辑 ~/.vimrc 文件,加入行 nmap <F8> :TagbarToggle<CR>。这是个快捷键映射,你可以把 F8 换成任意的。

 

安装nerdtree

  1. 进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/scrooloose/nerdtree.git

  2. 编辑 ~/.vimrc 文件,加入行 map <F7> :NERDTreeToggle<CR>。如此一来,当你需要浏览目录的时候,就可以使用快捷键 <Ctrl+n> 来调出浏览窗口了。

 

安装mark.vim

 

从http://www.vim.org/scripts/script.php?script_id=2666下载,用vim打开后输入:so %即可,详见:h vimball

 
 在.vimrc中加入以下进行使用:光标在某单词上,ml高亮单词。mf在同单词间跳转,mn跳转到下一个任意高亮单词。
nmap ml <Plug>MarkSet #高亮或反高亮一个单词
nmap md <Plug>MarkClear
nmap mn <Plug>MarkSearchAnyNext #跳转到任一下一个高亮单词
nmap mp <Plug>MarkSearchAnyPrev
nmap mf <Plug>MarkSearchCurrentNext #跳转到当前高亮的下一个单词
nmap mb <Plug>MarkSearchCurrentPrev
 
 
 

安装visualmask

名称: visualmask
下载地址:

http://www.vim.org/scripts/script.php?script_id=1026

安装: 把下载下来的 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 <F4> :Ack

光标停留在某函数或变量名上,按F4回车,即可全局搜索调用处

 
 

ctrlP找文件快捷

http://www.vim.org/scripts/download_script.php?src_id=19448

直接<Ctrl + p>,输入文件名,可像sublime一样快速定位文件。

 
 
安装了以上插件,作为编辑器已经够用,基本可以无障碍编辑go代码。但对于代码走读,vim不能使用鼠标和图形是天生的残缺,无法像source insight样生成调用关系图,对于走读代码来说效率较低,只能等待source insight支持go语言。
 
另:liteIDE是支持找出函数调用点的编辑工具,同时也支持编辑行变色,清楚显示已修改代码。但引用关系只能找一层,无法看调用树,可配合vim使用。

vim如何配置go语言环境的更多相关文章

  1. 如何使用vscode快速配置C语言环境(简单实用)

    需要用到的工具: VSCode(Visual Studio Code) 一.首先打开官网链接,然后根据自己的电脑选择合适的安装程序进行下载. 二.在安装时默认点击下一步,最后记得勾选上添加path到系 ...

  2. linux下安装配置go语言环境

    1,golang中国下载go源码  http://www.golangtc.com/download  请对应系统版本号,linux-amd64.tar.gz为64位系统(推荐) ,linux-386 ...

  3. Vs code配置Go语言环境-Mac

    背景:最近受朋友介绍,学习Go语言.那么开始吧,首先从配置环境开始. 电脑:Mac Air,Vs code已经安装 一.Go下载和安装 下载地址:https://golang.google.cn/dl ...

  4. Ubuntu 14.04的vim编辑器配置Python开发环境

    #1 $ sudo apt-get install exuberant-ctags vim-scripts $ vim-addons install taglist #2 到:http://www.v ...

  5. 重装系统快速恢复使用习惯(各种图标摆放位置、环境变量、C盘可能存放的文件备份、编辑器配置、语言环境导出)

    目录 电脑重装系统注意点 - 尽可能快速恢复你熟悉的 windows 基本使用场景 最好截图的点 常见文件拷贝 入口 查看桌面图标.快捷方式有哪些 程序员大合集 环境变量相关 pycharm 快捷键等 ...

  6. Ubuntu16.04 部署配置GO语言开发环境 & 注意事项

    1. 安装GO 安装go语言包: $ curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz   下载完成后 ...

  7. Kali Linux搭建Go语言环境

     准备: (1)Kali Linux系统(此实验为VMware环境) (2)Go语言安装包 具体过程: (1)到官网下载Go语言安装包,如图示操作(官网可能需要梯子,没有的可以从国内相关网站下载) ( ...

  8. macOS中Vim基本配置,颜色主题/语法/indent设置

    macOS中Vim基本配置 Vim的初始化配置 .vimrc 存放位置 macOS 环境下 vim 的初始化配置文件为 .vimrc , 通常有两个(系统版本和用户版本),一个位于 /usr/shar ...

  9. 切换debian8系统语言环境

    想切换操作系统的默认语言环境,可以使用如下命令,而不用重新安装系统: 查看操作系统的语言: # env | grep LANG 使用root导入要使用的系统语言: # export LANG=en_U ...

随机推荐

  1. C++ 画星号图形——空心三角形(星号左对齐)(核心代码介绍)

    //输出一个由星号组成的三角形(星号左对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n"; c ...

  2. 安卓ndk参考资料

    http://developer.samsung.com/technical-doc/view.do;jsessionid=xKa-L5xQDvdrSyc1sN71lHAXjcv2YUH7I92zjH ...

  3. select 选择的制作

    我说的select选择是指 手机端的话,一般考虑元素 + 伪类制作 .checkbox{ border:1px solid #987;width:16px;height:16px; } .checkb ...

  4. C# 方法的回调(上)

    在C#编程中方法的回调有以下几种方式 通过接口.通过委托.定时回调.多线程回调,异步回调 下面就以代码的形式来讲解这种方式 通过接口回调 代码示例如下 定义接口,定义了一个Run 方法: interf ...

  5. NDK中可靠的获取JNIEnv*的方法

    使用NDK时,几乎任何方法都需要一个JNIEnv来调用.这个类是和线程相关的,如何可靠的获取它? 首先,作为NDK的so,必然有一个地方是由android系统调用的,这个调用将带来一个JNIEnv参数 ...

  6. 总结-Hibernate

    JPA 全称 Java Persistence API @Entity @Table(name = "user") public class User { @Id @Generat ...

  7. Theos 工程

    一.tweak 工程 1.创建步骤 a) terminal cd 到想要存放项目的目录下 b) 按图步骤完成即可 二.工程文件描述 1.control 记录 deb 包管理系统所需的基本信息. 2.a ...

  8. 关于(object sender, EventArgs e)

      sender是事件源 就是指发起这个事件的对象(控件)//表示触发事件的那个控件比如说你按下按钮,那么sender就是按钮 又如:textboxchange,sender就是该textbox,在事 ...

  9. 针对功能权限(url访问)如何避免越权访问

    你可以用request获得之前的页面路径:Request.getHeader("Referer");然后你可以判断一下,这个是字符串类型的. 如果是需要登录的,你可以从sessio ...

  10. Spring Data JPA

    转自: http://www.cnblogs.com/WangJinYang/p/4257383.html Spring 框架对 JPA 的支持 Spring 框架对 JPA 提供的支持主要体现在如下 ...