文 / 腾讯 吴双

前言

优测小优 有话说:

腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛!
***
vim 是一种信仰,我自从2004年有了这个信仰,已经12个年头了。本文介绍了学习vim的方法以及一些vim常用的插件让大家对vim的功能有一个初步的认识。

vim与神的编辑器emacs的争论从来没有停止过。其实两种编辑器的设计哲学完全不同,风格迥异。vim的特点是Composability,Emacs的特点是Extensibility。vim使用键序列输入,Emacs则经常使用组合键(同时按)输入,跟弹钢琴一样。所以Emacs有个绰号Esc + Meta + Alt + Ctrl + Shift。正因为各种显著的差异各种争论在所难免。而当你得证大道的时候你就会发现自己曾经的言论大部分是自己的臆想或偏见。《一代宗师》里有句话,习武的人有三个阶段,见自己,见天地,见众生。提高自己的格局,少一些争论,静能生慧。
目标

有人会问什么事vim能做emacs不能做?有,帮助乌干达的可怜儿童。这个梗当你启动vim的时候就明白了。好了,既然你已经启动了vim了就往下继续看吧。

磨刀不误砍柴工,如何达到人剑合一的高效呢?很多人觉得只是选择剑就行,但同样重要的是剑也会选择人。体会一下vim 如何选择使用者的,需要不断提高自己的的水平来适应剑,才能真正的人剑合一。另外需要注意,剑如果不用,钝的速度超乎想象。

有一天你所学的vim命令都成了过眼烟云,不复记忆。所有输入都跟条件反射一样自然,因为这些东西还藏在你的意识里。这时,你就会享受到思想通过指尖流出的畅快感,毫无滞涩,欲罢不能。时光荏苒,白驹过隙,你会发现已经将灵魂铸入了剑中。阳光明媚的午后,一杯清茶,清脆的键盘声,思绪如潮水般的从指间涌出,这正是一种生活的态度。

法门

学习的方法有很多种,其实效率才是关键。什么努力就会成功之类的话那是流传多年的心灵毒汤。用学习英语来举例,有的人听voa学习英语,很努力但感觉进步很慢,其实VOA的生词大约10000出头了,对于很多人来说,直接阅读都是有一定的困难,如果只是听,那学习提高的效率非常低。上帝给每个人的时间都是一样的,效率低的就会淘汰,想要生存,就要拥抱变化,提高效率。
我们说说学习vim的过程,如果一上来先看一遍vim手册你会什么也没学到,比如光是模式,vim具有6种基本模式和5种派生模式。然后你就会留下一个印象,这个东西非常复杂,什么也没学会。就像是外行看看了一盘棋什么也没记住,但是高手看过之后基本全部记下了,可以复盘出来。我用自然选择的方法来学习vim,就是先用起来,如果想用什么功能就翻一下手册,当年基本使用熟练以后,整体的学习一下vim手册,你就会发现,很多东西一下子记住了,剩下没有记住的基本是你不需要的功能,因为每个人需要的功能都不完全一样,不需要掌握所有的功能,当你有一定的基础后,就可以自动识别出你需要的功能。总结一下学习过程,先用起来,最后再系统的学习。需要掌握的技能只有一个:查看vim手册。此外还有一些略为奇葩的学习方法,比如玩游戏,vim-adventures这个网站就是一个在线游戏,通过游戏让你学习vim,不过效果如何就没有试过了。

误区

很多人把vim配置成IDE的样子来用。其实vim和IDE完全是2个设计思想,无论用什么插件来模仿IDE也只是貌合神离,还不如直接用IDE。这是一种错误的使用方法,放弃这条路,回头一看海阔天空。千万不要让固有的思想束缚我们的想象力。
可能有人想要vim的配置,配置岂能尽如人意,关于配置每个人都不一样。spf13-vim这里有个vim插件和 配置的集成版本,可以用来学习体验。笋因落箨方成竹,当你蜕变之后就会形成自己的一系列配置和插件,就再也不会要别人的配置了。
寓繁于简,以简驭繁,千万不要在vim上装一大堆插件,大部分插件都不是你所需要的。插件上要做减法,能少用一个就少用一个,毕竟大部分人无法同时掌握太多的武功,当然有些仙风道骨的异士奇人。

启示

如何生成一个随机的值?http://random.org使用了大气噪声,其实让新手尝试退出vim就会生成随机的序列
这里只说一下最基本的操作,让你10分钟把vim用起来
启动退出
vim启动以后进入普通模式,按i,则进入插入模式,这时候vim就跟notepad一样了,输入完成后按esc回到普通模式,按:wq 完成保存退出(:表示输入命令,w表示write,q表示Quit)。为什么要有模式的概念?其实最简单的notepad都有模式的概念,键盘用来进行输入模式,鼠标用来进行命令模式。vim因为是全键盘,必须通过模式来区分,你输入的到底是文字还是命令。

输入命令

上图的应用需要一些时间,我们用自然语言的方式来理解一些简单的命令序列。

点击原文链接(体验更佳哦~):优测优社区干货精选|老司机乱谈编辑器之神——vim

腾讯优测(utest.qq.com)

