ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Godef

buaazp 全部

Sublime Text 插件,使用 godef 函数精确地进行定义跳转。

标签 go

详细信息

  • 2018.05.21.05.41.10
  • github.​com
  • github.​com
  • 6年前
  • 1小时前
  • 10年前

安装

  • 总计 11K
  • Win 4K
  • Mac 5K
  • Linux 2K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 2 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 2 0 0 0 1 1 0 0 1 0 0 0 0 1
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

说明文件

源代码
raw.​githubusercontent.​com

Godef

此 Sublime Text 2/3 golang 插件添加了一个 godef 命令,使用 godefguru 来查找光标下的定义。

与 GoSublime 兼容

您可以使用此插件与 GoSublime 一起使用,因为 GoSublime 不支持 godef/guru

该插件支持两种不同的模式来查找符号的定义

godef 拥有更快的速度。但是,如果包名与导入路径不匹配,则无法找到正确的定义:[rogpeppe/godef#40](https://github.com/rogpeppe/godef/issues/40)

guru 工具提供了改进的定义查找,这与 Go 1.5+ 的 vendoring 兼容。

我们首先使用 godef 来查找定义,如果失败,再次尝试 guru

安装

该插件假定 godef/guru 存在于 $GOPATH/bin/。您需要先安装它们

go get -v github.com/rogpeppe/godef
go get -v golang.org/x/tools/cmd/guru

Sublime Package Control

如果您使用 Sublime Package Control,您可以通过在软件包列表中搜索 Godef 简单地安装 Sublime Godef。

手动安装

克隆此存储库并将整个 Godef 目录放置在您的 Packages 目录中。

OSX

# Install the plugin
git clone [email protected]:buaazp/Godef.git ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/Godef

Linux

# Install the plugin
git clone [email protected]:buaazp/Godef.git ~/.config/sublime-text-3/Packages/Godef

Windows

现在已经支持 windows。感谢 @decker502@mattn 的工作。请使用 Sublime Package Control 安装此插件。

设置

配置 GOPATHGOROOT

在大多数情况下,安装后无需设置任何内容。但如果您的 Godef 无法正常工作,您需要在使用此插件之前将 gopath 和 goroot 添加到设置文件中。以下是一个示例 Godef.sublime-settings

{
    "goroot": "/Users/zippo/Go",
    "gopath": "/Users/zippo/gopath"
}

// or if you use windows
{
    "goroot": "C:\\Go",
    "gopath": "C:\\gopath"
}

注意:gopath/goroot 的值应该是绝对路径。支持多个路径,例如环境变量 GOPATH,但不支持相对路径

GOOD:
"gopath": "/opt/golang:/Users/zippo/develop/GO"

BAD:
"gopath": "~/develop/GO"
"gopath": "$HOME/develop/GO"

此插件将从以下位置确定 GOPATH/GOROOT

  1. Godef.sublime-settings 文件中的 gopath/goroot
  2. GOPATH/GOROOT 环境变量

注意 2:如果不能解析内部文件,请将已安装库路径添加到您的 gopath 中(注意最后一部分)

"gopath": "/opt/golang:/Users/zippo/develop/GO:/usr/lib/go"

快捷键设置

Godef 的默认快捷键是 gd,这也是 vim 中 godef 插件的默认快捷键。不要害怕,这个快捷键不会修改您的代码。只需按下它。

或者您可以在按下 super/ctrl+alt 的同时单击左键。当然,您也可以自己更改它。以下是一个示例快捷键设置:

{ "keys": ["super+h"], "command": "godef" }

您还可以将这些两个快捷键添加到您的主键映射文件中以跳转到位置。使用 j/k 是因为我使用的是 vim模式。请自行更改。

{ "keys": ["super+j"], "command": "jump_forward"},
{ "keys": ["super+k"], "command": "jump_back"},

这两个命令只在 ST3 中可用。

祝您使用愉快!

Godef 无法使用

许多原因可能会导致 godef 失败。如果发生这种情况,请这样做:

  1. 将您的插件升级到最新版本。
  2. ctrl + ~ 打开 sublime 控制台,然后再次按 godef 快捷键。
  3. 控制台中的日志将显示 godef 不能工作的原因。
  4. 根据日志调整您的设置。
  5. 检查您的 GOPATH/GOROOT 是否在设置中正确。
  6. 在问题上打开并能复制到其中的日志。

许可证

Godef 遵循 BSD 许可证,许可证文件中也有说明。