文 / 腾讯 吴双

前言

优测小优 有话说:

腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛!
***
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. Resume Hook SSDT

    在HookSSDT中  通过在第4部通过索引将NtOpenProcess 换成 Base[索引] = FakeNtOpenProcess; so 在阻止时应该在ntoskrnl.exe 找到真正的Op ...

  2. Json文件放入Assets文件,读取解析并且放入listview中显示。

    package com.lixu.TestJson; import android.app.Activity; import android.content.Context; import andro ...

  3. bzoj 2257: [Jsoi2009]瓶子和燃料

    #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> usin ...

  4. 5种JavaScript和CSS交互的方法

      分享   分享   分享   分享   分享   随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需 ...

  5. PHP和.NET通用的加密解密函数类,均使用3DES加解密 .

    以下为php代码 <PRE class=PHP name="code"> </PRE><PRE class=PHP name="code&q ...

  6. java基础之类与继承 详解

    Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...

  7. Bootstrap非常简单实用的web前端开发框架

    今天无意间用firebug看网站的代码发现了Bootstrap,之前从来没有听说过这个东东,于是对它产生了好奇感,通过百度我了解到了Bootstrap是一款非常简单,强悍,实用,移动设备端优先使用的这 ...

  8. ssh原理

     客户端向服务器端发出连接请求 服务器端向客户端发出自己的公钥 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私 ...

  9. JAVA 打印九九乘法表

    /** *  * @author liangxiaoyu * @version 1.0 *2015-09-18 */public class JJ { public static void main( ...

  10. php 未配置curl

    用到PHP的curl功能,发现服务器上的PHP并没有配置curl,进而查询PHP官方文档,得知编译PHP时需要带上 –with-curl参数,才能把curl模块编译进去.我现在PHP已经编译安装进服务 ...