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

需不需要用 vim 搭建开发环境来替换 IDE?

  •  
  •   alphaprogrammer · 29 天前 · 5498 次点击

    由于后续开发设计底层驱动之类,在考虑用 vim 搭建开发环境好一点还是 IDE 好一些? 大家有什么想法吗?

    97 回复  |  直到 2019-10-22 14:27:10 +08:00
        1
    ericgui   29 天前   ♥ 15
    少年,其实你可以把你的时间花在更有价值的地方。
        2
    HiShan   29 天前
    时间多你就用 vim 吧
        3
    zwpaper   29 天前 via iPhone   ♥ 1
    可以搭建一个 Emacs 来代替 IDE

    XD
        4
    cabing   29 天前
    我最近打算也整下 vim。在服务器上

    编译特别耗内存,本机根本扛不住。。
        5
    alphaprogrammer   29 天前
    @ericgui 我也觉得把时间折腾在 vim 上是不是不划算
        6
    alphaprogrammer   29 天前
    @zwpaper 我去了解下
        7
    jworg   29 天前
    如果是嵌入式的底层驱动,v 站以前有统计的,vim 和 source insight 占绝大部分,emacs 比较少但也有,ide 好像没有
        8
    alphaprogrammer   29 天前
    @jworg 主要是 sourceinsight 只有 window 版本, 需要开个虚拟机,有点麻烦
        9
    zwpaper   29 天前 via iPhone   ♥ 4
    上面回复有点水了,正经回答一下吧


    其实这个和个人习惯关系很大

    vim 和 Emacs 都需要折腾

    我花了很多时间在 Emacs 上 “折腾”,但是 Emacs 也让我学到了 lisp,打开新世界,也让我接触到 Emacs china 社区,了解到很多故事

    折腾换来大一点的眼界,我觉得还是值得的

    至于 Vim,折腾了可能就是折腾了 [Doge]
        10
    joyhub2140   29 天前
    大项目推荐 IDEA+VIM 插件,小项目用 vim 开箱即用的配置就可以了。
        11
    HiShan   29 天前
    @zwpaper ‘至于 Vim,折腾了可能就是折腾了’ 是啥意思? Emacs 折腾了有什么收获呢? 非引战,纯请教,谢谢
        12
    uhayate   29 天前 via iPhone   ♥ 2
    过去几年,每隔一段时间我内心就有躁动要配一套多屌多屌的 vim 来做开发。每次都折腾着就无疾而终。
    最近一次我觉悟了,好好学下记下标准 vim 的快捷键,偶尔会用到,开发时用 ide 就完事了。
    大道至简。
        13
    mingl0280   29 天前
    我司做底层驱动开发的用的是 VisualDSP++(现在好像有个新版本不叫 VDSP++了),系统侧是 Visual Studio,不然光项目管理就能把你折腾疯掉……
        14
    zwpaper   29 天前 via iPhone
    @HiShan 这句话我加了一个 [Doge],当玩笑话看就好了

    至于要说学到什么,我上面也说了,lisp,函数式编程思想
        15
    alphaprogrammer   29 天前
    @uhayate 我现在也只会一点简单的 vi 命令,用于特殊时刻。
        16
    zhuangzhuang1988   29 天前
    闲的蛋疼.
        17
    jdhao   29 天前 via Android
    vim,简单配置一下就可以,装一些对应编程语言的插件,lint 插件一装,也挺好用的
        18
    dangoron   29 天前 via Android
    @cabing 直接下二进制版啊,没权限的话下 neovim 的 appimage
        19
    shutongxinq   29 天前
    一般人都是用 vim 的键位干活吧...即使有些人可能觉得 vim 本体太麻烦没有配置,键位肯定还是用的 vim, 毕竟明显方便一些。
        20
    smdbh   29 天前   ♥ 1
        21
    comwrg   29 天前 via Android
    要折腾,上学可以,工作以后感觉难
        22
    itgoyo   29 天前   ♥ 1
    即便是 Vim 有自动补全代码的动能,在开发效率上远不及 IDE,如果你喜欢的话,还不如使用 IDE 里面的 Vim 插件,对我来说能提高编程效率的不是 Vim 这个软件,而是 Vim 的键位还有功能
        23
    jdhao   29 天前 via Android
    @itgoyo 看你用哪个语言,vim 效率不一定比 IDE 要低。
        24
    qiushaox   29 天前 via iPhone
    如果你是 linux 系统的话,推荐 clion,现在我也是搞 android 底层开发,用 clion 飞一般的感觉
        25
    ech0x   29 天前 via iPhone
    vim 和 emcas 在你没有成为程序员之前就存在了,而且在你有限的程序员生涯里它们也应该会一直存在,你觉得要不要学呢?
        26
    brotherlegend   29 天前 via Android
    到现在我仍然无法记得大部分的 vim 快捷键
        27
    kzzhr   29 天前 via iPhone   ♥ 1
    没有见过什么大牛,仅从周围人来看
    如果你愿意拿出折腾 vim 一半的精力来折腾 IDE,后者的功能效率也只多不少
        28
    ghost024   29 天前
    @ech0x 该如何选择呢?我有些困惑,网上的回答大多都是圣战,能理性分析一下吗?我用的 ubuntu 和 windows 双系统
        29
    LetPointFly   29 天前
    其实 vim 并不折腾 就是看你用快捷键的熟悉程度 但从代码的阅览和修改来看 IDE 对于大多数人还是要方便快捷一些
        30
    ugu   29 天前
    看个人喜好吧,我觉得没必要。
        31
    Jirajine   29 天前
    不折腾,vim 不是一个编辑器而是一种编辑模式,用在各种 ide 或 vscode。

    当然 vim 本身作为终端里的编辑器也有使用场景,主要是远程 ssh 的时候,推荐 https://github.com/SpaceVim/SpaceVim 开箱即用。
        32
    SD10   29 天前 via Android   ♥ 1
    有现成的 IDE 为何还要折腾 vim 呢,项目肯定还是 ide 方便,包括保存刷新,数据库等等,如果 VIm 更方便,ide 的市场得缩小多少? vim 写简脚本,几个文件的代码没问题,ssh 方便,但是大项目用真的是瞎折腾。
        33
    ospider   29 天前
    你要是还在上学的话,我建议折腾一下,万一你更喜欢 vim 呢?我见过的高手里面 vim 和 ide 各占一半吧。
        34
    ech0x   29 天前 via iPhone
    @ghost024 看你喜好呗,你可以都试试。话说在前头,大部分 ide 是有 vim 插件的但不一定有 emacs 插件,但是 Mac 又自带一些 emacs 的快捷键。
    vim 和 emacs 是文本编辑器,不是 ide,它们最大的好处就是可扩展性强而且扩展方便,有点像没开刃的菜刀,你得自己慢慢打磨它。
        35
    sunwei0325   29 天前
    我劝你放弃, 我开了 youcompleteme,vim 卡到不行, 再怎么折腾也没有专业 ide 好用, 装逼用用得了
        36
    ech0x   29 天前 via iPhone
    @sunwei0325 现在 vim 支持异步了,ycm 没有那么卡了把,我现在比较推荐 coc.vim 插件 lsp 用的挺好的。
        37
    ZztGqk   29 天前 via iPhone   ♥ 1
    折腾完之后觉得十分满意,然后又去用 IDE 了。
        38
    fhsan   29 天前
    如果你是运维开发估计用得着,一般人用不到。
        39
    lancelock   29 天前 via iPhone
    最大的问题是不好断点调试,我折腾了几年了,也没有真正用它来写过完整的项目,倒是养成了 ide 不装 vim 插件不会用的习惯
        40
    NonClockworkChen   29 天前
    @ZztGqk 我最近发现,之前折腾的东西,老是在 Alfred 的里面能找到更加方便的存在,就好气,再也不想折腾了
        41
    Yggdroot   29 天前 via Android   ♥ 3
    楼上好多人劝别人不要用 vim,说没有 IDE 效率高,我相信他们对 vim 也只是一知半解吧,真想听听真正会用 vim 的人怎么劝别人不要用 vim 的。
        42
    kran   29 天前 via Android
    vim 没有那么难,记住几个常用的操作命令,比如移动选择删除拷贝。再定义几个插入模式下的光标移动,复杂命令就让插件代劳了。让谁代劳呢?当然是我写的这个৫(”ړ৫)
    https://github.com/kran/poorman-spacevim
        43
    loading   29 天前 via Android
    为啥你会觉得用 vim 会对你开发底层驱动有帮助?
    都是能写驱动的人了,写几个自动化脚本就行了,别浪费太多精力。

    还有,你驱动开发圈有几个用 vim,是什么年代的人,水平如何,心里没数吗?

    自己多思考一下。

    好了,我用 nano 和 vsc,尝试过几天 vim。
        44
    cabing   28 天前
    @dangoron 嗯。我试试
        45
    ghost024   28 天前
    @ech0x 多谢,那我用 vim 吧,上学的时候初学 linux 改配置文件用的就是 vi 和 vim,习惯了
        46
    hakono   28 天前 via iPhone
    学习 vim 的最好时机是学生时代,因为你有足够多的时间折腾配置和插件,养成用 vim 做主力开发的习惯也只有在这个时期抓起才行

    而工作之后你是不可能有那么多时间或精力折腾 vim 的,或者说你工作后即便有时间,在不多的空闲时间里,花时间提升编程水平和花时间折腾 vim 之间让你选,你会选哪个?
    我也相信 vim 如果用心去折腾,也不是那么难的东西,但是说这种话的人都无意间在弱化另一个事实:折腾 vim 的那些精力和时间放到折腾 ide 上同样能让你的 ide 更好用,或者把那些精力放到背英语单词,刷算法等等方面会更值得(对于工作的人来说)


    说这么多我不是说 vim 不好,而是人生不同阶段有不同阶段要干的事。学生时代是接触 vim 最好的时候,就这样
        47
    llvm98   28 天前
    不知道楼主对 vim 有多少了解,但我猜如果楼主对 vim 很了解,对键位很熟悉,平时究竟是用 IDE 还是 Vim 应该就是看楼主心情的事。如果楼主对 vim 其实不是很了解,键位也没有很熟,那其实离“搭建开发环境”的距离还是挺大的。所以我的建议是,楼主在开发时可以选择自己更习惯的方式,然后 vim 可以用在更琐碎的地方,尽量用 vim 命令提高效率,什么时候纯 vim 的效率都可以让自己满意了再尝试用在开发环境。
        48
    AmrtaShiva   28 天前 via Android
    我就喜欢 vim 的自动格式化 不管你那个语言统统格式化 类似 go 的 gofmt
        49
    rudyyuan   28 天前 via Android
    我虽然写了一些 vim 的博客,但是大项目开发我用 vscode...
        50
    twor2   28 天前
    VIM 非常陡 我学了放弃 学了放弃 过程反反复复好几年,突然某一天,我靠,发现一个新天地
        51
    poplar50   28 天前 via Android
    @sunwei0325 language server 了解一下 可以尝试下 coc
        52
    lzcx   28 天前
    小文件、脚本 vim 方便,项目还是 IDE 强,个人感觉,去年国庆研究了一下 vim 配置,当然对于 vim 大神肯定不一样看法,普通人没基础直接 IDE 吧
        53
    hxndg   28 天前
    @Yggdroot
    我更想了解下什么人是真正的会用 vim:我用了两年 vim,用 vim bundle 管理插件,然后很多插件,包括语法检查,一部分词法分析,检索等觉得不如 source insight 好用。可能是我太菜了,但我个人感觉,程序员的根本能力在于学习和创新,而不是把时间花在研究 vim 怎么用上。
        54
    IgniteWhite   28 天前
    还好我在本科时候学了 vim。。。
        55
    shootsoft   28 天前 via iPhone
    可以考虑 docker+vim 如果是团队的话都不用到处折腾。比如这种 https://github.com/JAremko/alpine-vim
        56
    chiu   28 天前 via Android
    底层系统方面开发,我用 vscode remote 过去交叉编译环境的服务器开发,也有同事也 vim 的,但谈不上搭环境,仅一些简单插件。
        57
    rykka   28 天前 via Android
    vim 入门花的时间太久了。一般来说 vsc 就够了
        58
    Sainnhepark   28 天前 via Android   ♥ 1
    vim 本身只是一个代码编辑器,我认为不应该把它当成 IDE 来用,而是应该去尝试用 vim + 各种工具 + 脚本来搭建你的开发环境。

    学会用 vim 进行开发后,你实际上会得到一整套 linux 开发工具链,你可以随意添加或修改其中的东西并把它配置成最适合你的模样,并且有很多很厉害的工具等着你去发掘,你永远不知道下一秒你会发现什么厉害的开发工具。

    而这些是 IDE 无法带给你的,IDE 总是在尝试用有限的工具打造一个让尽可能多的人舒适的开发环境,并尝试对用户隐藏这些工具的所有细节,比如你可能甚至不知道你的代码检错工具有哪些,更不要说修改它们或添加新的代码检错工具了。
        59
    halfer53   28 天前 via Android
    我一般直接推荐 space vim, 但其实 space vim 已经算半个 ide 了
        60
    Chry3anthemum   28 天前 via Android
    实在无法理解为什么有人会觉得 vim 难,vim 配置是折腾。
    有插件开大文件卡你就做一个 largefile 的配置呗:
    普通文件 alias v "vim"
    大文件 alias vl "vim -u /path/largefile_vimrc"
        61
    weixiangzhe   28 天前 via Android
    vim 大部分分时候复制粘贴没有 ide 和编辑器快
        62
    Yggdroot   28 天前 via Android
    @hxndg 比如,会觉得 vim 比 SI 好用的人。vim 用好是需要花些时间,但并不是每次写代码都要从零开始配置、折腾插件,前面花点时间把常用的插件装好,后面就基本不怎么需要折腾了。
        63
    airfling   28 天前
    不需要,能快速成生产力的工具才是好工具,而不是让你时间花费在组装工具上
        64
    charseer   28 天前
    说实话,现在有了 language server,其实什么 ide 真没啥优势了。
        65
    tt67wq   28 天前
    @zwpaper Emacs China 的老猫就是 deepin 的前 CTO 老王吗?
        66
    loryyang   28 天前
    我觉得反过来更好,许多 IDE 有 VIM 插件,配合 IDE 自身的功能,用起来会更顺手
        67
    Immortal   28 天前
    过来人告诉你 idea+vim 插件是真的香
    省事 功能强大 不用折腾各种插件
        68
    iRiven   28 天前
    日常使用 idea + VIM 插件
        69
    tunzao   28 天前
    不需要
        70
    Chingim   28 天前
    这可能是 vim 被黑得最惨的一次

    vim 最大的好处是可以一直呆在终端里, 尝试转到 vsc, 几次都失败了. 各种编辑器的 vim 模式都差点意思, 而且还要经常切换到终端
        71
    mengzhuo   28 天前
    vim 日常被黑,除了补齐和语法提示,其他的功能我一概不用了。
    IDE 有 IDE 的好处,debug 真香,但是编辑起来老要动鼠标……相当蛋疼
    vscode 的 vim-mode,IJ 家的 vim-mode 都试过,还是没办法媲美原版。

    反正 vim 是谁学会谁知道,技多不压身,看着平时用 IDE 的同事每次线上 debug 用 vim 看 log 的痛苦和操作,我就心里嘿嘿嘿。
        72
    hei1000   28 天前
    试试 space-vim? 我现在用的就是

    emacs 的话可以试试 spacemacs
        73
    simo   28 天前
    目前主要 vim,本身就是个工具而已,你有时间的话,就用一阵子体验体验。
        74
    mrowng123   28 天前
    vim 只是在命令行下工作时使用。

    但主要开发还是 IDE。

    我好奇的是花大把时间,把一个文本编辑器配置成一个类 IDE,为什么不省省时间直接用 IDE ?时间不值钱还是生命不值钱?

    所以,Jet 家族,真香!
        75
    RopeHuo   28 天前
    如果你不是在服务器上做开发,我觉得是没有必要的,这样不但提高了你的学习成本,当你使用别人电脑开发的时候,做适应又得需要事件。
        76
    jzq526   28 天前
    只要不是没有图形界面(比如服务器),就 IDE。vim 学习内容多,时间长,配置一番又要花时间和精力,但是结果却和花一两个小时就能安装并上手的 IDE 还不如,何苦呢
        77
    DiamondbacK   28 天前
    这个论坛里,所有关于「学不学 XX 」的话题,都是属于拒绝学习者的。
        78
    hei1000   28 天前
    @qiushaox #24 clion 不是开发 c/c++的吗, 你用来开发 Android?

    另外 clion 要付费吧, 挺贵的
        79
    buhi   28 天前
    “吹捧 vim,emacs,贬低 vim”是不是一种赛博朋克风的崇古情结?
        80
    buhi   28 天前
    “吹捧 vim,emacs,贬低 ide”是不是一种赛博朋克风的崇古情结?
        81
    Chenamy2017   28 天前
    喜欢加有时间就去折腾吧,采用适合自己且喜欢的工具。
        82
    sirius4gnu   28 天前
    学吧,艺多不压身,何况 VIM 还能让你站在鄙视链的顶层。
        83
    wizardoz   28 天前
    VIM 那不是快捷键,那叫编辑指令。因为指令间是有前后逻辑关系的,不是像 Ctrl+s 那样的快捷键。
        84
    wizardoz   28 天前
    另外,很多人说 VIM 在服务器上编辑的优势。我觉得编辑服务器上的文件可以用 vscode 的 sftp 远程编辑,效果会比在远程用 VIM 好的多。虽然我的 vscode 用的也是 vim 模式。
        85
    01000101   28 天前
    上学的时候接触过一点,工作以后在服务器上写代码,当然环境是前辈们搭建好的。只记些常用命令即可提高效率。要视情况定,如果是作为学习的爱好也不是不可以吧。
        86
    zunceng   28 天前
    有了 docker 以后 在服务器上编辑代码 在我这就成了历史
        87
    kuriko   28 天前
    ViM 学会操作方式就好了,训练自己不用鼠标就能对单个文件进行编辑的能力(没错,请不要用鼠标来切换编辑的位置)。之后随便弄个 IDE 装个 ViM 插件就行了。ViM 的高效操作 + IDE 的智能化,两开花。
        88
    james122333   27 天前
    vim 最好的使用方式我认为不是插件的模式
    而是模块化 举例来说就像下面
    aes-encrypt.vim
    async.vim
    buffers.vim
    calculator.vim
    comment.vim
    completion.vim
    diff.vim
    encrypt.vim
    general.vim
    hexedit.vim
    mysql.vim
    pick.vim
    process.vim
    shell.vim
    svn.vim
    tabs.vim

    必要的时候 source 即可 可以搭配模快衍生新的模块 这才叫程序员的编程工具
        89
    mkh10086   27 天前 via iPhone
    vim 适合编辑,但不适合调试
    黄色的树林里分出两条路,我选择 IDE
        90
    0bject   27 天前
    sftp 不行吗
        91
    Kaiv2   27 天前 via Android
    推荐使用 coc.nvim
        92
    james122333   27 天前   ♥ 1
    @mkh10086

    首先你要知道 ide 是怎么调试的 基本上都有外部工具可以用
    gdb、jdb 等等 因为 vim 内部功能组件都可有方程可以"简单"调用
    因此可以进行组合功能 功能代码也可以复用 因此 vim 的学习曲线是一开始陡 最后平缓
    大部份编程工具是一开始平缓 但你要扩充只能说门槛高

    "不能编程的编程工具 不是个好工具"
        93
    FaiChou   27 天前
    @zwpaper 尝试过几次 emacs , 按照 tutorial 走过几遍(粗略), 但还是放弃了, 有什么好的入门方案教程?
        94
    stanjia   27 天前
    jetbrain 不好吗???
        95
    zwpaper   27 天前
    @FaiChou #93 你平时习惯使用快捷键吗?还有如果是 Mac 环境的话,可能会友好一点。

    首先得习惯移动光标的快捷键

    C-n (Next)
    C-p (Previous)
    C-b (backward)
    C-f (forward)

    对应 上 下 左 右
    这个快捷键在 Mac 平台是系统级的。

    然后看你使用的场景,像我,Golang 开发,Emacs 还是很友好的,Go Mode,LSP 配置好,对应的快捷键稍微记一下,自然就用起来了。

    然后就会发现有地方不舒服,再找对应 package,从 Melpa 装上就好了。
    高频操作就绑快捷键,低频操作就 M-x 执行一下命令就好了
    感兴趣的时候,看看别人写的包,还能学学 Lisp
    ---
    说到底,还是有一个使用习惯的过程,习惯了之后,大部分的工作都可以在 Emacs 里完成了
        96
    FaiChou   27 天前
    @zwpaper 公司领导想要统一技术栈 clojure 和 clojurescript, lisp 的一个方言, 如果单纯想用 emacs 作为平时开发工具而不学 clojure 是不是难度会降低些, 或者如果想要学 clojure 的话, 是不是应该先习惯几个月的 emcas? 因为我发现有些语法不是一样, 比如 (let ((local-v "ABC")) (foo local-v)) 这里我同事说语法错误应该用 [], 他应该是当成 clojure 了. 所以为了避免一些矛盾, 学习路径应该是 lisp -> elisp -> clojure ? 请给几点建议
        97
    zwpaper   27 天前 via iPhone
    @FaiChou 国内少有公司会把技能树点在 clojure 上,厉害了!

    不过以我浅薄的 lisp 姿势来说,各家方言差别还是蛮大的,个人感觉没有你说的学习路线…该学哪个方言就好好学就是了…

    至于 clojure,我也不了解,所以也没法给你建议
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2682 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 41ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    ♥ Do have faith in what you're doing.