菜鸟vimer成长记——第0章、我眼中的vim学习
这是一系统总结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学习的更多相关文章
- 菜鸟vimer成长记——第3章、文件
上一章一直在讲的是vim的文本的操作,本章主要讲的是vim的文件操作. 本章的有些概念和传统的文本编辑器也不尽相同.所以需要注意概念或者切切说是思维习惯的区别. vim 允许在一个编辑会话中编辑多个文 ...
- 菜鸟vimer成长记——第1章、统一概念
不管学什么技术,我都深信概念是最重要的.是影响整个学习轨迹,决定能在这个技术领域高度. 当然如果你现在的目的不是在学习而在于解决问题(很多人不愿意承认,或者没发现),那概念就暂时没那么重要了. 目的 ...
- 菜鸟vimer成长记——目录
菜鸟vimer成长记——第0章.我眼中的vim学习 菜鸟vimer成长记——第1章.统一概念 菜鸟vimer成长记——第2.0章.模式初探 菜鸟vimer成长记——第2.1章.normal模式 菜鸟v ...
- 菜鸟vimer成长记——第2.0章、模式初探
首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式 ...
- 菜鸟vimer成长记——第4.0章、Vim插件管理利器-Vundle
定义 Vundle是vim bunler和简称,它是一个vim插件管理器. Vim本身缺乏对插件的有效管理,安装插件并配置.vimrc文件非常不便.gmarik受到Ruby的bunler的启发,开发了 ...
- 菜鸟vimer成长记——第2.4章、cmd-line模式
cmd-line模式又有3个类型:Ex 命令(ex commands).查找模式(Search patterns).Filter 命令(Filter commands).本文主要重点的是Ex 命令和S ...
- 菜鸟vimer成长记——第2.1章、normal模式
目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个 ...
- 菜鸟vimer成长记——第4.1章、通用插件
简介 关于插件的分类,此系列只会简单的区分为通用插件和编程插件.通用插件的意思是,不基于任何编程语言都可以使用的插件.编程插件,是针对于编程习惯,或者说是针对于某种语言的插件. 计划中,是先把基本常用 ...
- 菜鸟vimer成长记——第2.3章、insert模式
大部分的Vim 命令都在非插入模式中执行,不过有些功能在插入模式中会更好实现些. 如果没有输入当前文件不存在的新文本的需求时,建议通过其他模式来操作完成. 目的 掌握inser模式下常用操作的语法和概 ...
随机推荐
- UserUI程序实现过程简述
1.__tmainCRTStartup 2. mainret = _tWinMain( (HINSTANCE)&__ImageBase, NULL, lpszCommandLine, Star ...
- DOM操作案例之--全选与反选
全选与反选在表单类的项目中还是很常见的,电商项目中的购物车一定少不了这个功能. 下面我只就用一个简单的案例做个演示吧. <div class="wrap"> <t ...
- 记一次webservice的超时时间设置
一次项目组中需要控制超时时间,前期习惯用CXF实现,熟悉的才是最好的.所以这次依然想用CXF实现. 实现的方式代码如下: static{ String fvpWebserviceUrl = Prope ...
- CF585D Lizard Era: Beginning
嘟嘟嘟 题面我是不会咕的(没有真香):有\(n(n \leqslant 25)\)个任务和三个人,每次任务给出每个人能得到的值,每次任务选两个人,使\(n\)个任务结束后三个人得到的值是一样的,且尽量 ...
- mongodb的学习-6-命令简单使用
1.创建数据库 use DATABASE_NAME 举例说明: > use another //创建了数据库another switched to db another > db anot ...
- Django 连接Mysql异常处理
启动manage.py提示 连接数据库异常 django.db.utils.OperationalError: (2003, "Can't connect to MySQL server o ...
- Robotframework测试相关库的简单整理
一. 官网地址 http://robotframework.org/#libraries 二.几类测试所用到的常用库初步整理 1. UI自动化测试 Selenium2Library.BuiltIn(自 ...
- 利用MATLAB软件对数码相机进行检校
分享资料:https://pan.baidu.com/s/1FQb-ttLJNJKlMzu-0RjBsw.内部包含张正友的经典论文等文献,官网的checkerboardPattern等.
- Metapackage包
Metapackage(功能包集)是把一些相近的功能模块. 软件包放到一起. ROS里常见的Metapacakge有: 2.Metapackage写法 CMakeLists.txt 写法如下: cma ...
- 中国城市json
[{ "label": "北京Beijing010", "name": "北京", "pinyin" ...