VIM 有什么功能是 Sublime 无法实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sicongliu
V2EX    Vim

VIM 有什么功能是 Sublime 无法实现的?

  •  
  •   sicongliu 2015-12-24 03:18:24 +08:00 27522 次点击
    这是一个创建于 3578 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直用 Sublime Text3 ,看到网上很多 VIM fans 想必 VIM 一定有什么独特功能是 ST 无法实现的。
    花了两天时间研究 VIM, 配置好 vimrc 装好一系列插件,发现 VIM 除了模式概念是其他编辑器没有的之外并没有什么秒杀 ST 的地方。反倒是 ST 有很多比 VIM 舒服的地方比如:

    ST 速度奇快,不装插件的 VIM 在 mac 下都没有 ST 快,装了一大堆插件的VIM 就更没法比了.
    ST 开箱功能齐全, CRTLP, CTRL+D 多选等功能虽然 VIM 可以通过插件实现但是不如 ST 原生的顺手.
    ST 插件管理 package control 比 VIM 的 vundle 更加直观方便.
    感觉 ST 搭配一些插件和可定义快捷键并不比 VIM 的命令模式差,更何况 ST 自己也有命令模式.
    ST 在 mac 下对 trackpad 和鼠标支持很平滑,在 mac 下其实多用用 trackpad 并不影响效率因为 trackpad 离键盘区域很近。
    169 条回复    2016-03-03 17:21:10 +08:00
    1  2  
    ncisoft
        1
    ncisoft  
       2015-12-24 03:25:22 +08:00 via Android
    窗口切分 ST 如何?
    sinxccc
        2
    sinxccc  
       2015-12-24 03:30:31 +08:00
    ssh 在远端跑。
    msg7086
        3
    msg7086  
       2015-12-24 03:40:52 +08:00 via Android
    系统自带。
    免费开源。
    好像没了。
    sicongliu
        4
    sicongliu  
    OP
       2015-12-24 03:44:56 +08:00
    @sinxccc SSH 上去不就改几个参数吗 nano 就够了,难道真要 ssh 去写大段代码?
    ncisoft
        5
    ncisoft  
       2015-12-24 03:55:32 +08:00 via Android
    ST 怎么配合神器 tmux ?
    sinxccc
        6
    sinxccc  
       215-12-24 04:03:03 +08:00
    @sicongliu 至少我目前主要的开发都在 ssh 进去的机器上。

    不过我是 Emacs 用户…
    guoqiao
        7
    guoqiao  
       2015-12-24 04:24:22 +08:00
    1. 熟悉后, 文本操作得心应手行云流水, 有一种上瘾的感觉.
    2. 几乎所有 Linux 发行版都自带, 可以在服务器终端中运行, 因此几乎是服务器远程维护的必选.

    在桌面端, ST 确实表现优异且省心. 但是 Vim 能在终端中运行, 免去了你切换工具的麻烦.
    Ansen
        8
    Ansen  
       2015-12-24 04:54:57 +08:00
    试试打开 100M 的文本文件
    sicongliu
        9
    sicongliu  
    OP
       2015-12-24 05:04:41 +08:00
    @Ansen VIM 开 100m 的文件还真没 sublime 快
    KentY
        10
    KentY  
       2015-12-24 05:26:07 +08:00
    lz 提到了"秒杀", 我想功能上的都不能叫秒杀. 我能想到的就一个, 所有常见的 Linux 发行版, 缺省安装好, 有多少 vim 已经装上了, 有多少 ST 已经装上了.

    我用 vim 作为主(唯一)编辑器 12 年, 我没用过 ST, 所以没有发言权来做功能上的比较.

    我只做过一次比较,还是很偶然的. 这是我 2013 年曾经发过的一封 email 内容:

    =================
    刚才在我同事电脑前( win7 ) 在他的 sublime text2 打开了一个文件,格式很简单,就一行,巨长的一行,内容就是<option
    value="xxx">yyy</option>,然后不同的 xxx,yyy 值循环这个格式。

    他想把他变成每个<option></option>一行。然后不知道按了什么,等了 2,3 秒所有</option>都高亮了,又按了什么机器就不动了。最后强行关闭编辑器。

    我说我试试,就在 vim 里也打开那个文件,就:s 替换 /option>后面加个\r ,刷一下就替换好了, G 一下一看, 7 万 6 千多行。

    看来那个编辑器的 multi-selection 在视频里看着 cool ,用起来不行啊.

    不知道是不是他电脑当时不知怎么有问题了还是就是编辑器的问题。有兴趣有 sublime text 的可以试试。呵呵。
    =================

    @sicongliu 这么绝对吗? 我没用过 sublime, 不敢说, 但 vim 也有办法加载文件很快.
    UBER
        11
    UBER  
       2015-12-24 08:04:28 +08:00 via iPhone
    问这种问题的根本就不会用 vim
    aheadlead
        12
    aheadlead  
       2015-12-24 08:18:44 +08:00
    有时候没条件给你用图形界面……
    msg7086
        13
    msg7086  
       2015-12-24 08:30:17 +08:00   2
    @KentY 总结成一句话。功能越少速度越快。
    Sublime 不是给你拿来给一个巨长的一行加换行用的。
    ( vim 也不是。

    这时候你需要 sed 。

    另外打开大文件的话试试 emeditor ,最高支持 248GB 的文件,而且速度极快。
    haroldwu
        14
    haroldwu  
       2015-12-24 08:30:17 +08:00
    @sinxccc 用 tramp ?
    chinawrj
        15
    chinawrj  
       2015-12-24 08:47:29 +08:00
    我想无界面的情况下通过远程终端编辑一个文件。
    ruchee
        16
    ruchee  
       2015-12-24 08:47:34 +08:00
    Vim 不需要理由,也不屑于比较,用就是了,谁用谁知道。(用 Vim 搞定一切开发编码任务的多年 Vim 用户飘过)
    nozama
        17
    nozama  
       2015-12-24 08:49:33 +08:00 via iPhone   2
    我的原则与多数人相反:能用鼠标完成的,就不用键盘;
    gimp
        18
    gimp  
       2015-12-24 08:54:42 +08:00
    世界上只有三种编辑器, vim , emacs ,其它编辑器
    DiagnosticError
        19
    DiagnosticError  
       2015-12-24 08:59:32 +08:00   23
    帮助乌干达儿童 ...
    OnceMore2020
        20
    OnceMore2020  
       2015-12-24 08:59:57 +08:00
    命令行友好
    wweir
        21
    wweir  
       2015-12-24 09:01:41 +08:00 via Android
    随手拿起一台服务器都可以使用 vi
    vi 已经不能当成编辑器来看了,他是一种操作方式。 vi 家族的力量不是盖的
    sinxccc
        22
    sinxccc  
       2015-12-24 09:07:23 +08:00   1
    @haroldwu 之前 tramp 有个丢失 ssh session 就会卡死整个 emacs 的 bug ,用了一段时间放弃了…不知道现在修好了没有。

    现在主要用 mosh 和 tmux ,适应了之后就没再继续换。
    582033
        23
    582033  
       2015-12-24 09:10:47 +08:00
    我给你台服务器,一个 ssh 账号你用一个 Sublime 看看
    582033
        24
    582033  
       2015-12-24 09:12:52 +08:00
    @sicongliu 有些公司是提倡在内网远程开发的;每个人一个账号,好处就是每个人的机器不需要配置很高,并且开发环境统一,每天不用关机第二天开机再从头打开一遍所有的项目。
    Mithrandir
        25
    Mithrandir  
       2015-12-24 09:15:26 +08:00
    淘汰猪一样的队友
    markx
        26
    markx  
       2015-12-24 09:18:17 +08:00
    我也有类似的问题,但是没找到答案,所以现在混着用。
    yangxin0
        27
    yangxin0  
       2015-12-24 09:34:39 +08:00
    @sinxccc 干嘛不用 tramp mode
    yangxin0
        28
    yangxin0  
       2015-12-24 09:36:01 +08:00
    @KentY 看起来 cool ,尼玛就是行数多了就坑了, 还是 regex 好用
    shoaly
        29
    shoaly  
       2015-12-24 09:37:53 +08:00   1
    混用 vim 和 sublime, 大部分在 sublime, 碰到有些文本处理的时候 还是会心心念念 vim 的好, 到 ssh 下面之后又会想 sublime 的好
    learnshare
        30
    learnshare  
       2015-12-24 09:41:37 +08:00
    在命令行下使用,这一点就完胜了
    hging
        31
    hging  
       2015-12-24 09:44:20 +08:00
    @KentY 你说的两个不是一个功能. vim 里的是替换 ST 里也有同样的替换功能. 两者速度没什么差别.
    airycanon
        32
    airycanon  
       2015-12-24 09:49:38 +08:00
    @sicongliu 还真的有 ssh 写代码的,我们公司之前的开发方式就是这样。
    zhuangzhuang1988
        33
    zhuangzhuang1988  
       2015-12-24 09:51:46 +08:00
    作死+浪费时间功能.
    yangtukun1412
        34
    yangtukun1412  
       2015-12-24 09:53:33 +08:00
    不能算是功能,但我在 ubuntu 下 发现 sublime 对 fontlink 的支持不太好,所以就转到 vim 了。
    EXE
        35
    EXE  
       2015-12-24 09:55:39 +08:00
    遍地都是
    songco
        36
    songco  
       2015-12-24 09:57:24 +08:00
    vi/vim unix/linux 上都有, 基本操作还是需要熟悉的.

    另外打开大文件我好多编辑器都试过, vim 几乎是唯一可以用的, 我当时查看的文件有几 G....当然这个并不是什么优点, 因为场景太少.
    qian19876025
        37
    qian19876025  
       2015-12-24 09:58:05 +08:00
    终端如何运行?
    linux40
        38
    linux40  
       2015-12-24 10:00:27 +08:00 via Android
    没装显示服务器。
    mulog
        39
    mulog  
       2015-12-24 10:00:56 +08:00
    这两个我想是很多人都很喜欢的工具 至少我是两个都在用
    楼主为什么非要来引战 -_-
    Numbcoder
        40
    Numbcoder  
       2015-12-24 10:03:25 +08:00
    我猜待会儿肯定有人会说用 Vim 是纯粹为了装逼
    GHfan
        41
    GHfan  
       2015-12-24 10:06:08 +08:00
    当需要开机配置一台机器的时候就秒杀了,毕竟 st 还没装,哈哈哈哈,我说的是 vi
    am241
        42
    am241  
       2015-12-24 10:21:51 +08:00
    @KentY st 也可以 ctrl+h 写正则,他应该是 alt+f3 。真正好用的时候是 ctrl+alt+l
    amaranthf
        43
    amaranthf  
       2015-12-24 10:28:18 +08:00
    用 vs 的默默飘过……感觉码代码还是得靠 ide ,纯粹的编辑器智商终究是不行。
    lance26
        44
    lance26  
       2015-12-24 10:32:43 +08:00
    @KentY 7 万多多选肯定卡啊。他应该查找替换,只能说方法没用对
    behappy
        45
    behappy  
       2015-12-24 10:39:10 +08:00
    sublime 可以在终端用吗
    markzar
        46
    markzar  
       2015-12-24 10:43:04 +08:00
    用 vim 用习惯了, sublime 没怎么用过。前一阵子试了下 sublime 最后还是换回 vim 了,大概也就是习惯了。 vim 还没有什么硬伤让我再去习惯另一个文本编辑器。
    haozhang
        47
    haozhang  
       2015-12-24 10:45:20 +08:00   2
    我想帮助乌干达儿童。
    bramblex
        48
    bramblex  
       2015-12-24 10:56:05 +08:00
    你可以轻而易举的把任何命令行工具和 vim 组合来用
    simpx
        49
    simpx  
       2015-12-24 10:57:16 +08:00
    @sicongliu 绝大多数代码是 ssh 上去写的,极少数是本地 shell 里写。。
    dreamtrail
        50
    dreamtrail  
       2015-12-24 10:57:57 +08:00
    用 vim 搞定一切文本编辑的路过, sublime2 也试过, 但没发现有什么特别之处
    focux
        51
    focux  
       2015-12-24 11:07:39 +08:00
    使用 vim 可以完全不用鼠标,完全。
    Wangxf
        52
    Wangxf  
       2015-12-24 11:08:14 +08:00
    最大的优势,也是对我来说唯一的优势就是服务器上可以用,要不然谁懒得用啊,难用死了,反正这边用 sublime ,服务端想不用 vim 都不行,还可以 emacs ,不过都是一个样儿,反正系统自带不用 vim 用啥?
    rubytek
        53
    rubytek  
       2015-12-24 11:19:57 +08:00
    @582033 我们组都是用 sublime/notpad++的 sftp 插件远程编辑服务器上的代码的。。。还有我觉得要把 vim 和 vi 分开来看,系统自带 vi 不等于自带 vim ,我只用 vi 改改服务器上的小文件不意味着我主用 vim +插件写大规模代码。
    wizardoz
        54
    wizardoz  
       2015-12-24 11:22:33 +08:00   1
    vim 可以在 Linux 系统下接受中文输入!
    spww
        55
    spww  
       2015-12-24 11:28:08 +08:00
    vim 最大的价值就是几乎所有的 linux 发行版都原生自带,并且与 shell 配合的天衣无缝。
    iniwap
        56
    iniwap  
       2015-12-24 11:36:14 +08:00
    难用?
    donghao
        57
    donghao  
       2015-12-24 11:39:15 +08:00
    vim 还是很方便的
    sospartan
        58
    sospartan  
       2015-12-24 11:41:12 +08:00
    你 .....居然敢问这种大逆不道的问题....
    ncisoft
        59
    ncisoft  
       2015-12-24 11:49:35 +08:00 via Android
    骗铜币的,鉴定完毕。再送一次铜币
    zhjits
        60
    zhjits  
       2015-12-24 11:56:24 +08:00 via Android
    都是图灵完全的机器有什么功能不能实现
    imn1
        61
    imn1  
       2015-12-24 11:58:44 +08:00
    最重要一点肯定是不依赖 DE
    firebroo
        62
    firebroo  
       2015-12-24 12:21:45 +08:00
    帮助乌干达儿童 ...
    SonicY
        63
    SonicY  
       2015-12-24 12:27:56 +08:00 via Android
    对于人肉 IDE 来说任何编辑器都一样
    oska874
        64
    oska874  
       2015-12-24 12:29:07 +08:00
    st 对中文支持不好。
    yanwen
        65
    yanwen  
       2015-12-24 13:56:42 +08:00
    @haozhang 一下子笑了。。
    sudoz
        66
    sudoz  
       2015-12-24 14:22:18 +08:00
    @SonicY "人肉 IDE"...笑喷了
    matthewz
        67
    matthewz  
       2015-12-24 14:35:33 +08:00 via iPhone
    有些公司靠 ssh 到远端开发的
    Wenwei
        68
    Wenwei  
       2015-12-24 14:40:56 +08:00
    两个都用,不过使用 vim 频率明显高于 sublime ,在终端打开即可使用。
    xuwenhao
        69
    xuwenhao  
       2015-12-24 14:46:40 +08:00
    所有机器都预装 sublime 做不到
    bramblex
        70
    bramblex  
       2015-12-24 14:57:21 +08:00
    @zhuangzhuang1988

    常年都是项目所有人用 webstrom ,我用 vim
    项目所有人都用 pycharm ,我用 vim
    项目所有人都用 rubymin , 我用 vim
    如果项目全用 vs ……那我绝对会用 vs ,然后用 vim 编辑代码……

    这世界上只有三种文本编辑器, vim / emacs / 其他。
    bramblex
        71
    bramblex  
       2015-12-24 14:59:18 +08:00
    @rubytek 现在自带的 vi 都是软链到 vim 上,或者是 vim-tiny ……
    bramblex
        72
    bramblex  
       2015-12-24 15:00:19 +08:00
    @zhjits 但是 vim 本身就是图灵完全啊, sublime 不是
    hackevin
        73
    hackevin  
       2015-12-24 15:05:36 +08:00
    虽然我不是开发,虽然我两个都用,但我就看不惯你们这群开发狗因为这种事互撕。

    st 装个 sftp 插件,跟你 ssh 上服务器去写代码有区别?
    SpicyCat
        74
    SpicyCat  
       2015-12-24 15:12:21 +08:00
    一个文本编辑器而已,喜欢啥就用啥,目的是提高效率,不要本末倒置。
    我 2012 年入的 VIM 坑,后来知道 Sublime 的时候, VIM 已经算比较熟练,就没有换 Sublime. 但是公司的新人我都会推荐用 Sublime ,上手难度比 VIM 简单太多。
    如果一定要说什么事 VIM 能做,而 Sublime 不能做,那就只能是 VIM 能在终端运行,而 Sublime 不行了吧。

    顺便说一句,并不是所有人 ssh 到服务器上就只为改几个参数。如果是服务器管理员,熟练掌握至少一种终端文本编辑器是必要技能。
    bramblex
        75
    bramblex  
       2015-12-24 15:31:29 +08:00
    @SpicyCat

    +1 继续用 vim 只是因为习惯了,新人只推荐简单实用的东西
    iwege
        76
    iwege  
       2015-12-24 15:39:07 +08:00
    vim 是 vim 神教的圣物, st 只是代码狗的一个工具罢了。
    Dlad
        77
    Dlad  
       2015-12-24 15:43:50 +08:00
    server 自带随时用
    .重复一组操作
    ybh37
        78
    ybh37  
       2015-12-24 16:01:22 +08:00
    难道不是装~
    griffinqiu
        79
    griffinqiu  
       2015-12-24 16:02:50 +08:00
    问这种问题的根本就不会用 vim
    ipeony
        80
    ipeony  
       2015-12-24 16:08:55 +08:00
    炒股~
    ibolee
        81
    ibolee  
       2015-12-24 16:31:56 +08:00
    VIM 是免费的, VIM 是免费的, VIM 是免费的,重要的事情要说三遍。
    klmd99
        82
    klmd99  
       2015-12-24 16:46:56 +08:00
    sublime 不要钱也能用,真相就在那里
    KentY
        83
    KentY  
       2015-12-24 17:11:32 +08:00 via iPhone
    关于前面说我那个例子用法不对我就不评论了,因为我没有 sublim 使用经验。
    有点想提, vim 功能很强,纵向横向都强,当密集使用十几年(不光使用,也写插件等)后仍然有些功能是比较陌生的,仍然某天会学到个让人惊喜的小技巧。我觉得这个感觉挺好的。 我很喜欢这个编辑器,后悔没早使用。 sub 应该也不差,因为拿来和 vim 比较的都不差。主要看习惯吧。
    initialdp
        84
    initialdp  
       2015-12-24 17:16:43 +08:00
    我就是进来静静地看大家装逼。
    RqPS6rhmP3Nyn3Tm
        85
    RqPS6rhmP3Nyn3Tm  
       2015-12-24 17:20:15 +08:00
    vim 的 key binding 特好用
    RqPS6rhmP3Nyn3Tm
        86
    RqPS6rhmP3Nyn3Tm  
       2015-12-24 17:20:59 +08:00
    就是学习成本高了些,现在还是直接用 IDE 了,不想折腾……
    zhouquanbest
        87
    zhouquanbest  
       2015-12-24 17:21:44 +08:00
    因为在各种 IDE 各种编辑器上 我都可以用 Vim 模式
    所以我用 Vim
    bramblex
        88
    bramblex  
       2015-12-24 17:34:35 +08:00
    是不是没人知道 vim 除了是文本编辑器以外还是一门动态语言 vimscript 的解释器?
    paperplane1230
        89
    paperplane1230  
       2015-12-24 18:32:20 +08:00
    抖机灵的回答是,帮助乌干达的可怜儿童。
    我觉得用 vim 重在编辑模式,提高开发效率,至于论功能,肯定还是其他的编辑器或者 ide 更全面强大。所以在 st 或者 ide 里用 vim 模式编辑是坠吼的
    zander
        90
    zander  
       2015-12-24 18:41:50 +08:00
    哪儿都有。
    matrix67
        91
    matrix67  
       2015-12-24 19:02:55 +08:00
    matrix67
        92
    matrix67  
       2015-12-24 19:03:24 +08:00
    这个 undotree 不错吧。
    matrix67
        93
    matrix67  
       2015-12-24 19:07:48 +08:00
    彩虹分割


    对齐
    zhicheng
        94
    zhicheng  
       2015-12-24 20:22:40 +08:00 via Android
    还记得大明湖畔的 TextMate 吗?
    Arnie97
        95
    Arnie97  
       2015-12-24 20:26:52 +08:00
    宗教功能…

    至于其他的, vimscript 图灵完全,然而 Sublime 集成了 Python 解释器。
    flyaway
        96
    flyaway  
       2015-12-24 20:51:29 +08:00
    @matrix67 求问彩虹分割是怎么做到的……
    bramblex
        97
    bramblex  
       2015-12-24 21:15:48 +08:00   1
    @Arnie97

    当你打开了 vim 以后,就相当于打开了 vimscript 的 repl ……差距不是一点半点……
    bramblex
        98
    bramblex  
       2015-12-24 21:17:21 +08:00   1
    @Arnie97

    顺便, vim 也集成了 python / ruby / lua 的解释器。
    test0x01
        99
    test0x01  
       2015-12-24 22:34:22 +08:00 via Android
    Vim 随时随地 这比什么都重要
    gmgardus
        100
    gmgardus  
       2015-12-24 22:40:55 +08:00 via iPad
    @nozama 为什么 详细说说
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5291 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 09:06 PVG 17:06 LAX 02:06 JFK 05:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86