V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
changwei
V2EX  ›  问与答

真的有人用无 GUI 的 Linux 环境和 vim 做开发吗?

  •  
  •   changwei · 2018-11-16 02:51:08 +08:00 · 9164 次点击
    这是一个创建于 1959 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在真的有人会把无 GUI 的 linux 当做主力开发环境吗?有人实际开发中会用 vim 从头开始写一个中大型项目吗?(例如 nginx 这种加上注释大概十几万行代码的 C 语言工程)

    我平时也只是运维自己的服务器会用 vim 上去改改文件,了解一些常用的 vim 操作。如果改的文件比较多我会直接用 winscp 连 ftp 上去修改,因为某些文件目录比较深,或者某些情况下需要不停地切换好几个文件目录,用 ssh 上去操作会很麻烦,我用 winscp 配合 sublime 等编辑器会很高效。而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。(我是萌新,不太清楚是否还有更高效的操作方式?欢迎指教)对我来说如果所有操作都用纯 ssh+vim 来做那真是无法想象的麻烦和低效率啊。

    还有 HHKB 等类似的完全就是为了 vim,传统 linux 环境设计的键盘,这类键盘都不带 home,end,page up/down 和方向键,甚至不知道当前大小写状态,输入密码的时候可能还会出现障碍,使用这类键盘真的能提升开发效率吗?

    (虽然我知道在很久以前的计算机使用者确实都是 ssh+vim 这么干的,可是现在都啥年代了,计算机都有 GUI 了,真的还会有人用这种原始的方式来开发项目或者运维服务器吗?)

    52 条回复    2018-11-19 23:49:45 +08:00
    msg7086
        1
    msg7086  
       2018-11-16 02:55:33 +08:00
    vim 本身也属于 GUI,关键看你对 G 这个字的定义了。
    在命令行界面下用字符画出一个字符图形界面,算图形界面么?

    换句话说,你觉得下面这个算 GUI 么?

    ETiV
        2
    ETiV  
       2018-11-16 03:15:58 +08:00
    有,我们 C++后端有几位同学就用 vim

    去年给主程推荐了用 CLion,他说挺好的。
    但是我们程序跑起来就得用 20、30G 的内存。Mac 跑不起来,远程调试又麻烦…所以现在还依然用 vim
    defel
        3
    defel  
       2018-11-16 03:37:34 +08:00 via iPhone
    有肯定有,不过我用不习惯,离宇宙第一 IDE 差远了。
    tmly200
        4
    tmly200  
       2018-11-16 03:57:31 +08:00 via Android
    脱离工作环境工作,小公司还做不到
    quinoa42
        5
    quinoa42  
       2018-11-16 04:09:39 +08:00
    > 而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。

    [num]gg, f, t, s 等等了解一下
    觉得麻烦一般是你 esc 没有改键,一个想法一定很对
    Andiry
        6
    Andiry  
       2018-11-16 04:55:38 +08:00
    我写的 Linux USB3 driver,文件系统都是无插件 vim 开发的
    当然也不是很大,两三万行了不起了

    GUI 是必须要有的,不然上网查资料怎么办
    sinxccc
        7
    sinxccc  
       2018-11-16 05:51:18 +08:00   ❤️ 3
    呃…我…

    不过我是用 Emacs 的,常态是 mosh + tmux attach 到远程的机器上开始干活儿。Mac 主要是邮件客户端加浏览器加终端机。

    然后在公司的话摸鱼也是同样 mosh 回自己家里的服务器上。
    hearfish
        8
    hearfish  
       2018-11-16 05:57:14 +08:00
    刚工作那几年用 vim 写 java servlet,配合 javadocs 其实挺好的,现在用 Idea 觉得要被惯坏了
    watzds
        9
    watzds  
       2018-11-16 06:56:44 +08:00 via Android
    腾讯不少人就用 vim 做开发的,有的还没装插件
    trait
        10
    trait  
       2018-11-16 06:59:45 +08:00 via iPhone
    vim 还要方向键,果真新手,你可能是开始不习惯吧
    lazydog
        11
    lazydog  
       2018-11-16 07:02:19 +08:00 via Android
    我目前来讲的所有代码都是用 vim 写的,项目的话也不排除。说实话,我还没用过 IDE 写过代码呢,(逃。。。感觉自己有点落后啊!
    NeoChen
        12
    NeoChen  
       2018-11-16 07:11:30 +08:00 via iPhone
    做后端可能没 gui 好说,做前端不可能。还是要结合工作内容,工作环境。
    kiwi95
        13
    kiwi95  
       2018-11-16 07:40:12 +08:00 via Android
    有,很多,比例很大
    lxrmido
        14
    lxrmido  
       2018-11-16 07:55:10 +08:00 via iPhone
    有一段时间沉迷 vim,用它写过一个十几万行代码的项目,后来因为 sublime 长得太好看没忍住
    ReVanTis
        15
    ReVanTis  
       2018-11-16 07:58:12 +08:00 via Android
    有,我。主要做 android framework 和 bsp。主力机 windows,wsl 到 Ubuntu 工作。纯 cli,如果需要 gui 就用 x forward 和 xfce。
    xiaqi
        16
    xiaqi  
       2018-11-16 08:03:30 +08:00 via Android
    楼主这明显就 vim 新手啊。等熟练了就会觉得真香。
    嗨,别人用什么有什么关系,你自己用着自己觉得舒服的 ide 就 ok。
    mangoDB
        17
    mangoDB  
       2018-11-16 08:21:28 +08:00 via Android
    萝卜白菜各有所爱。我们组除了我之外,都是直接 ssh 到开发机上用 vim。配置过硬的 vim 也是很强悍的。不过,我选 jetbrains+vim 插件。
    xiadong1994
        18
    xiadong1994  
       2018-11-16 08:33:41 +08:00 via iPhone
    ”而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。”
    你说的这些操作,绝对是 vim 的快捷键更方便,比手移到鼠标上滚来滚去点来点去快太多了。

    HHKB 有你说的那些键,只不过要配合 fn 来按。大小写状态,我都把我所有键盘的 caps lock 给替换成 ctrl 了,从来没考虑过这个问题,大写一直用 shift 输。
    Isaac313
        19
    Isaac313  
       2018-11-16 08:35:52 +08:00
    这个真不怪 vim,
    ^ 行首
    $ 行尾
    gg ngg 切换
    hjkl
    给个大键盘,双手掌控一切的感觉,真香
    linxu
        20
    linxu  
       2018-11-16 08:35:59 +08:00 via Android
    你对 vim 的掌握还不够
    jasonyang9
        21
    jasonyang9  
       2018-11-16 08:36:53 +08:00   ❤️ 1
    hanxiV2EX
        22
    hanxiV2EX  
       2018-11-16 08:50:49 +08:00 via Android
    刚统计了一下,我们公司的游戏服务器引擎代码 10w 行的 C,游戏逻辑脚本 23w 行。不是 vim 就是 emacs。vim 的学习曲线你应该见过,前期痛苦,后期越来越爽的。
    bengol
        23
    bengol  
       2018-11-16 08:54:23 +08:00 via Android
    @watzds 捂脸(*/∇\*) 我就属于连函数跳转插件都没有的人
    jasonyang9
        24
    jasonyang9  
       2018-11-16 08:54:37 +08:00   ❤️ 2
    xml123
        25
    xml123  
       2018-11-16 09:17:47 +08:00
    @jasonyang9 #24 一直想问这种 learning curve 的横纵坐标到底分别表示什么。
    ebingtel
        26
    ebingtel  
       2018-11-16 09:22:35 +08:00
    python 项目开发……登录远程服务器 vim 开发
    jswh
        27
    jswh  
       2018-11-16 09:24:06 +08:00
    你的编辑器 /IDE 有 vim mode 嘛?有我的就用:doge
    nonkr
        28
    nonkr  
       2018-11-16 09:24:53 +08:00 via iPhone
    windows + vmware + ubuntu server + PuTTY
    innoink
        29
    innoink  
       2018-11-16 09:41:30 +08:00 via Android
    gvim 不用么?
    vim/emacs 都有 gtk 版的,为啥老想着用命令行的?
    jasonyang9
        30
    jasonyang9  
       2018-11-16 09:52:03 +08:00
    @xml123 #25 https://en.wikipedia.org/wiki/Learning_curve

    ```
    The Horizontal Axis represents experience either directly as time (clock time, or the time spent on the activity), or can be related to time (a number of trials, or the total number of units produced).
    The Vertical Axis is a measure representing learning or proficiency or other proxy for "efficiency" or "productivity". It can either be increasing (for example, the score in a test), or decreasing (the time to complete a test). (Fig 5)
    ```

    x 轴可看作是时间,阅历等
    y 轴是效率或熟练度

    当然前面那个对比图是半开玩笑的
    xml123
        31
    xml123  
       2018-11-16 09:58:04 +08:00
    @jasonyang9 #30 但是这样的话 vi 的图表示的意思难道是一上手就效率极高?
    jasonyang9
        32
    jasonyang9  
       2018-11-16 10:04:34 +08:00   ❤️ 1
    @xml123 #31 说了么,这教授是推荐用 VI 的,所以这是一个带玩笑的对比图。

    http://teaching.idallen.com/cst8207/17s/notes/300_vi_text_editor.html
    xml123
        33
    xml123  
       2018-11-16 10:07:26 +08:00
    @jasonyang9 #32 好吧,之前一直没弄懂这个图想表达的意思,感谢解释。
    TangMonk
        34
    TangMonk  
       2018-11-16 10:11:55 +08:00
    Visual Studio 效率才叫高
    hei1000
        35
    hei1000  
       2018-11-16 10:21:39 +08:00
    我们公司的 linux 就是没有 gui 的,不过因为办公环境还是在 Windows 环境,还是是通过终端 ssh 上去的,我其他同事用 Vim,我是大部分代码编辑用 Emacs,小部分用 vim
    wfd0807
        36
    wfd0807  
       2018-11-16 10:25:59 +08:00
    iceheart
        37
    iceheart  
       2018-11-16 10:27:00 +08:00 via Android
    人生苦短,我用 vs
    hourann
        38
    hourann  
       2018-11-16 11:55:27 +08:00 via iPhone
    @msg7086 不算。这是 TUI
    RqPS6rhmP3Nyn3Tm
        39
    RqPS6rhmP3Nyn3Tm  
       2018-11-16 11:57:12 +08:00 via iPhone
    vim 断点调试有啥好方法吗?直接用 gdb 有点痛苦
    littleylv
        40
    littleylv  
       2018-11-16 11:58:07 +08:00
    我。

    PS: 楼主又来引战了。。。
    Archeb
        41
    Archeb  
       2018-11-16 14:03:39 +08:00
    人生苦短,我用 VSC
    MaxTan
        42
    MaxTan  
       2018-11-16 14:28:06 +08:00
    vim 除了 debug 和代码重构麻烦点,做开发完全没问题啊,插件配好功能都很齐全的
    MaxTan
        43
    MaxTan  
       2018-11-16 14:35:58 +08:00
    复制 y 粘贴 p 跳光标用 hjkl 或者行数 gg 单词移动 eb 行首行末^$,除了写代码的时候用插入模式,平时尽量保证在命令模式状态下,esc 映射到 caps lock 上面小拇指上习惯性狂按
    wtdd
        44
    wtdd  
       2018-11-16 14:59:45 +08:00
    有的是啊,不过一般都用多显示器,毕竟除了 coding 外其他流程工作不可能离开 gui 的
    msg7086
        45
    msg7086  
       2018-11-16 16:20:35 +08:00
    @jasonyang9 @hourann 我知道叫 TUI 啊。问的就是 TUI 算不算 GUI。
    能用鼠标,有菜单,有状态栏,有快捷键,有滚动条,有对话框,除了窗口用字符线而不是像素画以外,其他都一样。所以你们心目中 TUI 算不算 GUI。
    cnsoloer
        46
    cnsoloer  
       2018-11-16 16:52:15 +08:00
    我有朋友是用 emacs 写项目,用的还挺溜的。巧的是他还改过 nginx 源代码。
    watzds
        47
    watzds  
       2018-11-16 21:07:26 +08:00 via Android
    @bengol 哈哈,我哥腾讯 c++他说代码几 G 用插件卡,用的 grep …
    Mush
        48
    Mush  
       2018-11-17 01:19:52 +08:00
    我, Python, ssh 到服务器写
    razerhell
        49
    razerhell  
       2018-11-17 08:58:19 +08:00
    您好,有的。之前在某外企实习,带我的暴躁老哥就是全程 ssh 到远方的服务器上 vim 编码。
    meowoo
        50
    meowoo  
       2018-11-17 16:54:45 +08:00
    我就是用 vim 的,不过项目不太大,2w 行以下
    lance6716
        51
    lance6716  
       2018-11-19 10:27:18 +08:00
    vim 好用的是 f di" ;。Ctrl-O 之类的吧,上面说的个人感觉其实并不是很高效……
    ensonmj
        52
    ensonmj  
       2018-11-19 23:49:45 +08:00
    vim 写代码,grep 看代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3330 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 13:43 · PVG 21:43 · LAX 06:43 · JFK 09:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.