这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟。与此同时也想分享出来给大家,欢迎大家互相讨论和学习。

  在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim。该系列文章里有些基础概念可能不会涉及到或者不会多做解释。一个是因为有些基础概念我目前也解释不清楚。越基础的解释起来越需要能力,目前鄙人还不具备。另一个是因为我相信各位大神们,你们已经有很好的搜索功能。当然有问题也欢迎大家互相讨论和学习。

  这篇主要讲的是我当前对vim学习的理解。后面的一系列文章会针对于学习实战的“从熟悉到精通”具体展示记叙。

困境

  从开始接触vim到现在快2年,陆陆续续学习vim不下5次。有看书,有看视频,有看博客……,然后自己练着玩、工作环境中使用。然而我却陷入一个困境:每次使用的时候大概知道怎么用,不过还得上网搜,搜完再小心翼翼的试,试完后很爽,爽完后猛的发现已经浪费很多时间,然后下次场景重现,一直死循环。

  所以本系列的文章就是为了摆脱这种困境而生。我是一个懒惰的人,不想花时间在重复的事情上。

目的

  本系列的文章的目的有两个。一个是掌握高效的文本编辑思维及习惯.一个是彻底消灭由文本编辑而引起的垃圾重复时间

定义

  vim是一个神一样的文本编辑器。它的核心是编辑文本。

优点

  一直在各个地方找寻它的优点。论调很多,关键的是我可能暂时还没法区分。只是从我眼中直观来看,它有这么些优点

  • 无平台移植问题,无论是windows,linux还是mac,学一次一辈子都可以使用。
  • 手不用离开键盘主要输入区,视线不用离开目标文本。用鼠标再切回来键盘打字是很低效的一件事,所以我特别喜欢快捷键,能不用鼠标的都不想用鼠标。
  • 专注于内容建设要比排版重要,而Word显然做不到。对于程序猿来说,这是一件天大的喜事。

学习感受

  大家都在说vim的学习曲线,大概意思是门槛高,不过入了门就是飞一般的感受。没错这里我说的就是感受,划分这些感受是希望大家不会觉得孤单,其实我们都一样。也是希望大家能看到只要坚持,感受会越来越美妙。很多人使用vim,可能最终无奈的原因是服务器环境只能使用vim。其实vim最终可以像情人一样。

恶梦,这是什么鬼

  一开始是notepad++, word, edit垄断你的大脑, 这些东西根深蒂固, 挥之不去Vim的使用对你而言是一场噩梦, 它降低而不是提高了你的工作效率. 对三种工作模式的不解甚至使你认为它是一个充满BUG或者至少是一个古怪的与当今友好用户界面设计严重脱节的软件。会不由自主的说:“靠,这是什么鬼!”

食之无味,去之可惜

  开始熟悉一些基本的操作, 这些操作足以应付你日常的工作, 你使用这些操作时根本就不假思索. 但这些阶段你仍然很少去碰Vim那晦涩的在线帮助文档. 它在你心里只是notepad++, edit一个勉强合格的替代品。心里会泛起一阵阵忧伤:“这东西好像也没什么牛逼的地方,和其他编辑器一样就是编辑文件嘛”

爱不释手,像情人一样

   精益求精的你不满足于无休无止的简单操作, 冗长而乏味,有没有更好的办法可以四两拔斤? 你在第二阶段由于熟练操作而尘封已久的大脑突然开始运作.每一次的文本编辑体验都妙趣横生高潮迭起. 你的头脑因为要用Vim完成高效的编辑而高度紧张兴奋。就像和情人在一起一样,你会觉得它太美妙啦!!

学习实战

  不管多少想法,最终必须得付之实践才有效果。vim学习更是如此。它必须大量反复的练习实战,直到已经成为一种本能反应。然后才能解决一开始的困境。网上有很多种实践的方式,不过划分比较细,可能不太适合像我这种懒的人。所以我只是简单的划分两个实战阶段。第一阶段主要是以苦练为主,加上习惯的练习。第二阶段是基于第一阶段的反思总结强化。

从陌生到熟悉

  这个阶段主要是练,所以没什么好说的。第一个是我要实战的计划,后二个是我要实战培养的习惯。暂时不会展示记叙

练习vimtutor

  必须完整的练vimtutor 3次以上。练到可以通过分屏,左边看tutor文档右边操作不会断。练到能自己画出vim的操作思维导图

随时看帮助文档

  先通读两遍以上,因为太强大了。。。所有功能里面都有

  帮助文档太强大了!!! :help everything。养成习惯有任何不清楚的地方都看help一下,通过help去处理细节问题。

无时不刻使用vim

  不管你工作的系统是什么,都必须无时不刻使用vim。特别是对于windows的用户,请装一个gvim。

从熟悉到精通

  这个也是本系列文章的主体内容。通过记叙的方式,把学习vim的过程和感悟记录下来。

  具体准备划分成如下几块去展开进行。更细的,请关注后续更新的文章。每一块可能会根据其结构更新苦干文章。

vim涉及到的概念

  vim涉及很多文本操作概念,设计理念等,这些概念适合用整个vim操作。所以首先要做的就是把概念弄清楚,更多的是锻炼思维习惯。

