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

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

  •  
  •   sicongliu · 2015-12-24 03:18:24 +08:00 · 26446 次点击
    这是一个创建于 3266 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直用 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  
       2015-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 ,其它编辑器
    zwik
        19
    zwik  
       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   ·   实用小工具   ·   3794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.