学习Vim的四周计划

vim具备自定义配色方案,语法高亮,linting和自动填充功能。git

Vim是一个以很是难学而闻名的命令行文本编辑器(有个关于Vim的笑话:问如何生成一串真随机数,答让一个Web开发人员退出Vim)。因此为何还要学习它呢,尤为是当你已经习惯现有的文本编辑器或者IDE的状况下?学习Vim的优点包括如下几点:编程

  • Vim内置于任何类Unix系统上,这意味着你能够直接在服务器上编辑文件(这点很是有用)
  • 与大多数文本编辑器和IDE相比,Vim是轻量级的,因此它即便在性能较弱的硬件上运行速度也很快且高效
  • Vim是彻底由键盘驱动的(且大多数动做都集中在主排),所以它将使您更有效率?

在最后提升效率这一点后我打了个问号,这是你会常常据说的观点,可是我以为不必定适用于每一个人。基本上,为了让使用Vim更有效率,你不只须要花不少时间来了解它,更须要掌握它。这意味着使用它节约的时间一般会与用来熟练掌握它的时间抵消,而你须要持续花时间来掌握它。我会说学习Vim最好的缘由是你享受花时间学习掌握一项复杂的技能这一过程。在这种意义上,这与想要学习一种新乐器的人的心态并没有不一样。vim

若是你认为以上列出的这些缘由有吸引力,那你能够按照下面列出的四周计划来学习Vim。 这是我曾经学习Vim的方法,它来源于我在各论坛和教程中屡次遇到的类似的建议。我还加入了一些我本身学习过程当中的经验。浏览器

第1周:天天学习一次vimtutor

不少人相信学习vim基础的最佳方法是在终端简单地输入这一命令:缓存

这一命令会在Vim中打开一个包含基本Vim命令的分步说明文本文件。浏览完整个文档大概须要30分钟左右。若是你了解vimtutor中涵盖的命令,那么您已经准备好使用Vim了。服务器

问题是vimtutor包含了不少命令,没有办法一次学会全部的命令!个人建议是天天坚持输入一次Vimtutor,这一习惯至少持续一个星期。每次你这样作时看看学习完整个文档的速度有无提高。同时为本身设定一个目标——看看你是否能够在5分钟内看完整个文档。要点是不要死记硬背每一个命令——重点是花大量的时间练习,直到基本的导航和编辑命令成为第二本能。运维

若是您的目标是要足够了解Vim,以便可以在服务器上远程编辑文件,那么您能够在此中止——您已经知道足够多了!若是您想使用Vim做为您的编辑器,您能够继续下一步。编辑器

第2周:尽量少地进行其余配置,不使用插件

学会了Vim中的导航和编辑,下一步你会但愿进行个性化配置。Vim的默认配置至关普通而过期,但使用vimrc配置文件能够自定义功能。重要的是不要添加太多插件试图使Vim成为一个完整的IDE——Vim做为Vim就很好,做为IDE则很糟糕。性能

请按照本文来构建您本身的vimrc文件。做为开始,这些是我为数很少的推荐配置的东西:学习

  • 添加一个配色方案(我使用的是vim-code-dark,基于Visual Studio代码)
  • 打开语法高亮
  • 设置空格和制表符
  • 设置自动缩进
  • 打开行号
  • 用tab在子文件夹中查找文件
  • 配置为按ESC快速退出插入模式(我将个人大写锁定键更改成CTRL并使用CTRL C退出插入模式)

事实上,这就是所有了!(无插件规则的惟一例外是,若是您须要对Vim不支持的语言安装语言具体支持)。 目标是避免一周内的任何其余配置或花哨的插件——这可能会感到痛苦,但这将避免你花费全部时间来配置Vim,而不是练习Vim。

提示:当您配置vim时,在主目录中使用结构以下的.vim文件夹。较新版本的Vim将在.vim文件夹中查找vimrc文件,以便将全部内容保存在一个文件夹中。 这容许您使您的.vim文件夹成为一个git repo,您能够轻松地复制到任何计算机上!

第3周:尽量少地使用插件