vim常用模式经典操作

  基于统一概念对常用的4种模式里面的经典操作逐一记叙,让平常的文本编辑重复操作彻底消除

让vim更懂你

  每个人的习惯,以及工作场景(有的编写js,html,python,shell等)都不一样。所以除了文本编辑以外,还会插件配置,这些会让我们使用起来更安逸。进一步消除更多的重复工作,消除重复由人手设置引起的垃圾重复时间


最后祝愿每一个菜鸟vimer都能尽快成为vimer大神,享受神器带来的快感!!!!

菜鸟vimer成长记——第0章、我眼中的vim学习的更多相关文章

  1. 菜鸟vimer成长记——第3章、文件

    上一章一直在讲的是vim的文本的操作,本章主要讲的是vim的文件操作. 本章的有些概念和传统的文本编辑器也不尽相同.所以需要注意概念或者切切说是思维习惯的区别. vim 允许在一个编辑会话中编辑多个文 ...

  2. 菜鸟vimer成长记——第1章、统一概念

    不管学什么技术,我都深信概念是最重要的.是影响整个学习轨迹,决定能在这个技术领域高度. 当然如果你现在的目的不是在学习而在于解决问题(很多人不愿意承认,或者没发现),那概念就暂时没那么重要了. 目的 ...

  3. 菜鸟vimer成长记——目录

    菜鸟vimer成长记——第0章.我眼中的vim学习 菜鸟vimer成长记——第1章.统一概念 菜鸟vimer成长记——第2.0章.模式初探 菜鸟vimer成长记——第2.1章.normal模式 菜鸟v ...

  4. 菜鸟vimer成长记——第2.0章、模式初探

    首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式 ...

  5. 菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle

    定义 Vundle是vim bunler和简称,它是一个vim插件管理器. Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便.gmarik受到Ruby的bunler的启发,开发了 ...

  6. 菜鸟vimer成长记——第2.4章、cmd-line模式

    cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和S ...

  7. 菜鸟vimer成长记——第2.1章、normal模式

    目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个 ...

  8. 菜鸟vimer成长记——第4.1章、通用插件

    简介 关于插件的分类,此系列只会简单的区分为通用插件和编程插件.通用插件的意思是,不基于任何编程语言都可以使用的插件.编程插件,是针对于编程习惯,或者说是针对于某种语言的插件. 计划中,是先把基本常用 ...

  9. 菜鸟vimer成长记——第2.3章、insert模式

    大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概 ...

随机推荐

  1. elastic search报错——“failed to obtain node locks”

    启动时报错信息: 这里写图片描述 寻找主要信息:failed to obtain node locks这里写图片描述简单理解为:绑定节点失败!!! 百度后,好多人同样遇到了这个问题,导致的原因可能是因 ...

  2. lua调用c++函数返回值作用

    2015/05/28 lua调用c++接口,返回给lua函数的是压入栈的内容,可以有多个返回值.但是c++接口本身也是有返回值的,这个返回值也非常的重要,会决定最后返回到lua函数的值的个数. (1) ...

  3. Office 365实现单点登录系列(5)—配置单点登录

    这是单点登录系列的最后一篇文章,前面4篇文章其实都是在为这篇文章的内容做准备,我把这四篇文章的链接放在下面,如果大家有需要,可以参考我以下的链接: Office 365实现单点登录系列(1)—域环境搭 ...

  4. 2040-亲和数(java)

    http://acm.hdu.edu.cn/showproblem.php?pid=2040 import java.util.Scanner; public class Main{ public s ...

  5. Leetcode Weekly Contest 86

    Weekly Contest 86 A:840. 矩阵中的幻方 3 x 3 的幻方是一个填充有从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等. 给定一个 ...

  6. [luogu1600] 天天爱跑步

    题面 ​ 直接写正解吧, 不想再写部分分了, 对于\(u\)和\(v\), 我们可以将它拆成两条路径, \(u\)到\(lca(u, v)\)和\(lca(u, v)\)到v, 在这里只分析从\(u\ ...

  7. Python Flask高级编程

    第1章 课程导语介绍课程的内容1-1 开宗明义 试看1-2 课程维护与提问 第2章 Flask的基本原理与核心知识本章我们首先介绍Python官方推荐的最佳包与虚拟环境管理工具:Pipenv.接着我们 ...

  8. atom / vscode (配置c++环境流程)

    最初主要是被这个炫酷的插件吸引了,这么打代码太特么有激情了 还有跳舞的初音姐姐哦!! 现附上一篇文章,这篇文章步骤讲得很详细了 http://blog.csdn.net/qq_36731677/art ...

  9. 观察者模式及c++实现

     观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,全部依赖于它的对象都得到通知并自己主动更新."Define a one-to-many dependenc ...

  10. 【Dubbo源码阅读系列】之 Dubbo XML 配置加载

    今天我们来谈谈 Dubbo XML 配置相关内容.关于这部分内容我打算分为以下几个部分进行介绍: Dubbo XML Spring 自定义 XML 标签解析 Dubbo 自定义 XML 标签解析 Du ...