kevinhwang
V2EX  ›  Vim

想学 Go,是否能在 vim 做到生产级别的开发环境?

  •  
  •   kevinhwang · Apr 10, 2019 · 14965 views
    This topic created in 2764 days ago, the information mentioned may be changed or developed.

    开始学语法,先配了一下 vim-go 和 coc+go-langserver。

    感觉 debug 还是有点不顺手,想问问生产工具都是用 goland 的吗?

    Ps:目前写 java,用的是 idea 社区版,印象中以前的社区版可以装 clion 和 goland 对应插件的,看来已经到了丰收季节=,=

    104 replies  •  2019-04-25 14:00:31 +08:00
    1  2  
    ❮ ❯
    JamesMackerel
    JamesMackerel
    Apr 10, 2019 via iPhone❤️3
    1
    我就是 vim go + ycm,但是我从来不用调试器,全部靠 print.
    kevinhwang
    kevinhwang
    OP
    Apr 10, 2019
    2
    @JamesMackerel 是生产级别还是个人开发?感觉这样有点像 c 了。
    fengjianxinghun
    fengjianxinghun
    Apr 10, 2019 via iPhone❤️1
    3
    emacs 生产级 调试 idapro
    jmc891205
    jmc891205
    Apr 10, 2019❤️1
    4
    debug 用 delve
    vim 有 3 个插件都是基于 delve:vim-go, vim-godebug 和 vim-delve。
    IDEA 的 golang plugin 也是用的 delve

    本人的习惯是 vim 只做编辑。用命令行的 delve 来做调试。
    herozzm
    herozzm
    Apr 10, 2019 via iPhone❤️1
    5
    是的 Goland
    Maboroshii
    Maboroshii
    Apr 10, 2019❤️1
    6
    vim-go 配合 goimports,ycm,ctags
    然后一个 find 脚本 齐活
    akiakiseofficial
    akiakiseofficial
    Apr 10, 2019 via iPhone❤️6
    7
    在你配完 vim 那些插件的时候,用 goland vscode 的人已经开始开发一段时间了。
    在你辛辛苦苦重构、查 API 文档、换不顺手的插件的时候,用 goland vscode 的人已经开发完发布了。

    我也是一个 vim 党,每天都会用到 vim 来处理一些简单文本或者在服务器查看、编辑文件,但我从来不推荐用 vim 开发项目(除非是特别特别简单的),专业的事就交给专业的工具( jb 全家桶)来干吧。
    nanaw
    nanaw
    Apr 10, 2019
    8
    我建议在 vscode 下用 vim 插件
    kevinhwang
    kevinhwang
    OP
    Apr 10, 2019
    9
    @xlui @nanaw 我觉得 go 是为了微服务和 c 与 cpp 之间的产物,这种业务算比较清了。如果有人让我用 vsc 或者 vim 写 java,我断定他想害我。

    至于 vsc,在不久前我是抱着积极态度的。vim 在发展,已经出现 coc 这种插件,理论上 vsc 有的插件,vim 也会有的,还有后续的悬法窗口。如今 vsc 却越臃肿,最重要是不能在终端。

    我的看法是如果大家觉得 vim 不行,我就想办法用 goland 就是了= =,vsc (没入 vim 前觉得非常好用)不会考虑 ,毕竟同级别的产品。。
    stanlry
    stanlry
    Apr 10, 2019 via Android
    10
    每天都在用 vim 开发 go 的表示毫无问题。
    junmoxiao
    junmoxiao
    Apr 10, 2019 via Android
    11
    @xlui 又不是每次开发都重新配置 vim
    kevinhwang
    kevinhwang
    OP
    Apr 10, 2019
    12
    @stanlry 求姿势
    glues
    glues
    Apr 10, 2019❤️6
    13
    @xlui 在你 goland 启动完成的时候,别人用 vim 已经把项目开发完成上线了

    就你这水平,就别说自己是 vim 党了,我还和马云同姓呢,这事我有到处说吗?
    Erskine
    Erskine
    Apr 10, 2019 via Android
    14
    goland ➕ vim 插件 体验一般般,但也没啥好的选择
    fire9
    fire9
    Apr 11, 2019
    15
    总感觉 Goland 这样的 IDE 是给新手和开发不是很久的人用的. 另外,不够 Cool. Vim 才是王道.哈哈!纯属我个人而言.
    mason961125
    mason961125
    Apr 11, 2019 via iPhone
    16
    说 vscode 重的人真的会用 vscode 么?
    JamesMackerel
    JamesMackerel
    Apr 11, 2019 via iPhone
    17
    @kevinhwang 我只用 go 做过公司的项目。
    7sDream
    7sDream
    Apr 11, 2019❤️3
    18
    第一次听到生产级别的开发环境这个词……
    20015jjw
    20015jjw
    Apr 11, 2019 via Android
    19
    学语法还要 debugger 别折腾了先学会再说
    pubby
    pubby
    Apr 11, 2019 via Android
    20
    在 emacs 里写了十几年代码
    goland (最初叫 goGland )出来后果断换到 goland 了
    luozic
    luozic
    Apr 11, 2019 via iPhone
    21
    调试 远程调试 就用 vim ?那得配置到啥时候?
    congeec
    congeec
    Apr 11, 2019❤️3
    22
    @xlui 功夫不到家
    IDE 的优势在重构和调试,老手在项目代码几万行之前不依赖这些功能
    vim 能用现有的 language server 做重构

    无脑写业务代码,我用 vim 速度完爆同事
    smallX
    smallX
    Apr 11, 2019 via Android
    23
    居然有人鄙视 vim。就因为自己不会吗😊
    missdeer
    missdeer
    Apr 11, 2019 via Android
    24
    生产环境全靠打 log 调试啊
    yemoluo
    yemoluo
    Apr 11, 2019
    25
    Sublime Text 3 一路撸过 Java C++ C 等语言的撸过,我是一个文本型编辑器的爱好者,不占大内存,不耗 CPU
    psrazil2008
    psrazil2008
    Apr 11, 2019❤️1
    26
    写 Go 两年半,生产上用
    win 下 vscode + LiteIDE + bash 调试
    mac 下 item2 + vscode + vim
    因为线上都是打的二进制包和 docker 并不存在说要看源码的情况,源码都是开发环境就得写好静态检查好。所以 vim 就显得没那么重要了。
    goland 或者 vscode + 原生的 gocode 组件 已经可以很好实现代码编辑过程中提示和错误的发现。搭配 go vet ,go fmt 工具静态下代码的质量也能有保证。

    最后,开发环境还是有界面会舒服些,特别是对于开发分布式应用和稍大一点的程序。因为跳转 Interface{}的时候是无法直接跳,需要重新去找实现。在 vim 下看是有点难受。
    xxxy
    xxxy
    Apr 11, 2019
    27
    如果你不知道用什么开发环境,用 jb 家的总没错
    reeco
    reeco
    Apr 11, 2019 via Android
    28
    哈哈 又见 vim 党吹牛逼,还速度完爆
    toma77
    toma77
    Apr 11, 2019
    29
    作为前端狗我用 vscode,包管理用的 govendor,因为 vscode 对 go module 支持不好。。
    kevinhwang
    kevinhwang
    OP
    Apr 11, 2019 via Android
    30
    @GTim java 业务迭代的时候得有多苦,特别是 java 有业务和框架都过度封装的习惯。
    whoisghost
    whoisghost
    Apr 11, 2019
    31
    用 vim 开发大型工程的人,代码一般都写得比较烂。
    imherer
    imherer
    Apr 11, 2019
    32
    刚入坑 Go 不久,用 vscode ……
    debug 基本上靠 print ……
    imherer
    imherer
    Apr 11, 2019
    33
    @toma77 插件没装到位吧? 我用起来还挺顺的!
    wangxiaoaer
    wangxiaoaer
    Apr 11, 2019
    34
    @glues #13
    在你 goland 启动完成的时候,别人用 vim 已经把项目开发完成上线了


    别抬杠。

    顺便提醒下,电脑该换了。
    kindjeff
    kindjeff
    Apr 11, 2019 via iPhone
    35
    用 ide 开发大型工程的人,代码一般都写得比较烂。
    lynskylate
    lynskylate
    Apr 11, 2019 via Android
    36
    @whoisghost linux 不算大型工程???那么多 c++项目不算?这么黑也太过了
    whoisghost
    whoisghost
    Apr 11, 2019
    37
    @lynskylate Linux 代码很漂亮吗?
    lynskylate
    lynskylate
    Apr 11, 2019 via Android
    38
    @whoisghost 你要这么回的话我也没啥好说的。互相 block 吧
    harry890829
    harry890829
    Apr 11, 2019
    39
    jetbrains 全家桶用户路过,使用 goland+vim 插件,超爽的~~
    fatedier
    fatedier
    Apr 11, 2019❤️6
    40
    https://github.com/fatedier/frp 开发环境 tmux + vim + vim-go,很舒服。

    目前 go mod 的支持有一些问题,但是够用,等官方的 gopls 成熟以后应该效率会更高一些。
    glues
    glues
    Apr 11, 2019
    41
    @whoisghost 连 Linux 都看不上,把你的项目拿出来溜溜呗?
    xpol
    xpol
    Apr 11, 2019 via iPhone
    42
    举个旁证:同事在 vim 和 vsc 下开发的 c#代码,在 jb 家的 rider 下全是 inspection 问题。
    kidtest
    kidtest
    Apr 11, 2019
    43
    如果在虚机上开发,哪来的图形化界面让你用 goland。。
    zichen
    zichen
    Apr 11, 2019
    44
    goland 就是开箱即用,vim 总免不了配置一遍环境,并且每次导入新项目总得重新生成一遍 ctags 吧。
    kevinhwang
    kevinhwang
    OP
    Apr 11, 2019
    45
    @fatedier frp 很好用,谢谢大佬给信心。
    yuuko
    yuuko
    Apr 11, 2019
    46
    @xpol 这个难道不是因为你们没有统一代码规范吗?
    thet
    thet
    Apr 11, 2019
    47
    想问一下,vim 可以代码跳转吗
    kevinhwang
    kevinhwang
    OP
    Apr 11, 2019
    48
    @thet 可以,部分语言已经支持 rename 简单重构功能。和楼上某楼意见一致,就是重构和调试,完败 ide。
    BruceAuyeung
    BruceAuyeung
    Apr 11, 2019 via Android
    49
    愿意给钱就上 goland,不愿意就上 vscode
    whoisghost
    whoisghost
    Apr 11, 2019❤️3
    50
    @xpol 对,所以用 vim 的人,绝大部分对语言不是极其熟悉,代码放在 ide 去,一大堆不必要、缺少、最差实践的提示哗啦啦出现。最搞笑的是,重构居然用正则表达式。

    这就是我为啥说用 vim 写的代码,质量都很差,或者说,用非 ide 写的代码,都比较差。
    tomychen
    tomychen
    Apr 11, 2019
    51
    tar cvzf vimconf.tar.gz ~/.vim
    scp vimconf.tar.gz root@testserver:/tmp

    这个工程很大么?
    至于到生产环境,我估计只是配置的修改了吧,那普通的 vim 没带插件的,又如何?

    还是你说要在生产环境撸代码?
    whoisghost
    whoisghost
    Apr 11, 2019
    52
    @glues 来,相互溜溜,github.com/fanpei91

    把你的用 vim 写的 go 代码,放到 goland 之类的去试试,用 “ Inspect Code ” 功能审查下,看看它是不是冷血给你指出代码质量有多烂。
    glues
    glues
    Apr 11, 2019❤️9
    53
    @whoisghost 太好笑了,你以为只有 goland 有代码审查工具吗,go 社区一堆 lint 工具,vim 都能用的上,你恐怕都不知道吧,真的别秀无知了

    看了你 GitHub 上的垃圾代码,所有项目都没有测试代码,难怪你会说出 「重构居然用正则表达式」这种话。
    说真的,就你这水平,在 V 站都处于下游水平,你还看不起 Linux 的代码?
    cuberlzy
    cuberlzy
    Apr 11, 2019
    54
    日常都是 liteide
    whoisghost
    whoisghost
    Apr 11, 2019
    55
    @glues 淡定,别激动。公平点,给我看看你的 github 可否?
    HarrisonZ
    HarrisonZ
    Apr 11, 2019
    56
    喜闻乐见的编辑器怼人
    rayhy
    rayhy
    Apr 11, 2019
    57
    @whoisghost
    @glues

    talk is cheap, show me code?

    俩老哥消消气😂
    y835L9DyC5XD09kq
    y835L9DyC5XD09kq
    Apr 11, 2019 via iPhone
    58
    linux 代码没有大家想的那么神圣和漂亮...
    ThomasZ
    ThomasZ
    Apr 11, 2019 via Android
    59
    vscode ➕ vim 插件 岂不美滋滋? 主要是现在懒得折腾了。。。。
    yemoluo
    yemoluo
    Apr 11, 2019
    60
    @kevinhwang 没办法,作为修复 bug 的主力军,必须得很熟练很熟练
    EricNirvana
    EricNirvana
    Apr 11, 2019❤️1
    61
    使用 vim 四年, 因为不写 java 和前端, ide 完全用不习惯.. 目前实际工作分别使用了 c, python, golang, rust.

    日常使用 zsh + tmux + nvim, 简直不要太舒服.

    异步补全, 异步检查, 代码跳转, 格式检查, 外加杂七杂八的各种插件, 可以做到不离键盘. 说 vim/neovim 不好的, 麻烦装点插件, 做点映射吧, 一套配置可以多机器用..

    以前使用 jb 一年多, 后来换成 vim, 已经不去想 jb 全家桶了
    roscoecheung1993
    roscoecheung1993
    Apr 11, 2019
    62
    第 n 次 IDE 大战又开始了
    herozzm
    herozzm
    Apr 11, 2019 via iPhone
    63
    @glues 他说的没错,你是强行说 golang 启动慢,顶多就是十几秒功夫而已
    herozzm
    herozzm
    Apr 11, 2019 via iPhone
    64
    看到某些强行发起对抗 也是醉了 自身优越感那么强
    kevinhwang
    kevinhwang
    OP
    Apr 11, 2019
    65
    @EricNirvana 我目前 vim 用来看 c 代码比较多,方案跟你一模一样,zsh+tmux+nvim。我的 idea 也是 vim 操作,界面也是在专注模式,去掉各种 tabs 和 windows。


    @roscoecheung1993 我应该没引战吧?我选的节点应该没错。。。。况且我不支持盲目 vim,ide 确实有其优势,但就是想尝试纯终端工作的感觉。
    staticer
    staticer
    Apr 11, 2019❤️1
    66
    等等。一般会纠结这个问题的都是新手。
    新手建议无脑选 “开箱即用”的, 把精力放在语言本身。
    尤其是学生党,每天面对的麻烦事已经够多了,别折腾。
    xiaozizayang
    xiaozizayang
    Apr 11, 2019
    67
    python 环境管理比较麻烦,喜欢用 pycharm,go 的话都用过,但是我投 vim,个人觉得效率不是一个档次
    [![A75a3n.md.png]( https://s2.ax1x.com/2019/04/11/A75a3n.md.png)]( https://imgchr.com/i/A75a3n)
    hellodudu86
    hellodudu86
    Apr 11, 2019
    68
    vim-go 用来写 golang 很舒服的,配置好了就和 ide 没什么区别了。
    跳转 gd,代码 highlight,find ag,debug dlv。
    我平常公司业务用 vs 写 c++,自己写 golang 用 vim+vim-go,感觉还是 vim 用起来爽一些,效率两者差不多。
    EricNirvana
    EricNirvana
    Apr 11, 2019
    69
    萝卜白菜各有所爱了..
    @kevinhwang 你的 id 看着好面熟, 是 spaceVim 的作者?
    ![nvim]( )
    kevinhwang
    kevinhwang
    OP
    Apr 11, 2019
    70
    @EricNirvana 不是,入 vim 不到一年的小菜一枚。
    ggicci
    ggicci
    Apr 11, 2019
    71
    用最新的 IDE 写最简单的语言掉最少的头发泡最靓的仔
    jswh
    jswh
    Apr 11, 2019
    72
    debug 还是要上 gui,用 vim 就纯写
    stanlry
    stanlry
    Apr 11, 2019 via Android❤️1
    73
    楼主既然入了 vim 的坑就用 vim 写吧,都是习惯问题。装两个 plugin 也不费事。不用纠结 IDE 这些,你用 goland 也不会写出比用 vim 更好的代码。
    hellodudu86
    hellodudu86
    Apr 11, 2019
    74
    @EricNirvana 这个 colorscheme 叫啥?
    monlite
    monlite
    Apr 11, 2019
    75
    用过 vim,vscode,最后还是用 goland 了,配合 delve 远程调试服务器上的程序
    appmanagecluster
    appmanagecluster
    Apr 11, 2019
    76
    很早折腾过 vim,最后留下来的就只有 vim 本身的东西,三种模式,不依赖鼠标的各种控制,
    appmanagecluster
    appmanagecluster
    Apr 11, 2019
    77
    说实话,vim 本身核心的东西最好用,补全提示调试 ide 的东西还是 ide 好用,果断 ide、vscode 等 + vim 插件
    noaccounthere
    noaccounthere
    Apr 11, 2019
    78
    别折腾 vim 了, ide 工具+vim 扩展才是写代码的正确途径
    KgM4gLtF0shViDH3
    KgM4gLtF0shViDH3
    Apr 11, 2019 via iPhone
    79
    vim 能做到代码检查吗
    itgoyo
    itgoyo
    Apr 11, 2019
    80
    @EricNirvana spaceVim 作者 V2 和 github 同名
    lq007
    lq007
    Apr 11, 2019
    81
    都 2019 了还有人折腾着玩意呢... 等 vim 折腾够了搭配了一堆插件, 最后可能也就变成另一个低配版 IDE 而已, 想想自己最终获得了什么? vim 折腾经验?
    stanlry
    stanlry
    Apr 11, 2019 via Android
    82
    xrlin
    xrlin
    Apr 11, 2019
    83
    编辑器配置起来好麻烦
    junmoxiao
    junmoxiao
    Apr 11, 2019 via Android
    84
    @kangkang 这要看你怎么定义漂亮的代码了,你可能觉得整齐易懂就叫漂亮
    sazima
    sazima
    Apr 11, 2019
    85
    how about this? 我 python 开发就是改的这个配置.
    sazima
    sazima
    Apr 11, 2019
    86
    忘记贴地址了    https://github.com/TTWShell/legolas-vim
    f4nyc
    f4nyc
    Apr 11, 2019 via iPhone
    87
    我就纳闷了,用 ide 的怎么光撕 vim,真是不给 emacs 面子:-D
    sunocean
    sunocean
    Apr 11, 2019
    88
    @glues 如果我没记错的话,你好像也是 VSCode 用户。我记得好想看过你在 V2 发帖问,VSCode 快捷键弱怎么办。
    GjriFeu
    GjriFeu
    Apr 11, 2019
    89
    唉,真的没有人用 sublime 了么。
    glues
    glues
    Apr 11, 2019
    90
    @sunocean 对, 我是把各种编辑器、IDE 都深入用过才做出自己的判断的
    不像有些人连 vimL 都没写过一行,就说自己是 vim 党。
    还有些无知的人认为 vim 跟不上时代,麻烦你们去 GitHub 看看 commit 记录,看看有多少 PR,就知道这个社区有多活跃,是一直在演进的
    sunocean
    sunocean
    Apr 11, 2019
    91
    @glues 我感觉好多人不喜欢 Vim 甚至不推荐新手用 Vim 是因为觉得他的学习曲线太陡峭不能开箱即用。不太适合新手朋友。
    chemzqm
    chemzqm
    Apr 11, 2019❤️1
    92
    vim 也只是工具而已,现有基于 go 的 languageserver 都各有各的问题,相比 tsserver 还差的挺多,没必要花太多时间折腾配置上面,掌握语言本身更重要。

    coc 后续会支持 Debug Adapter Protocol, 即便支持开始也只是调试 nodejs,建议使用其它调试工具。
    f4nyc
    f4nyc
    Apr 11, 2019 via iPhone
    93
    @glues 我怀疑有些人就是在服务器上用过 vi 然后就“看破” vim 的本质 XD
    jadeity
    jadeity
    Apr 11, 2019
    94
    自己写着玩,vsc+vim 插件
    tamama
    tamama
    Apr 11, 2019
    95
    我主要用 goland (因为省心),有时也用 vim; 平时习惯写脚本用 vim 或 vscode, 大型项目就上 goland
    y835L9DyC5XD09kq
    y835L9DyC5XD09kq
    Apr 11, 2019 via iPhone
    96
    @junmoxiao 哈哈哈哈 谨慎发言吧
    asLw0P981N0M0TCC
    asLw0P981N0M0TCC
    Apr 11, 2019 via iPhone
    97
    @glues 那人不是让你放 github 吗
    scnace
    scnace
    Apr 12, 2019 via Android
    98
    适合自己的才是最好的

    只是像 editor 更容易折腾成自己对自己高效的 IDE 而 goland 提供了一个通用的 IDE 方案罢了 有什么好吵的 真想不通有人还地图炮 这都什么年代了……

    gopls 还不成熟 现在折腾没啥必要

    生产环境全靠肉眼 debug 的 难道没人吗 XDDD
    laodao1990
    laodao1990
    Apr 12, 2019
    99
    一看这问题就猜到下面得打起来...
    Yggdroot
    Yggdroot
    Apr 12, 2019 via Android
    100
    vim,IDE 只是个工具,用 vim 并没觉得有什么优越感,只是单纯觉得比用 IDE 舒服。反而是用 IDE 的人用出了优越感,觉得写的代码就比用 vim 的写的牛叉,甚至连 Linux 内核代码都看不上,也是醉了。
    这里是 V 站的 vim 版块,没怎么见用 vim 的跑去 IDE 版块说 IDE 多么垃圾,用 IDE 的却跑来 vim 版块来秀优越感。
    楼上的一些只是把 vim 当记事本用的,就不要冒充 vim 党了。
    用 vim 不用 IDE 的,是觉得用 IDE 没有那么舒服;用 IDE 且鄙视 vim 的,是不会用 vim,仅此而已。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4104 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 170ms · UTC 04:05 · PVG 12:05 · LAX 20:05 · JFK 23:05
    ♥ Do have faith in what you're doing.