V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yyh325
V2EX  ›  程序员

吐槽一下用 vscode 写 golang

  •  
  •   yyh325 · 2021-01-05 21:25:06 +08:00 · 7367 次点击
    这是一个创建于 1404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    装了 go 插件,还有各种编译调试代码提示插件. 各种问题,一会儿没代码提示了; 修改环境变量生效要重启电脑;windows 上交叉编译完 linux 版本的程序, 下次再编译就不是 linux 版本的了. 还是 goland 好,一步到位

    35 条回复    2021-03-27 12:04:25 +08:00
    janxin
        1
    janxin  
       2021-01-05 21:37:33 +08:00
    你可能不是很熟悉 Windows,修改环境变量只需要重启程序不需要重启电脑,甚至不需要重启程序...

    记得使用 gopls,不要使用其他工具
    sky96111
        2
    sky96111  
       2021-01-05 21:57:24 +08:00 via Android
    我这边代码提示确实不稳定,总是掉…但是其他的问题很明显是你的问题。修改环境变量只需要重启应用就可以了。交叉编译 linux 只修改了你当前终端的环境变量,关闭后就失效了,再编译当然就会回到 Windows
    codehz
        3
    codehz  
       2021-01-05 21:58:02 +08:00
    ( explorer 会自动响应修改全局环境变量的请求,然后新开的进程就能用上了)
    yyh325
        4
    yyh325  
    OP
       2021-01-05 22:32:43 +08:00
    终端配置的是 powshell, 应该是从 windows 的环境变量里取的 GOARCH, GOOS. 比如修改 GOOS 后, 重启 vscode, 确定还是之前配置的 GOOS, 重启电脑才能获取正确的 GOOS. 刚又试了一次. 求解, 你们是这样吗
    ii55dd
        5
    ii55dd  
       2021-01-05 22:32:44 +08:00 via iPhone
    go 的交叉编译已经够方便了,你说的是啥场景,代码提示 goland 弱智,每次新项目加载 go list,代理吃不消
    clemente0620
        6
    clemente0620  
       2021-01-05 23:25:32 +08:00
    为什么不用 wsl2
    qianlifeng
        7
    qianlifeng  
       2021-01-05 23:26:49 +08:00
    vscode 最让我不能忍的是不支持鼠标快捷键,所以我现在还在用 GOLAND
    back0893
        8
    back0893  
       2021-01-05 23:26:53 +08:00
    emm
    为啥不在 shell 里面手动
    eclipselu
        9
    eclipselu  
       2021-01-05 23:30:58 +08:00   ❤️ 1
    那个 golang 的插件确实不太稳定 有一些 lint 的错误我代码改了它还是提示的是老的错误
    mason961125
        10
    mason961125  
       2021-01-05 23:43:36 +08:00
    > 还有各种编译调试代码提示插件

    难道 vscode-go 的功能不够用?你不考虑这么多插件会冲突?我用了假的 vscode ?
    snxq1995
        11
    snxq1995  
       2021-01-05 23:43:49 +08:00 via Android   ❤️ 2
    mac 和 linux 没有楼主描述的问题。
    所以你懂我意思吧/笑:-D
    40EaE5uJO3Xt1VVa
        12
    40EaE5uJO3Xt1VVa  
       2021-01-05 23:55:43 +08:00
    昨天遇到一个 vscode 写 go 的问题,装了 go 插件之后,ctrl s 自动删掉 import,然后运行还报错,报错说没有包,不认 fmt,我满头大汗
    Claar
        13
    Claar  
       2021-01-05 23:56:48 +08:00 via iPhone
    我反正很喜欢用 goland
    airplayxcom
        14
    airplayxcom  
       2021-01-05 23:58:37 +08:00
    你想想 你在网页上敲代码是什么体验?
    lithbitren
        15
    lithbitren  
       2021-01-06 00:47:34 +08:00
    package main 那里一直有波浪线,虽然不影响编译运行,但实在不太舒服,查了好些个方法都没有解决
    zro
        16
    zro  
       2021-01-06 01:06:51 +08:00   ❤️ 1
    刚看完一些教学视频,不知道像我这种编程白痴学不学得来~~
    fpure
        17
    fpure  
       2021-01-06 08:32:35 +08:00 via Android
    @airplayxcom 有人喜欢在浏览器里敲代码,有人喜欢在终端里敲代码,半斤八两
    xdeng
        18
    xdeng  
       2021-01-06 09:05:13 +08:00
    LiteIDE
    yzbythesea
        19
    yzbythesea  
       2021-01-06 09:09:25 +08:00
    说实话讲轻量化,用 text editor 就上 vim,讲功能效率,用 IDE 就一步到位上 jetbrain 全家桶。vscode 不上不下。
    hahaFck
        20
    hahaFck  
       2021-01-06 09:16:41 +08:00
    js 做的东西能好到哪
    rrfeng
        21
    rrfeng  
       2021-01-06 09:26:08 +08:00 via Android
    开 gopls 流畅的一逼…你肯定是没弄好。
    to2false
        22
    to2false  
       2021-01-06 09:29:57 +08:00
    除了 debug 难用了点,其他问题不大
    llej
        23
    llej  
       2021-01-06 09:34:41 +08:00
    我使用如下这样的脚本来进行编译,没有遇到什么问题
    ```bat
    SET CGO_ENABLED=0
    SET GOOS=darwin
    SET GOARCH=amd64
    go build -o mac_md2website ./src

    SET CGO_ENABLED=0
    SET GOOS=linux
    SET GOARCH=amd64
    go build -o linux_md2website ./src

    SET CGO_ENABLED=0
    SET GOOS=windows
    SET GOARCH=amd64
    go build -o windows_md2website.exe ./src
    ```
    monospace
        24
    monospace  
       2021-01-06 09:35:12 +08:00
    不要慌,问题不大,习惯就好 😄
    zzzzzzggggggg
        25
    zzzzzzggggggg  
       2021-01-06 10:24:27 +08:00
    一般这种工具类的吐槽都是习惯问题,过一阵就好了
    wiluxy
        26
    wiluxy  
       2021-01-06 10:25:19 +08:00
    装了 go 插件后,打开 vscode,搜索 go.uselanguageserver,勾上再看看,速度快很多的
    MarkingJason
        27
    MarkingJason  
       2021-01-06 10:37:43 +08:00   ❤️ 1
    vscode 有 remote - ssh,可以远程开发 linux 机器上的项目。
    或者用 win10 的 wsl2,唯一缺点就是 wsl2 没有固定的内网 ip,得用脚本固定。
    至于编译的话没用过,都是在终端上编译的。
    格式化、自动导包啥的打开 gopls 就行。
    holulu
        28
    holulu  
       2021-01-06 10:42:33 +08:00
    vscode 免费,goland 收费,体验有差是正常的吧?!
    cheng6563
        29
    cheng6563  
       2021-01-06 10:47:22 +08:00
    vscode 的代码提示是不准确的,不适合开发这类静态语言。
    js,python 什么的反正没有 IDE 能准确提示,用 vscode 无所谓了。
    xpresslink
        30
    xpresslink  
       2021-01-06 10:51:58 +08:00
    还是推荐用够烂的
    janxin
        31
    janxin  
       2021-01-06 12:22:30 +08:00
    @lithbitren 因为包没有写文档
    lithbitren
        32
    lithbitren  
       2021-01-06 12:43:19 +08:00
    @janxin 啊,不懂啊,我 package 和每个函数前面都按规范写注释了。。

    红色波浪线报错理由如下:
    gopls requires a module at the root of your workspace.
    You can work with multiple modules by opening each one as a workspace folder.
    Improvements to this workflow will be coming soon ( https://github.com/golang/go/issues/32394),
    and you can learn more here: https://github.com/golang/go/issues/36899.

    但进了这两个 issues 我也整不明白怎么设置 vscode 能解决这个问题,因为不影响运行就搁置了
    DelayNoMay
        33
    DelayNoMay  
       2021-01-06 13:11:23 +08:00
    免费的肯定是最贵的
    march1993
        34
    march1993  
       2021-01-06 13:21:46 +08:00
    环境变量直接在 vscode 自己的 setting 里设置也行的
    putaozhenhaochi
        35
    putaozhenhaochi  
       2021-03-27 12:04:25 +08:00
    @lithbitren https://github.com/golang/tools/blob/master/gopls/doc/workspace.md

    如果不是根目录,需要讲文件夹加入工作区
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:37 · PVG 11:37 · LAX 19:37 · JFK 22:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.