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

如何更好的学习 vim?

  •  
  •   yx30 · 2015-12-02 09:12:36 +08:00 · 9745 次点击
    这是一个创建于 2191 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用惯了 IDE ,有了很多不良的码字习惯,比如习惯性用鼠标点击,不自觉的用上下左右键等等,初识 vim ,感觉 vim 的学习曲线还是比较陡峭,如何才能更好的学习 vim.求各位分享一下自己学习 vim 的经验
    112 条回复    2015-12-26 21:07:43 +08:00
    1  2  
    kingddc314
        1
    kingddc314   2015-12-02 09:16:13 +08:00 via Android
    先熟悉 hjkl
    tankb52
        2
    tankb52   2015-12-02 09:16:55 +08:00
    把浏览器 VIM 化。
    另外我用 Firefox ,加装了 It's all text! 扩展,在有编辑框的地方都调用 VIM 进行编辑。
    babyhome
        3
    babyhome   2015-12-02 09:17:00 +08:00 via iPhone   ❤️ 1
    本末倒置
    sudoz
        4
    sudoz   2015-12-02 09:19:03 +08:00
    @babyhome 同意, 不少人是为学 Vim 而学, 本末倒置
    griffinqiu
        5
    griffinqiu   2015-12-02 09:19:20 +08:00
    practical vim
    griffinqiu
        6
    griffinqiu   2015-12-02 09:19:46 +08:00
    为学 Vim 而学. 这个没有问题
    datou552211
        7
    datou552211   2015-12-02 09:22:34 +08:00 via iPhone
    买把 hhkb 。。
    hienchu
        8
    hienchu   2015-12-02 09:27:58 +08:00
    我仅仅是为了少用鼠标
    OnceMore2020
        9
    OnceMore2020   2015-12-02 09:27:59 +08:00
    :Tutor
    play78
        10
    play78   2015-12-02 09:30:38 +08:00   ❤️ 1
    学过。学习的过程是: vim 和 linux 系统编程一起学了。上学期间学了一年多吧。现在基本可以进行各种编辑没有问题了,也会配置一些插件。现在,在 Windows 上也装了 gvim ,当作默认文本编辑器。工作是 javaweb ,还是用回了 IDE 。
    我觉得你可以跟一门新语言一起学(一门现在没有 IDE 的语言),然后一起进步,我觉得这样是最快的。个人经验。
    caixiexin
        11
    caixiexin   2015-12-02 09:31:57 +08:00 via Android
    可是我用 vim 也会不自觉地 hjkl 啊😱
    ligyxy
        12
    ligyxy   2015-12-02 09:33:35 +08:00
    vim adventures
    herozem
        13
    herozem   2015-12-02 09:34:57 +08:00 via Android   ❤️ 1
    $ vimtutor zh
    gimp
        14
    gimp   2015-12-02 09:38:58 +08:00
    扣掉 ↑↓←→
    harry890829
        15
    harry890829   2015-12-02 09:40:49 +08:00   ❤️ 3
    说那么多没用的,简单来说,就是用,先百度一下 vim 的快捷键基础,然后百度一个 vim 键盘图,我传到微博上了

    遇到你需要好多操作才能完成的事情,就找一找是不是还有方便的方法,基本上就是这样了,有空的时候想提升就百度 vim 进阶,会有一大堆教学出现的
    这种东西基本上就是熟能生巧了,唯手熟尔
    RockShake
        16
    RockShake   2015-12-02 09:42:24 +08:00
    同意楼上说的,你为什么要用 VIM ,对你而言有什么优势
    asj
        17
    asj   2015-12-02 09:44:42 +08:00
    掌握 vim 不是靠学习,而是靠练习
    Andiry
        18
    Andiry   2015-12-02 09:46:30 +08:00
    vim 一样可以用上下左右,有什么问题?
    yx30
        19
    yx30   2015-12-02 09:46:54 +08:00
    @play78 @harry890829 感谢你们的经验分享,目前开始从 vimtutor 做一做,然后开始边学边用
    akenn
        20
    akenn   2015-12-02 09:48:08 +08:00
    1. 需求是最好的导师。
    有需求,就有目标和动力。就没有犹豫和迷茫。
    如果是想“赶时”髦,或者体验“非主流”, vim 只会越用越恶心。

    2. 强大的 命令行( command line interface )是你的好朋友。
    _我感觉_在 windows 上怎么都不习惯 vim 或者 emacs , 但是在 mac 和 nix 上就没这种感觉。

    3. vim 不是 IDE
    vim 很强大,很多人把它打造成 IDE ,但它的哲学与通常讲的 IDE 并不相同。
    这需要_体会_。
    harry890829
        21
    harry890829   2015-12-02 09:51:57 +08:00   ❤️ 1
    @Andiry 我在刚解除 vim 的时候,也问过这样的问题,明明有上下左右,为什么非要用 hjkl 呢,当时一个大牛就跟我说,因为懒,就这么简单,我在写代码的时候,不需要让我的手离开主键盘区,完全就可以完成光标移动,所以你会看到其实很多工具的插件都有 vim 化,都会启用 hjkl 移动,为了就是让手能够停留在主键盘区
    focux
        22
    focux   2015-12-02 09:54:45 +08:00
    focux
        23
    focux   2015-12-02 09:55:11 +08:00   ❤️ 1
    欢迎 star
    Banio
        24
    Banio   2015-12-02 09:59:01 +08:00
    装个某大神制定好的 vim 然后 经常用就好了。。。。我是从 vim 叛逃到 sublime 了。。。
    myth
        25
    myth   2015-12-02 09:59:17 +08:00
    shibo501c
        26
    shibo501c   2015-12-02 10:02:59 +08:00
    Tink
        27
    Tink   2015-12-02 10:03:31 +08:00 via iPhone
    just use it
    expkzb
        28
    expkzb   2015-12-02 10:04:03 +08:00
    IDE 加 Vim mode 才是正解
    lxrmido
        29
    lxrmido   2015-12-02 10:04:18 +08:00   ❤️ 1
    鼠标点击、上下左右是很理所当然的便捷操作,不是不良习惯。
    当你要点得位置距离你十万八千里要按十几下键盘的时候,还是移一下鼠标比较快(尤其是触控板就在拇指位置的时候); HJKL 只是 ADM-3A 的方向键,对大多数键盘来说并不比上下左右人性化,除非你真懒得把手右移几厘米。
    young
        30
    young   2015-12-02 10:04:50 +08:00   ❤️ 1
    onice
        31
    onice   2015-12-02 10:14:10 +08:00   ❤️ 1
    简明 vim 练级攻略: http://coolshell.cn/articles/5426.html
    xcodebuild
        32
    xcodebuild   2015-12-02 10:15:50 +08:00
    @lxrmido 我倒是不反对方向键挺自然的,但是离得再远 ace-jump (我是 emacs 党)也按不了十几下键盘。。我相信 vim 也一样
    zeuss
        33
    zeuss   2015-12-02 10:21:37 +08:00
    用 vim 写个前端项目~
    dai269619118
        34
    dai269619118   2015-12-02 10:23:01 +08:00
    hjklai 先看下这 6 个键 直接用 不需要刻意的学习
    shearer
        35
    shearer   2015-12-02 10:23:53 +08:00
    这又不是上面技术,是习惯吧了,你既然习惯了那样就应该继续那样高效地完成你工作的本身。
    yy77
        36
    yy77   2015-12-02 10:27:28 +08:00   ❤️ 1
    那就说明 VIM 不适合你,还是去学 emacs 吧。 ;-)
    YuJianrong
        37
    YuJianrong   2015-12-02 10:31:10 +08:00
    我用 vim 十多年还在继续用上下左右,这有什么啊……

    再说了,编程的速度和输入的速度无关,纠结这个干吗呢……

    最后我觉得改用 sublime text 的还是用 sublime text 吧……
    iniwap
        38
    iniwap   2015-12-02 10:32:25 +08:00
    现在 sb,atom 那么 6 ,甚至 vscode 真不知道那些非要 vim emacs 的人是为了要凸显什么?
    dogfeet
        39
    dogfeet   2015-12-02 10:36:03 +08:00   ❤️ 3
    每个人的习惯不同,其实最终个人使用频度比较高的都是部分功能。像我使用最多的一般也就是移动,编辑,搜索,窗口分割了。

    移动除了 hjkl 等还有很多细分的比如 w,e,b,c-e,c-y,c-d,c-u,gg,G

    编辑常用的多是, r,x,d,cw,dw,dd,dy,p,之类的。

    搜索,窗口分割都是固定的几个。

    其实每个人常用的都是频度比较高的一部分功能。找到你最习惯用的,多用就行了。其他的等要用时再查手册也不迟。像 s, %s, 宏之类的。

    配置一般不要去改原生快捷键了,插件也不用装太多。 vim 说来说去,插件一堆,都说自己装了 xx 插件很好用,其实很多插件都或多或少有些细节问题,有时又是兼容问题。经常发生装了 1 个插件,发现有个地方很不顺手,于是再加个类似的插件互补,然后版本更新后,发现又出现兼容性问题。你用起来不爽,慢慢的用的频度也就不那么高了。熟悉原生配置,方便你切换编辑器或 IDE 时更好的过度(一般流行的 IDE 都有插件实现很纯正的 Vim 模式)

    总之就是多用,很多很舒服的功能,用上瘾形成惯性后,自然就记住了。比如 C++ 系语言语句要以分号结尾,但有时光标又在嵌套层次很深的括号或参数表达式中,这时候 A 跳到行尾就很方便了。而有些不需要分号的语言则又可以在这些层次很深的部分 直接通过 o, O 开启新行。(有很多 IDE 都有各自类似的功能,但他们的快捷键互不相同,切换使用时还有有些成本的, Vim 系快捷键则比较通用)

    个人比较习惯 () 一起连输,这时光标在括号外面,要快速进入括号内只需 esc,i (两手可以几乎同时按) 习惯了其实与按方向键差不多的感觉。{} 也是 esc,i,回车,O 。这个操作比用方向键顺手不少。

    其实最好用的还是窗口分割系的快捷键,习惯了分屏,窗口间移动,复制黏贴,看写代码太舒服了。最主要的是,还能在其他 IDE 中享用同样的快捷键,像 IDEA 就能非常方便的用 vim (插件) 快捷键分屏,效率高的爆。

    其实最强大的功能还是 IDE + Vim 插件, IDE 往往都有工程的概念(这比 Vim 中的一些项目管理插件要来的靠谱简便的多),可视化的配置,对语义更懂,对重构更友好。看大型项目时,更智能精准的跳转,锁定,搜索,往往要比你用 Vim + 插件的组合更好的让你理清代码脉络。
    iac
        40
    iac   2015-12-02 10:38:30 +08:00
    把常用的记住就可以了,其实看起来那么多,常用的也就那么几个
    ilotuo
        41
    ilotuo   2015-12-02 10:39:07 +08:00
    不是在服务器编程的根本没必要学.
    我同事就是一时装逼学了一阵子, 最后老老实实回到 sublime 了.
    都特么是玄学 玄学害死人
    PandaSaury
        42
    PandaSaury   2015-12-02 10:39:18 +08:00
    liunx 私房菜+shell 乌龟书
    zdkmygod
        43
    zdkmygod   2015-12-02 10:43:00 +08:00
    《 Vi 和 Vim 编辑器》
    《 Vim 使用技巧》
    bramblex
        44
    bramblex   2015-12-02 10:48:20 +08:00   ❤️ 1
    学 vim ?有卵用? vim 提高的是编辑效率,而不是编码效率。

    你换了支笔你就能写好文章啦?就能赚到稿费了?就能成为文学大家了?

    too naive 。

    折腾 vim 就是浪费大量的时间在没意义的东西上,除非你开发环境在纯字符终端的 linux 上面。
    jemyzhang
        45
    jemyzhang   2015-12-02 10:51:30 +08:00
    天天用,不懂就查
    bramblex
        46
    bramblex   2015-12-02 10:54:45 +08:00
    @ilotuo

    重点是真的除了装逼没啥意义啊。我现在用 vim 是因为习惯了,当然我花了两年时间习惯,其中还有各种折腾插件的时间。之前全都是为了装逼,花在折腾一个工具的时间比好好拍代码的时间还多。

    到后来我还造了一套这个东西 https://github.com/bramblex/BlxVimrc 。我也算是比较高端的 vim 用户了……

    但是然并卵啊!后来我都禁止我的师弟使用 vim 好好用 sublime ,结果人家要装逼,就不听 ╮(╯_╰)╭
    Monad
        47
    Monad   2015-12-02 10:56:51 +08:00
    有些人真是 这东西对你工作能力没提高 不学 那东西不能增加我收入 不学
    每个人都有自己的追求,感情你们看电影看美剧的时候都是在学英语?
    cgcs
        48
    cgcs   2015-12-02 11:09:15 +08:00
    我就是想说一句, ATOM 挺好使的,虽然我很爱 Org-mode
    zjqzxc
        49
    zjqzxc   2015-12-02 11:11:24 +08:00
    楼主的问题如果是:如何更好地做饭?
    按照这个气氛,楼下的回答估计就是:做什么饭啊,买外卖不就好了。做饭只是为了填饱肚子的工具,你以为学会做饭就能不被饿死了?
    bramblex
        50
    bramblex   2015-12-02 11:17:17 +08:00
    @Monad

    对大多数人来说,看电影看美剧爽!

    同样的,对大多数人来说,用 VIM 的感觉就是「以头抢地」。

    你会鼓励一个人用脑袋砸地板不?即便这个人是个抖 M ,觉得爽?
    joshz
        51
    joshz   2015-12-02 11:18:41 +08:00
    vim 和 emacs 的使用场景越来越局限了,除了必须使用命令行的场合、 orgmode 、写写简单的程序以外,这两位除了逼格高点,真心不适合作为效率工具。说拿来做 ide 的我觉得更是自己骗自己。且不说配一个趁手的环境要浸淫多久,光是他们经常宣扬的点就是站不住脚的。首先这两者配置的 ide 都需要外挂才能实现可用的补全,而这些外挂良莠不齐,被专业 ide 完爆;其次,用一套 ide 做所有开发的收益很小,因为面向不同的语言都需要不同的操作、不同的快捷键,即便有共性的部分(比如编译运行、静态检查)也不多,而且你的大脑
    joshz
        52
    joshz   2015-12-02 11:19:58 +08:00
    不小心发布了。。。接上。而且人的大脑也处理不了这么多场景的切换,必须有一个过渡时间。
    bramblex
        53
    bramblex   2015-12-02 11:26:00 +08:00
    @joshz

    其实用 vim 不仅仅是用 vim ,还能和大量其他命令行工具配合使用。作为终端控+vim 党表示,没人能阻止别人折腾,但是不建议折腾。
    joshz
        54
    joshz   2015-12-02 11:26:44 +08:00   ❤️ 1
    回答楼主的问题:我觉得学习两大神器,打印一张快捷键 cheatsheet ,学一点基础知识就行了。理解一些基本概念,敲键盘的时候不停看手册改进效率即可。等你入门了,玩腻了,顶头上司催工程催得紧了,被复杂的配置搞得伤心了,你就可以回归 jetbrains , vs , sublime, vsc 这些现代的东西,改下快捷键 mode ,你就会感觉置身天堂了。
    joshz
        55
    joshz   2015-12-02 11:44:29 +08:00
    @bramblex ide 也可以配合。两大神器配合 shell 工具有三种方式:在编辑器内临时运行命令,在编辑器内开一个 shell 比如 eshell ,通过 tmux 等同时运行查看编辑器和 shell 并做切换。如果你比较过,那第三种方式肯定是最无痛最流畅的。这就和现代 ide 的理念完全一致了,编辑器负责编辑,开一个窗口来跑 shell 运行其他工具,既给了自由度,操作又不过分繁琐。想在编辑器里完成一切既是痴人说梦,增加了不必要的复杂度,实际上也违背了 KISS 。不过 emacs 本身也不算编辑器吧。
    openroc
        56
    openroc   2015-12-02 11:53:59 +08:00
    卖油翁说,请每天使用~~~~。
    thxmem
        57
    thxmem   2015-12-02 11:54:43 +08:00
    多用。干什么都用
    Andiry
        58
    Andiry   2015-12-02 11:55:52 +08:00
    vim 学个一天也就差不多了,一天还学不会那就算了。
    astrorobbie
        59
    astrorobbie   2015-12-02 12:14:54 +08:00
    感觉 thinkpad 的小红点就够用了。
    Monad
        60
    Monad   2015-12-02 12:35:18 +08:00
    @bramblex 楼主想学这个 他学成了 他觉得很爽
    这和大多数人怎么样有几毛钱关系?
    用个 vim 是脑袋砸地板?这比喻
    skywalker
        61
    skywalker   2015-12-02 12:39:49 +08:00
    shanks
        62
    shanks   2015-12-02 12:45:45 +08:00
    learn by use
    airqj
        63
    airqj   2015-12-02 12:58:21 +08:00
    真搞笑
    vim 就是一个工具而已
    工具还有专门花时间来学吗?除非你是要造工具
    merito
        64
    merito   2015-12-02 13:00:35 +08:00
    等你必须用 vim 的时候再说吧,你真的每天都得 ssh 到服务器上用原始的 vim 写打码?如果不是,为什么不直接上 IDE ?
    bramblex
        65
    bramblex   2015-12-02 13:08:20 +08:00
    1. 你这问题我不是回答了嘛?
    “你会鼓励一个人用脑袋砸地板不?即便这个人是个抖 M ,觉得爽?”

    2. 这比喻可能在你出生前就有了,用 vim == "用冻僵的鱼砸自己的脑袋"。
    sbpcx
        66
    sbpcx   2015-12-02 13:08:25 +08:00
    @bramblex 是滴,什么东西只要玩溜了就好了。
    bramblex
        67
    bramblex   2015-12-02 13:17:37 +08:00   ❤️ 1
    @joshz

    ……在 vim 里面完成一切真不是痴人说梦。 vim 不仅仅是一个编辑器好不,人家还是一门虽然蛋疼但是完备的程序语言 vimscript 的解释器。

    vim 是 vimscript 的解释器
    vim 是 vimscript 的解释器
    vim 是 vimscript 的解释器

    vim 配置还可以像我这么玩 https://github.com/bramblex/BlxVimrc

    我还用 vimscript 造了一个 json parser https://www.v2ex.com/t/238723 , 准备再写一个 xml parser

    虽然不建议折腾 vim ,但是不代表这些东西 vim 做不到
    xiangjian
        68
    xiangjian   2015-12-02 13:22:09 +08:00
    @young 这个第一次见。这个图相当好啊
    MrDream
        69
    MrDream   2015-12-02 13:26:48 +08:00
    Mush
        70
    Mush   2015-12-02 13:27:46 +08:00
    你可以去家像我们一样 ssh 到服务器在命令行环境开发的公司工作, 不出一个月就学会.
    dofy
        71
    dofy   2015-12-02 13:28:56 +08:00
    从基本操作开始,先用起来;
    至少移动,复制,粘贴,搜索,替换,合并,撤销先熟悉了;
    然后再研究扩展。
    zzn
        72
    zzn   2015-12-02 13:34:10 +08:00
    用,而不是学
    jixiangqd
        73
    jixiangqd   2015-12-02 13:43:01 +08:00
    说一下我的历程

    1 : vim 大冒险(只玩基础关好了 主要熟悉 hjkl 键位和 w 、 e 、 b 之类的光标移动方式)
    2 :用
    3 : practical vim
    4 :用

    vim 键盘图还是挺好的,这 2,4 的时候帮助比较大
    liuxiaoxiaochen
        74
    liuxiaoxiaochen   2015-12-02 13:46:18 +08:00
    多敲, 逼着自己敲, 除了这个没有更好的办法了 记住一句话:肌肉记忆比脑子记忆有时候更值得信赖
    Kai
        75
    Kai   V2EX Moderator   2015-12-02 13:54:12 +08:00
    除了多写少折腾外,一把 Esc 和 Ctrl 按键位置合适的键盘也会有很大帮助。
    sarices
        76
    sarices   2015-12-02 14:08:06 +08:00
    VIM 会基本操作就行,对于一个新手,我建议还是是用 ide , sublime 之类的,除非你是在命令行环境,没必要可以去学
    quanwang06
        77
    quanwang06   2015-12-02 14:59:26 +08:00
    先把鼠标扔了。。。
    erenno1
        78
    erenno1   2015-12-02 15:13:37 +08:00
    装个 vim ,然后去个创业公司, leader 天天 push 你,嗷嗷写代码就可以了
    xuyinan503
        79
    xuyinan503   2015-12-02 16:12:21 +08:00
    @yx30 如果你编程速度的瓶颈在码字速度,就学 vim 。如果不是,就好好用 ide 吧。
    luoluoluo
        80
    luoluoluo   2015-12-02 16:34:58 +08:00
    只要你只用 vim ,这只是个时间问题,关键是 只用,只用
    kukat
        81
    kukat   2015-12-02 16:59:21 +08:00
    @young 求矢量图
    fishioon
        82
    fishioon   2015-12-02 17:31:20 +08:00
    @dogfeet 写的不错,不过关于括号那个我推荐 auto-pairs 插件,输入左括号会自动输入右括号并且光标在中间,删除时也会配对删除,很不错
    young
        83
    young   2015-12-02 17:38:25 +08:00
    @kukat 没有, 我找的这个已经是最大的了
    话说这个图是收费的...
    FAB
        84
    FAB   2015-12-02 18:22:10 +08:00
    为什么不从玩 Vim-Adventures 开始呢?
    behappy
        85
    behappy   2015-12-02 18:29:38 +08:00
    用了一年 sublime text ,最终决定还是回归 vim 。
    也没啥别的想法,就是在服务器上没别的选择,只能用 vim 。
    KyleMeow
        86
    KyleMeow   2015-12-02 18:47:36 +08:00
    用到什么功能,搜索即可。然后多用就记住了。熟能生巧。
    demobin
        87
    demobin   2015-12-02 19:18:18 +08:00
    @bramblex 既然你自己是 VIM 大神,为什么要禁止你的小伙伴用 VIM ?难道有什么编辑器可以像 VIM 一样,一条指令替换全局字符串、替换指定行数内字符串、某 V 区域内字符串、替换某一列字符串等等在写代码时其实很好用的功能吗?
    workwonder
        88
    workwonder   2015-12-02 19:39:12 +08:00 via iPhone
    直接 ssh 到服务器编码的还是别拿出来说事儿了,感觉老土的样子。
    而且神奇的是竟然认为没有别的选择。
    llbgurs
        89
    llbgurs   2015-12-02 19:43:21 +08:00
    把自带的 vimtutor 敲几小时

    然后后面所有文本编辑都不要用 方向键
    demobin
        90
    demobin   2015-12-02 19:50:18 +08:00
    那些说 VIM 是用来装逼的也是笑死人了。你的 IDE 可以一下跳到文件底部?跳到指定行数?跳到匹配的括号?你的 IDE 可以比 VIM 更快速查找?任意区间替换任意字符?你的 IDE 可以一下在一列上添加字符串?在多行行尾添加字符?你的 IDE 可以自动添加文件头?自动添加函数头?你的 IDE 可以一下插入系统时间、当前目录?可以手不离开键盘运行程序验证代码?可以在不认识的字符串上按下 SHIFT+F 就查英汉、日汉字典?自己不喜欢不爱用,为什么要说用 VIM 就是装逼?为什么还不让别人学?
    wizardoz
        91
    wizardoz   2015-12-02 19:52:28 +08:00   ❤️ 1
    作为一个 emacser ,我认为很多东西其实是习惯了就不想改了。前段时间用了两个星期的 sublime3 ,发现并没有真的有多好,反正那些功能大家都有,只是习不习惯的问题。所以后来还是回归 Emacs 了。
    但是我也并不是在装逼,因为我从来不会向别人安利我使用的工具。偶尔会有人跑过来“哇塞,你用的这个是什么?”这种时候我通常懒得解释,说不清楚。
    其实 IDE 和 Emacs 、 VIM 不是一类东西。有些人工作只是写代码,不需要也不喜欢捣腾其它东西,还是 IDE 比较好。但是如果经常写多种不同的语言,或者编辑各种文档、系统配置文件,再加上还要经常到不同的服务器远程编辑。我相信 IDE 并没有什么优势吧?
    至于 Sublime ,我觉得这个东西跟 Emacs 、 VIM 就是一类东西。都是要各种折腾各种安装插件。无非就是界面更现代一点罢了。对于熟悉 Emacs 和 VIM 的人来说,没必要去花精力学习一个功能差不多的东西。如果是新手,直接学 Sublime 也无不可。
    突然想起来, Sublime 在 Linux 下不支持中文输入! Sublime3 依然不支持!这是我摒弃 Sublime 的主要原因。所以说大家半斤八两,都是有长有段的。
    bramblex
        92
    bramblex   2015-12-02 20:51:42 +08:00
    @demobin

    ——引用 ——

    那些说 VIM 是用来装逼的也是笑死人了。你的 IDE 可以一下跳到文件底部?跳到指定行数?跳到匹配的括号?你的 IDE 可以比 VIM 更快速查找?任意区间替换任意字符?你的 IDE 可以一下在一列上添加字符串?在多行行尾添加字符?你的 IDE 可以自动添加文件头?自动添加函数头?你的 IDE 可以一下插入系统时间、当前目录?可以手不离开键盘运行程序验证代码?可以在不认识的字符串上按下 SHIFT+F 就查英汉、日汉字典?自己不喜欢不爱用,为什么要说用 VIM 就是装逼?为什么还不让别人学?

    —— End ——

    我先确定一下,你真的不是在黑 VIM 或者钓鱼?

    好吧,我假设你不是高端黑,也不是钓鱼……那我只能说,无知真可怕!
    d0o0g
        93
    d0o0g   2015-12-02 22:32:21 +08:00
    @workwonder 怎么会老土呢?使用场景使然

    服务器上脚本有 bug ,你会把程序 scp 回本地吗?
    我是不会,服务器上配置好 vimrc ,直接打开调试就完了。
    谁还拷回本地用 ide ?多此一举

    vim 在服务器上,我在异地的任何机器上都能调试编写代码
    fallwithme
        94
    fallwithme   2015-12-02 22:50:15 +08:00   ❤️ 4
    其实,学 VIM 的话,首先你要改变自己的思维方式......

    既然都是程序员,应该知道命令式编程,和声明式编程吧。一般的编辑器就是命令式编程,你需要告诉它一步一步怎么做,而 VIM 是声明式编程,你只需要告诉它你要什么结果....

    比如,面对这样的一行代码:

    print "Hello world"

    你想把引号里面的 Hello world 换成 Goodbye ,假设此刻光标在 Hello 和 world 中间,你应该怎么做呢?

    在一般的编辑器里,你需要做的事是,移动光标到 world 后面,然后按删除键把字母一个一个删掉,然后重新敲新的单词,因为编辑器本身对你录入的内容一无所知,只会做移动光标和删除一个字母和添加一个字母这几件事。

    然而在 VIM 里,你需要做的是敲出这样几个字母:

    ci"Goodbye

    翻译成中文就是——嗨,给我把引号里的内容换成 Goodbye
    翻译成英文就是——(c)change (i)inside (") Goodbye

    为什么能这么下命令?因为 VIM 对你写的内容有感知,它知道 print 是一个单词,也知道 Hello world 在一个引号内部。所以,你只需要学会怎么把你想要的结果表达出来就行了, VIM 自己知道该删掉哪几个字母。

    同理,要想把 world 这个单词替换掉怎么办?

    ciw

    能猜出是啥意思了吧?(c)change (i)inside (w)word

    这就是 VIM 的基本概念了,明白了这个,再记那些命令就容易多了,甚至,你都可以自己猜命令了。比如你猜替换掉括号内的内容的命令是什么,就是 ci(或者 ci)?又比如,你知道了删除命令是 d ,那么,你猜删除掉一个单词的命令是什么,就是 diw 。很简单吧....



    因为,一般的编辑器是
    DemoJameson
        95
    DemoJameson   2015-12-02 23:01:58 +08:00
    凡是遇到耗时的操作都停下想一想有没有简易的做法
    bohrasd
        96
    bohrasd   2015-12-02 23:11:57 +08:00
    人家想学就让人家学,你怎么知道人家是为什么要学的?你用不到别人就用不到?
    kqz901002
        97
    kqz901002   2015-12-02 23:18:42 +08:00
    @iniwap 很多时候并没有桌面
    dsdshcym
        98
    dsdshcym   2015-12-02 23:25:08 +08:00 via Android
    分享一句前几天看到的评价

    文本编辑器就要用 Vim, Emacs 这种古老的,你能想到的大部分文本操作都已经在这三四十年里被它们的用户想到过,并且很有可能实现过了。
    Email
        99
    Email   2015-12-02 23:25:47 +08:00
    推荐一本书

    Vim 实用技巧
    Echoldman
        100
    Echoldman   2015-12-02 23:52:25 +08:00
    我的方法是:“想要同时编辑多行”用 vim 应该怎么做,然后 google 解决。时间长了就好了。
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3342 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 01:17 · PVG 09:17 · LAX 17:17 · JFK 20:17
    ♥ Do have faith in what you're doing.