腾讯优测是专业的移动云测试平台,为应用、游戏,H5混合应用的研发团队提供产品质量检测与问题解决服务。不仅在线上平台提供「全面兼容测试」、「云手机」「缺陷分析」等多种自动化测试工具,同时在线下为VIP客户配备专家团队,提供定制化综合测试解决方案。真机实验室配备上千款手机,覆盖亿级用户,7*24小时在线运行,为各类测试工具提供支持。

(听说关注公众号马上就有腾讯内部移动研发及测试彩蛋哦~)

感兴趣可以马上加官群勾搭客服妹妹哦~

优测官方qq群:214483489

优测优社区干货精选|老司机乱谈编辑器之神——vim的更多相关文章

  1. 腾讯优测-优社区干货精选 |  那些年,我们在Android机型适配上遇到的坑之Camera拍照时快门咔嚓声

    文/腾讯优测研发工程师 吴宇焕 优测小优有话说: android机型适配的坑自然是不少,不想掉坑快来优测优社区~ 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想 ...

  2. 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)

    文/腾讯公司 陈江峰 优测小优有话说: android开发的坑自然是不少,不想掉坑快来优测优社区~ 6.Android APP开发中其它需要提醒的问题 android4.4在UI线程无法进行网络操作. ...

  3. 腾讯优测优分享 | 游戏的UI自动化测试可以这样开展

    腾讯优测是专业的自动化测试平台,提供自动化测试-全面兼容性测试,云真机-远程真机租用,漏洞分析等多维度的测试服务,让测试更简单! 对于目前的两大游戏引擎cocos-2dx.unity3D,其UI自动化 ...

  4. 腾讯优测优分享 | 这些年,我们追过的 fiddler

    腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用,漏洞分析等多维度的测试服务,旗下优分享提供大量的移动研发及测试相关的干货! 一.fiddler原理简介 fiddler是目前最强大最好 ...

  5. 腾讯优测优分享 | 探索react native首屏渲染最佳实践

    腾讯优测是专业的移动云测试平台,旗下的优分享不定时提供大量移动研发及测试相关的干货~ 此文主要与以下内容相关,希望对大家有帮助. react native给了我们使用javascript开发原生app ...

  6. 腾讯优测优分享 | Android适配中的一些特殊情况小结

    腾讯优测是专业的自动化测试平台,提供全面兼容适配测试,远程真机租用等多维度的测试服务! 作为一名"艰苦卓绝"的软件工程师,我在开发路上经常被各种奇葩情况虐的体无完肤...今天就想与 ...

  7. 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?

    腾讯优测是专业的移动自动化测试平台,提供多维度的自动化测试服务,让测试更简单! 近期有报道称,澳大利亚悉尼市新某大学的一名男生在课堂上看电影,不料耳机没有插好,变成了现场直播... 如果你认为耳机没插 ...

  8. 腾讯优测优分享 | Android性能测试工具化实现

    腾讯优测专业的移动云测试平台,自动化测试提供性能测试数据,云真机实时输出性能数据,让测试更简单! 1.Android性能测试介绍 提到Android性能测试,我们总免不了俗地要首先介绍下Android ...

  9. 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿

    腾讯优测是专业的android自动化测试平台,拥有上千款真机,彻底解决android碎片化问题! 这里我要说的不是闪光灯的硬件特征,也不是说底层驱动的原理,我只是跟大家聊一聊在项目中遇到的一些关于闪光 ...

随机推荐

  1. 安装Adobe Dreamweaver CS6 免序列号 官方破解版

    Adobe Dreamweaver CS6 免序列号 官方破解版 Adobe Dreamweaver CS6是世界顶级软件厂商Adobe推出的一套可视化的网页开发工具,Dreamweaver CS6最 ...

  2. jQuery中的quickExpr

    jQuery 源码中的 quickExpr 是用来检测参数 selector 是否是复杂的 HTML 代码(如“abc<div>”)或 #id,匹配结果存放在数组 match 中 // A ...

  3. zabbix邮件报警

    #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_ ...

  4. dedecms二级菜单实现

    修改channelartlist.lib.php if($typeid==0 || $typeid=='top') { $tpsql = " reid=0 AND ispart<> ...

  5. WebBrowers & HtmlViewers collection

    WebBrowers & HtmlViewers collection 浏览: 加入我的收藏 楼主: THtmlViewerhttps://github.com/BerndGabriel/Ht ...

  6. Js中 关于top、clientTop、scrollTop、offsetTop的用法

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  7. COJ 1287 求匹配串在模式串中出现的次数

    这里要在后缀自动机的节点中维护一个从到达当前位置出现的字符串总个数 这里新添加进来的节点的状态出现的次数必然为1 另外包含所能达到这个节点所能到达的状态一定是将它作为父亲的点 那么说明将它作为父亲的点 ...

  8. java获取页面编码

    文章出自:http://babyjoycry.javaeye.com/blog/587527 在此感谢原作者...\(^o^)/~   最近研究抓取网页内容,发现要获取页面的编码格式,Java没有现成 ...

  9. poj 2536 GopherII(二分图匹配)

    Description The gopher family, having averted the canine threat, must face a new predator. The are n ...

  10. my class 2.0

    www.dropbox.com www.google.com/voice www.prezi.com www.evernote.com