0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用四周时间来学会vim的详细概述

马哥Linux运维 来源:未知 作者:易水寒 2018-05-27 10:18 次阅读

如何利用四周时间来学会vim的详细概述

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

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

Vim内置于任何类Unix系统上,这意味着你可以直接在服务器上编辑文件(这点非常有用)

与大多数文本编辑器和IDE相比,Vim是轻量级的,所以它即使在性能较弱的硬件上运行速度也很快且高效

Vim是完全由键盘驱动的(且大多数动作都集中在主排),因此它将使您更有效率?

在最后提高效率这一点后我打了个问号,这是你会经常听说的观点,但是我觉得不一定适用于每个人。基本上,为了让使用Vim更有效率,你不仅需要花很多时间来了解它,更需要掌握它。这意味着使用它节约的时间通常会与用来熟练掌握它的时间抵消,而你需要持续花时间来掌握它。我会说学习Vim最好的原因是你享受花时间学习掌握一项复杂的技能这一过程。在这种意义上,这与想要学习一种新乐器的人的心态并无不同。

如果你认为以上列出的这些原因有吸引力,那你可以按照下面列出的四周计划来学习Vim。 这是我曾经学习Vim的方法,它来源于我在各论坛教程中多次遇到的相似的建议。我还加入了一些我自己学习过程中的经验。

第1周:每天学习一次vimtutor

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

如何利用四周时间来学会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,您可以轻松地复制到任何计算机上!

如何利用四周时间来学会vim的详细概述

第3周:尽可能少地使用插件

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

不要安装插件管理器(较新版本的Vim原生的插件管理就已足够)

不要安装树浏览器或模糊文件查找器插件(使用:find与子文件夹搜索效果就很好)

不要为可视化标签安装插件(试着习惯原生Vim缓存,:b 很有用)

不要安装自动完成的插件(原生Vim已经可以使用来补全)

不要为多行注释安装插件(尝试使用可视化模式)

不要为多游标安装插件(使用带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的过程中得到快乐。希望这些建议对你的学习有所帮助!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IDE
    IDE
    +关注

    关注

    0

    文章

    326

    浏览量

    46335
  • Unix系统
    +关注

    关注

    0

    文章

    15

    浏览量

    9578
  • VIM
    VIM
    +关注

    关注

    0

    文章

    129

    浏览量

    15180
  • 文本编辑器
    +关注

    关注

    0

    文章

    24

    浏览量

    8049

原文标题:学习Vim的四周计划

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    “上传资料——做分享达人”活动第四周中奖名单

    ,活动时间:7月20日--8月20日。所有网友都可以参加,活动具体信息请参考:https://bbs.elecfans.com/jishu_244219_1_1.html希望本周未获奖的网友继续努力,分享上传更多电子方面的资料,赢取中意的奖品活动第四周中奖名单(8.13-
    发表于 08-21 17:21

    基于单片机的电子琴电路设计

    项目说明:利用单片机,利用轻触开关模拟电子琴键,自由地输入音符,利用单片机产生不同频率获得我们要求的音阶,使扬声器发出悦耳的音乐,最终可随意弹奏想要表达的音乐.
    发表于 11-16 13:43

    基于单片机的电子琴电路设计

    项目说明:利用51单片机,利用轻触开关模拟电子琴键,自由地输入音符,利用单片机产生不同频率获得我们要求的音阶,使扬声器发出悦耳的音乐,最终可随意弹奏想要表达的音乐。
    发表于 11-16 13:55

    【活动结束】2016年STM32全国巡回研讨会限时报名!(9.22第四周开奖)

    `````【只需一分钟,ST板卡任性送】2016年STM32全国巡回研讨会限时报名!第四周(9.22)获奖名单公布@iiiMimo @七夕情人 @wujianwei3980 @lilestu
    发表于 08-24 09:41

    【RTOS第二期训练营】四周学会嵌入式RTOS开发!快来抢免费学习机会!

    程是专门为零基础同学设计,从最基础原理讲起,一步步不断迭代设计RTOS的课程!开营直播(7月27日晚8:00)1.了解未来四周要一起完成的任务和基本框架2.了解“4学会RTOS训练营”的规则3.了解学习
    发表于 07-14 15:16

    VIM

    今天下午看了RM48的VIM模块介绍,看了很长时间感觉还是比较混乱。能否点拨下这个VIM的工作原理啊,比如从CPU收到一个IRQ请求到处理完它,所走的一个基本流程。谢谢了!
    发表于 06-23 02:42

    labview界面设计,请问四周修饰框中间的文字怎么嵌进去的?

    各位大神们,请问一下四周修饰框中间的文字怎么嵌进去的?还是自己画框子,写文字组合在一起?
    发表于 08-09 23:02

    介绍下vim的基本操作

    等本人还是使用VSCode进行编码.只有在设备上使用vi或vim修改参数或查看日志.故也就简单介绍下vim的基本操作即可.配置vim/e
    发表于 12-15 09:18

    学会使用和如何配置vim功能最强大文本文件编辑器

    一.vim(文本编辑器):学会使用和如何配置vimvim功能最强大文本文件编辑器,可以摆脱鼠标。vi—vim----gvim;命令行模式(nyy\p\ndd\u)插入模式(i,a)底行模式
    发表于 12-15 09:18

    学会使用和如何配置vim文本编辑器

    学会使用和如何配置vim文本编辑器?动态库和静态库及使用和区别是什么?
    发表于 12-23 08:49

    VIM for windows

    VIM for windows Vim目前已经有类Unix版和Windows版,尽管vim较vi已经改良了不少,但是初次使用还是会一头雾水,不知如何操作,所以学习vim要首先过2关。
    发表于 03-13 14:41 30次下载

    利用PWM控制LED设计呼吸灯的程序详细资料概述

    本文档的主要内容详细介绍的是利用PWM控制LED,可以修改成节能台灯的程序详细资料概述
    发表于 07-26 08:00 21次下载
    <b class='flag-5'>利用</b>PWM控制LED设计呼吸灯的程序<b class='flag-5'>详细</b>资料<b class='flag-5'>概述</b>

    如何设置vimrc(vim的设置文件)的详细过程资料免费下载

    本文档的主要内容详细介绍的是如何设置vimrc(vim的设置文件)的详细过程资料免费下载。
    发表于 09-26 15:45 0次下载
    如何设置vimrc(<b class='flag-5'>vim</b>的设置文件)的<b class='flag-5'>详细</b>过程资料免费下载

    vim-switchtoinc Vim插件

    ./oschina_soft/vim-switchtoinc.zip
    发表于 05-24 09:19 3次下载
    <b class='flag-5'>vim</b>-switchtoinc <b class='flag-5'>Vim</b>插件

    Vim指令总结

    ,总共分成 21 点,建议有想学习 Vim 的同学,可以按照文章 配合搜索引擎 多多尝试,相信你会慢慢喜欢上 Vim。 本文更倾向于 有一定基础的同学 ,因为内容很多,如果写得太详细的话,会变得相当啰嗦。
    的头像 发表于 11-01 10:15 256次阅读