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

Vim 入门教程调查

  •  2
     
  •   calon · 2016-01-11 17:40:26 +08:00 · 6914 次点击
    这是一个创建于 3237 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想抽空(好吧其实是越忙越想开小差……)写一篇不太一样的 Vim 入门文章,主要面向 Windows 系统下的非程序员,大多数时候能用 gVim 写中文文档,顶多日常处理些脚本文件。
    之前觉得反正已经有 Sublime Text/Notepad++/Everedit 等比较现代的文本编辑器,需求应该不多。
    但又看到有人说希望能写出来,所以还是试试看,自己也顺便多学习。

    想调查一下,是希望简明扼要,还是希望能在不容易理解的细节处多谈谈,以便加深理解呢?
    如果您已经熟练掌握 Vim ,入门后觉得当时使用的入门教程有什么不足之处吗?
    如果还没有入门 Vim ,特别是尝试学习过多次而无功而返,觉得入门的难点在什么地方,希望有什么样的教程。

    50 条回复    2023-08-06 23:54:48 +08:00
    SpicyCat
        1
    SpicyCat  
       2016-01-11 17:53:26 +08:00
    非程序员为啥要用 vim
    theblackswan
        2
    theblackswan  
       2016-01-11 18:03:55 +08:00
    0.结合实际应用场景的应用。
    一直说 vim 很强大,但是往往不知道强大在哪里。希望在教程中能看到生活中的痛点,然后用 vim 轻而易举地解决了。无功而返的原因也在于此,想象不到应用的场景。
    1.希望能在不容易理解的细节处多谈谈,以便加深理解。
    cxbig
        3
    cxbig  
       2016-01-11 18:04:12 +08:00
    不是程序员干嘛要用 vim 这么折腾的东西
    plqws
        4
    plqws  
       2016-01-11 18:04:48 +08:00
    一直没有机会静下心来去学 vim ,很希望有一篇通俗易懂,不费脑的 vim 教程
    Changxu
        5
    Changxu  
       2016-01-11 18:09:49 +08:00
    非程序员干吗要用 Vim ,普通打打字的话 Word 不就挺好
    Changxu
        6
    Changxu  
       2016-01-11 18:10:52 +08:00
    我觉得官方自带的那个 Vim Tutor 已经很好了,再配上 Vim Adventure 这个游戏,楼主真的不用费力再去写一份教程了。

    倒是、楼主写份 Emacs 教程吧,感觉好的 Emacs 教程不多
    chemzqm
        7
    chemzqm  
       2016-01-11 18:20:03 +08:00
    印象中几个曾经放弃 Vim 的人,都是过于依赖插件,不能掌握大部分常用 Vim 操作。
    我觉得不是教程问题, vim 帮助文档几经足够了,这玩意要用好需要熟练十指操作键盘,需要不断纠正以往的错误习惯,通过练习熟悉各种快捷键。
    只要你目标不是去写 vim 插件, vim 使用根本没什么难理解的地方,要点还是在练,不常练习学它只是浪费时间。
    经常输入汉字的话,用 vim 也挺蛋疼的。
    SCaffrey
        8
    SCaffrey  
       2016-01-11 18:24:13 +08:00 via iPad
    其实 vimtutor 已经很赞了?
    感觉门槛高一些正好造就了高质量的社区?

    感觉一个好的教程就应该是那种给你'领进门'的体验吧
    tracyone
        9
    tracyone  
       2016-01-11 18:27:37 +08:00 via Android
    楼主还是写高阶的吧,我比较感兴趣,比如说和 learn vimscript the hardway
    4everLoveU
        10
    4everLoveU  
       2016-01-11 18:27:48 +08:00
    不愿意花时间的不费脑的,我劝还是算了吧
    生活上懒就算了,学习这种也能懒???
    Tiande
        11
    Tiande  
       2016-01-11 18:35:04 +08:00
    man vim 的内容其实挺好
    jsyangwenjie
        12
    jsyangwenjie  
       2016-01-11 18:35:39 +08:00
    apt-get remove vim & apt-get install emacs
    plqws
        13
    plqws  
       2016-01-11 18:37:42 +08:00
    楼上一堆人很搞笑啊,楼主想要写一篇教程来求建设性建议,你们倒是使劲泼冷水?有本事自己做一些实质的事情出来,而不是在这里当莫名其妙的键盘侠。
    tonghuashuai
        14
    tonghuashuai  
       2016-01-11 18:40:17 +08:00
    这个定位有点尴尬啊, windows 下的非程序员为啥要用 vim 啊
    htfy96
        15
    htfy96  
       2016-01-11 19:03:28 +08:00
    建议把各个命令系统化归类:
    跳转命令那么多,都适用于哪些场合?
    短距离(行内): w e b ge f/F t/T % ^ $ 等
    中距离(一个屏幕内):(EasyMotion 的<leader><leader>系列命令) (vim-sneak 的 s 系列命令) [{ ]} (这方面 vim 有一些不足,需要插件补充)
    长距离:/ # xxxG mark `` 等
    ikey
        16
    ikey  
       2016-01-11 19:09:46 +08:00
    楼主你写吧,我天天用 vim 。
    kingddc314
        17
    kingddc314  
       2016-01-11 19:30:27 +08:00 via Android
    支持,我就没写教程的耐心。。
    chemzqm
        18
    chemzqm  
       2016-01-11 19:34:34 +08:00
    http://www.typing-lessons.org/
    每日勤加练习, vim 神功指日可待
    tip :打开 chrome 控制台可挡广告


    @htfy96 用插件确实能提高效率,但是你让新手上来就搞插件真的好吗?尤其还是替换了默认 s 的 vim-sneak
    新手用插件我只建议装 https://github.com/tpope/vim-sensible ,别的根据自己需要来
    htfy96
        19
    htfy96  
       2016-01-11 19:58:06 +08:00
    @chemzqm 对我来说这些那两个插件之一基本是必须要装的……

    有时候 vim 社区有一种原教旨主义反插件的风气(特别是 reddit/r/vim),这个我觉得不太好。我的 vim 插件也是经历了 0 -> 80 (用 Vundle 重新来)-> 100 -> 50 再到自己给插件写代码提供想要的功能这样一个过程。
    vim 最早设计时候的目的和现在的需求已经有了很大的不同。过去我看见别人 vim 用鼠标会觉得对方水平肯定不怎么样,现在想想,也许他需要的只是一个打开快、能给多种语言高亮、提供基本补全(加上插件后)的 IDE 。在这种情况下,文本编辑器的功能就被弱化了,尽管这些按键学会了能提升一定的效率,但对于他们来说是次要的。(为什么不用 Emacs ?因为 Elisp 不太合口味,而 vimscript 更容易写……)
    zqhong
        20
    zqhong  
       2016-01-11 20:03:40 +08:00
    刷几遍 vimtutor (在 Linux 终端下直接输入),然后多用,就能入门了。
    htfy96
        21
    htfy96  
       2016-01-11 20:05:43 +08:00
    @chemzqm 现在 Neovim 也在核心程序内集成了 Terminal 、 Job Control 等功能。在写插件的时候,我觉得有些功能就应该被集成到核心去,比如说一堆语法文件, dispatch 支持,更好的%(matchit)等,这些东西非侵入,就应该作为标准功能提供。现在的 Vim 默认装完 syntax on 都没有,个人觉得太过保守了,所以切换到 neovim 去了。另外,发行版预装的大多是 vi , vim 的体积应该不是很成问题。
    zqhong
        22
    zqhong  
       2016-01-11 20:05:56 +08:00
    另外,这是 vim 的一个游戏: http://vim-adventures.com/

    相关介绍:
    http://coolshell.cn/articles/7166.html
    Alexhex
        23
    Alexhex  
       2016-01-11 20:27:43 +08:00
    好吧。我不是程序员。讲一下一个新手的弯路历程……

    我现在想自学 Linux ,也在学习 Vim 。发现 Vim 非常讨厌的是需要各种自定义配置,包括插件。

    Vimtutor 多打几次形成肌肉记忆感觉问题不大,但想实现一个类似 Windows 下的 Notepad++ (包括配色,语法高亮等等) 的环境的时候……

    发现要先看 GitHub (因为各类教程说要 Git Clone 插件)--> 发现有 Https 和 SSH --> 学习什么是 SSH --> 决定不管,现在继续在熟悉 Git ……

    这些折腾给我的感觉是 Linux 像一个整体的东西,没法绕过一开始那些类似 Tutorial for Unix/Linux 或者 鸟哥的 Linux 私房菜 来单独学习 Vim 是么,如果我的目标是使用 Vim 来作为一个写程序的文本编辑器的话?
    dabaitu
        24
    dabaitu  
       2016-01-11 20:33:49 +08:00
    处理简单的文件我一般都用 nano
    Bardon
        25
    Bardon  
       2016-01-11 22:19:33 +08:00
    应用场景,运维
    除了运维,其他人学来何必呢。。。视窗模式下用 vim 的,除了老鸟,就是装逼的。
    不过话说回来,每一个装逼的都有一颗成为老鸟的心。。。
    bupo
        26
    bupo  
       2016-01-11 22:44:23 +08:00
    在 xcode 下使用 vim 插件,最不习惯的有几点:可能我的方法不对,请指教
    1. 跳转到目标代码,用 h,j,k,l 要按很久,用 ctr+f 翻页不一定能定位到正确的地方,还得 hjkl ,不知道怎么高效率定位到相关代码;
    2. 选中剪切,拷贝,粘帖,选中一般使用 visual 模式,然后选中多行, dd ,移动到对应的位置 p ,这一串动作感觉效率也挺低的,还有就是 p 的时候会在下一行粘帖代码,经常出现缩进问题,还得进入 insert 状态缩进;
    calon
        27
    calon  
    OP
       2016-01-11 22:44:39 +08:00
    非程序员为什么不能学习 vim 呢?我自己就不是程序员,主要写中文文章,并没有想象的那么折腾。
    花点时间学学没什么坏处。
    不要排斥 Windows 下的非程序员普通用户嘛, Vim 的一大优点就是跨平台通用,不要搞成只在 *nix 上耍了嘛。

    @theblackswan 可以考虑列举一些不错的应用场景,但非程序员的痛点应该不多,要不说说大纲、折叠、输出转换之类的文档组织编辑功能?
    不太理解的地方能否举例说说?

    @tracyone 写高阶教程恐怕没那个实力。

    @htfy96 谢谢建议,跳转很常用,但估计不会全部覆盖到,插件的部分会尽量少,毕竟面向入门

    @Alexhex 配置插件不一定非得用 git 下载啊,而且 github 上也是可以直接下载 zip 打包文件解压到插件目录的。当然学学 git 不是坏事。
    自定义配置应该是 Vim 的优点之一呢,深入之后应该比图形界面的配置好用。
    在 Linux 下跟着 Linux 背景的教程学习比较好,涉及权限、路径、终端操作和命令调用等等和 Win 下有差异。
    KentY
        28
    KentY  
       2016-01-12 02:06:40 +08:00
    **主要面向 Windows 系统下的非程序员**
    建议 notepad++ 作为一般编辑, 剩下高级编辑用 office
    折腾 vim 确实没啥意义.

    我个人武断地估计, 中国作协里用 vim 写作的人应该是 0.
    dearrrfish
        29
    dearrrfish  
       2016-01-12 06:32:18 +08:00
    @calon 感谢 PO 主的用心,我算是入了 Vim 这个坑三年多了,从 Sublime 跳的,目前基本中毒状态。不过我还是觉得非程序猿,甚至非 DevOps 的确没太大必要去花时间学,甚至习惯了以后还会对其他应用场景造成新的障碍。如果实在有爱,这点我觉得要有所了解和准备。

    比如就我自身的经历来说,基本经历以下几个阶段:
    + 服务器只能用 Vim 啊,学吧,肌肉记忆苦下些功夫还是很容易
    => 终端里爽完后, cmd+tab 到 Sublime 也习惯性 hjkl, dd 什么的……
    => 好吧, Sublime 也启用 Vim Mode
    => Sublime 还是不爽啊,删
    => 研究 .vimrc 和找各种相关插件 (巨坑)
    => 哎呀 Safari/Chrome 也有 sVim/cVim 扩展啊,装
    => shell 也有 Vim mode 呀,换

    虽然学新东西的过程很有趣,但回头一看,发现习惯以后已经被绑架一样过分依赖 Vi 编辑风格,一旦换台机器换个更通用的 IDE 各种不爽,这种负面作用和额外成本我觉得还是有必要有所准备。人的习惯是可怕的,一旦离开了 comfortable zone 各种焦躁,至少我是这样;而 Vim 这种模式毕竟是非主流,也必然不是未来新工具的发展方向。

    PS. Vim 下中文编辑不蛋疼嘛?输入法切换我至今无法习惯。
    movtoy
        30
    movtoy  
       2016-01-12 06:57:58 +08:00   ❤️ 1
    程序员最应该学习的事情就是学学什么是需求
    rundis
        31
    rundis  
       2016-01-12 07:47:11 +08:00 via iPhone
    建议讲讲一些配置和插件就好了,其他的还是 vimtutor 好
    calon
        32
    calon  
    OP
       2016-01-12 08:24:39 +08:00
    @dearrrfish Windows 下面用谷歌或手心都还好啊,也不用频繁切换


    @rundis 嗯,配置和插件肯定会有专门章节
    billwang
        33
    billwang  
       2016-01-12 08:44:11 +08:00
    不要写成快捷键大全就行了
    66beta
        34
    66beta  
       2016-01-12 08:46:56 +08:00
    非程序员还是用 notepad++或者 sublimetext 吧,不用折腾,直接有高亮
    raawaa
        35
    raawaa  
       2016-01-12 08:51:28 +08:00
    其实非程序员更适合用 emacs ,第一不用学习插入模式 /普通模式这种颠覆性的概念,第二用 org-mode 管理日程和写大纲杠杠的。
    hqs123
        36
    hqs123  
       2016-01-12 09:00:36 +08:00
    不错,敬佩楼主专研精神
    harry890829
        37
    harry890829  
       2016-01-12 09:21:08 +08:00
    vim 在 win 平台上,最强大的地方就是可以完全抛弃鼠标进行操作,但是往往大多数人并不理解这一点能带来多大的便利
    nashge
        38
    nashge  
       2016-01-12 10:06:20 +08:00
    非程序员为啥要用 vim
    aksoft
        39
    aksoft  
       2016-01-12 10:27:13 +08:00
    你让文秘的学会我就服了你了
    calon
        40
    calon  
    OP
       2016-01-12 10:57:27 +08:00
    @billwang 尽量避免吧,不面向编程的话,快捷键用的不算多,像文本对象、寄存器操作类的都可以简略
    计划文末会把最常用的快捷键列个清单,或配上图
    其实已经写了一部分了,怕走了歪路所以来问问意向
    calon
        41
    calon  
    OP
       2016-01-12 11:04:07 +08:00
    你们不觉得在 Surface 之类的 Win 平板上用 Vim 很爽吗?
    有原生 gVim ,无论配键盘还是应急用屏幕键盘,都比 iOS 、 Android 上各种功能有限的编辑器好用得多。
    AstroProfundis
        42
    AstroProfundis  
       2016-01-12 11:54:01 +08:00
    我觉得 vim 相比 word 最见效的是各种快速定位操作,比如首行末行第 n 行、行首行尾(段、词首尾之类)、任意移动光标 xx 字符 /行、搜索操作,等各种能直接跳转到指定地方的姿势,直观实用,而且这些操作学起来也快
    Bluecoda
        43
    Bluecoda  
       2016-01-12 12:08:41 +08:00
    直接用 janus ,鼠标可以操作,当普通的编辑器用,然后再一点点学习切过去
    Xrong
        44
    Xrong  
       2016-01-12 12:20:39 +08:00
    支持楼主写
    byron
        45
    byron  
       2016-01-12 13:54:18 +08:00
    楼主写好了 at 我。
    brucmao
        46
    brucmao  
       2016-01-12 16:25:12 +08:00
    vim 提高效率啊,支持楼主,虽然我也不是程序员,喜欢折腾。
    regist
        47
    regist  
       2016-01-12 18:26:08 +08:00
    @calon 不错,定位能力确实好用,各种提示错误在第 n 行,打开 vim 直接:n 就到了
    tankb52
        48
    tankb52  
       2016-01-13 12:57:35 +08:00
    非程序员可以选择更好的文本编辑工具的。
    maxwelldu9
        49
    maxwelldu9  
       2016-01-17 16:21:31 +08:00   ❤️ 1
    vim 在线教程

    http://www.openvim.com/tutorial.html

    vim 游戏

    http://blog.csdn.net/liuxu31436/article/details/7558892
    http://vim-adventures.com/

    跟我一起学 vim

    http://ju.outofmemory.cn/entry/79671

    知乎答案

    https://www.zhihu.com/question/20565366

    playterm

    http://playterm.org/s/?tags=+vim

    vim 基本命令

    http://www.atool.org/vim.php

    简明 vim 练级攻略

    http://blog.jobbole.com/18339/

    下载两本书,一本初级全,一本进阶,加上一个初级使用的 ppt
    http://pan.baidu.com/s/1sjRFErj

    常用命令, 关于意思可以在本上面看

    i a o
    a A i I o O
    h j k l $ 0 H M L
    :set nu
    :set nonu
    gg G nG :n
    x nx dd dG d$ d0 D :n1,n2d dw
    yy Y nyy nY dd ndd p P
    r R u .
    /string
    n
    :%s/old/new/g
    :n1,n2s/old/new/g
    :w :w newfile
    :wq ZZ
    :q!
    :wq!
    calon
        50
    calon  
    OP
       2023-08-06 23:54:48 +08:00
    因为 Bram Moonlenaar 忽然去世,提醒自己修改完善、发布《写给非程序员的 Vim 新手教程》。由于拖延症断断续续写了几年,Vim 从 7.4 升级到了 9 ,也用上了 Neovim…
    http://calon.github.io/Vim-Tutorial-for-Non-Programmers/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.