在使用vim完成过实际项目以后,你会更好地了解vim的功能,此时你能够进行一些自定义配置。可是,你仍然应该注意不要安装从根本上改变vim如何工做的插件。如下列举了一些很受欢迎的插件类型,但我建议你如今不要使用:

  • 不要安装插件管理器(较新版本的Vim原生的插件管理就已足够)
  • 不要安装树浏览器或模糊文件查找器插件(使用:find与子文件夹搜索效果就很好)
  • 不要为可视化标签安装插件(试着习惯原生Vim缓存,:b <TAB>颇有用)
  • 不要安装自动完成的插件(原生Vim已经可使用<CTRL n>来补全)
  • 不要为多行注释安装插件(尝试使用可视化模式)
  • 不要为多游标安装插件(使用带n的/搜索,须要时重复.)

以上所要表达的重点是,不少时候插件会阻碍你学习Vim实际功能。全部上述类型的插件都很棒,能够节省时间,可是只有当你彻底了解如何使用原生Vim完成相同的任务后,你才能安装这些插件。

也就是说,有一些插件,不改变vim的核心行为,且会使平常使用更方便。如下是我使用的一些插件:

  • 考虑安装auto-pairs.vim(成对插入或删除括号,花括号,引号)
  • 考虑安装endwise.vim(Ruby中,在if,do,def等以后自动添加end)
  • 考虑安装ragtag.vim(HTML,erb等中的标签助手)

第4周:用动词和名词组合Vim命令

此时你已经足够了解Vim,能够开始组合新的命令,而不是记忆新的命令。组合新的命令表明着正式将Vim视为一种语言。Chris Toomey的“掌握Vim语言”演讲很值得一看,它展现了这个概念的强大之处。

简而言之,你须要知道一些动词和名词:

  • 动词 — d(删除),c(修改),y(复制),>(缩进)
  • 名词(动做性的) — w(单词),b(前移一个单词),2j(下移两行)
  • 名词(文本对象) — iw(内部单词),it(内部标签),i""(内部引用)

而后,您能够组合动词和名词来建立任意数量的命令

  • dw:删除到单词末尾
  • diw:删除光标所在单词
  • y4j:复制四行
  • cit:修改HTML标签内的内容

演讲中指出,记住约30条命令可让你组合超过2000个不一样的命令。请注意,我在第4周提出这一点 - 这个东西是很是强大的,但只有当你对Vim有一个很好的把握时才有用。 3周后,你应该能很好的掌握30个必要的命令,以达到这个级别!

该演讲还提到安装插件以加强Vim语言。一如以前反复说起的,安装插件时应谨慎。但在这种状况下,咱们讨论的是加强Vim语言性的插件(而不是与Vim的核心行为相矛盾的插件)。如下是一些值得一看的插件:

  • 考虑安装surround.vim(添加一个新的修饰符来更改包围的引号,括号等)
  • 考虑安装commentary.vim(添加一个新的动词到注释行)
  • 考虑安装repeat.vim(为特定插件添加.repeat支持)

(上述全部插件都是由Time Pope提供,一个在你学习Vim的过程当中必然会遇到的名字)

提示:在演讲中,他们使用相对行号,实际上我不推荐。不少人在相对行号刚开始引入时就成了其粉丝,但我也据说过一段时间后遇到问题的人(例如代码可读性变差,有时会致使性能问题等)。由于你可使用常规的Vim命令G或gg轻松完成相同的操做(移动到或删除特定的行),因此我我的以为它没有实际用途。

总结

学习Vim是件繁重的任务,但也能够颇有趣。若是你对花费一个月的时间来学习一个文本编辑器这件事感到畏缩,这可能不适合你。然而,我认为大多数开发者能够从第一周的建议中受益不浅,至少可以得到直接在服务器上编辑文件的能力。你将能真正实现使用VPS在iPad或Chromebook上编写代码。至少,当Vim在你的终端中打开时,你将不会看起来很傻的困住!

若是你确实完成了4周计划,你的编程能力将提高一个等级。实际上我不知道这是否会使你更有效率(由于你可能会把编写代码的时间用来学习更多酷炫技巧并尝试新的配置)。正如以前所说,它更像是学习一个乐器(取决于你的个性),你能够从逐渐掌握Vim的过程当中获得快乐。但愿这些建议对你的学习有所帮助!

看完以上的内容,相信你对于Linux运维的了解又加深了一层。做为一名Linux爱好者,若是你在学习中遇到了困惑须要交流,能够来咱们的网站(http://www.magedu.com/)获取帮助,了解行业评价最高的Linux课程能够拨打电话:18519746220。

相关文章
相关标签/搜索