关于转vscode 使用过程的几点疑惑

看到有篇问答《大家说说看都用啥写Go》,发现用vscode的人越来多了,于是打算尝试一下。

安装完成后,装了gocode, godef, go-outline,go-symbols,golint,gopkgs,guru,gorename,goreturns,gotests,dlv等等一系列命令行工具,按照网文简单的配置了下工作区设置

// 将设置放入此文件中以覆盖默认值和用户设置。
{
    "files.autoSave": "onFocusChange",
    "go.buildOnSave": true,
    "go.lintOnSave": true,
    "go.vetOnSave": true,
    "go.buildTags": "",
    "go.buildFlags": [],
    "go.lintFlags": [],
    "go.vetFlags": [],
    "go.coverOnSave": false,
    "go.useCodeSnippetsOnFunctionSuggest": false,
    "go.formatOnSave": true,
    "go.formatTool": "goreturns",
    "go.goroot": "/usr/local/go",
    "go.gopath": "path/to/gopath(略)",
    "go.gocodeAutoBuild": true
}

开始使用vsocde, 在体验过程中,有几个地方有点疑惑

  • 自己项目内的包、结构、方法、变量等等怎么设置才能进行补全提示,必须也要安装一下自己的项目吗?

  • 开启调试模式的时候总是报could not launch process: could not fork/exec异常 详细如下:
    2016/10/15 10:41:13 server.go:71: Using API v1
    2016/10/15 10:41:13 debugger.go:61: launching process with args: [./debug]
    could not launch process: could not fork/exec

    里面的这个debug文件,在刚安装好vscode的时候,我尝试开启调试的时候,在项目根目录下看到过,再后来就不知道怎么没有了,也不知道这个是要如何生成。

其他的暂时还没有,有了再研究。希望大家帮我解答一下,谢谢。

已邀请:

sheepbao - https://sheepbao.github.io 爱go,爱编程,领域网络开发,流媒体、分布式、网络加速

赞同来自: cooppor

我的项目内的结构,方法,变量等都会提示自动补全啊,前提需要设置gopath,至于调试我就不懂了,调试我是在终端用dlv调试的

doob - 90后

赞同来自: philc

mac的话dlv要用brew安装,不然会有权限问题

http://www.golangtc.com/t/56fe3d46b09ecc66b9000218

cooppor - 本职Java开发,业余Gopher。

赞同来自:

谢回复,我刚才试了下,项目内的代码确实可以提示了! 不知道什么原因昨天晚上折腾的时候没有生效。

philc - https://github.com/philchia

赞同来自:

dlv重新装一下

negronihe

赞同来自:

GOPATH和GOROOT是必须要设置的。vscode好像必须把你的godef之类的执行文件放到GOPATH的bin目录下,且gopath的bin目录也必须设置到系统的PATH目录下。

vscode调试功能没有使用过,建议使用panic和log包的函数来调试。

推荐idea和idea golang plugin来写golang代码,但是唯一缺点是idea比较大,占内存,不过现在大家的电脑至少都有2个G的内存吧,所以也还好。

April - 80后IT男..

赞同来自:

在 gopath 中默认已经安装了一个 dlv,把这个 dlv 删掉就可以了 我尝试了多次,也尝试了 GitHub 上 issues 中提到的一些解决方案,都不行,最后在 golangtc 中看到了一个回复,把 GOPATH/bin/dlv 删掉之后,就可以了 如果还是不行,可以把 brew install 的那个先 brew uninstall 掉,然后重新 brew install

故城

赞同来自:

vscode用dlv调试还是挺好用的 (1)配置好tasks.json: { "version": "0.1.0", "command": "go", "isShellCommand": true, "showOutput": "always", "args": ["run","${file}"], "isBuildCommand": true, "taskSelector": "/t:" } (2)配置launch.json 里面有一项:"program": "${workspaceRoot}/final.go", final.go配置成自己的main入口的文件 "port": 8080,//端口配置成自己的

"host": "127.0.0.1",//配置成自己的 (3)F5调试

ansencumt

赞同来自:

// Specifies the GOPATH to use when no environment variable is set.
    "go.gopath": "E:\\golang\\golibs;D:\\golang\\path;${workspaceRoot}",

其实有关键字:${workspaceRoot}。这样就可以把当前目录设置为工作区了。 我是从sublime text转过来的,我发现控制台直接做go build的时候,非常方便,但在VSCODE里,没有这样的功能,所以我就自己做了一个插件来适配:go-builder-help

这样我只需要用快捷键ctrl+g+t弹出terminal,并设置了当前的一些环境变量(gopath或是交叉编译时的goos等)。也可以使用ctrl+g+b弹出控制台。

控制台一般用于运行go build后,做为运行进程存在。

要回复问题请先登录注册