使用vi 开发软件,已经快三年多了,在三年期间,有辛酸,有痛楚,有纠结,更有收获。在这之前,也有使用过vi编辑器,那个时候,只用了vi的几个基本的命令,如yy,dd之类的。更多的时候,是项目要上线了,到linux上修改配置文件,偶尔用一用。
还记得2010年的时候,我在客户那边用java开发一套管理系统,编译器当然是用的明星级的eclipse。到了项目上线的时候,我的老大,要到线上部署环境,他之前对linux系统不熟悉,在linux上修改一些配置文件颇为费劲,然后就问,谁会使用vi,我当时就说,我会使用vi。老大让我在linux服务器上修改了一些文件,感觉还不错,于是就把我带着,到客户的机房参观了一下,让我熟悉一下环境及机器的配置,说以后项目上线这些事情,叫我一并参加,我当时还挺高兴的,觉得这次vi为我挣取到了一次很重要的机会。在这次项目上线中,我把vi的基本操作又熟悉了一遍,觉得自己长进不了。
到2011年的时候,我有幸遇到我人生中的一个贵人,是他让我彻底改变了我对vi的认知。记得那是2011年的一个夏天,上面的领导叫我开发一个工作流的项目,并给我安排了一个产品经理。因为是小项目,所以项目组就两个人,我一个,还有一个是那个产品经理。我负责编码,那个产品经理负责做设计,验收等工作。当时那位王经理看了我的程序及使用的开发工具后就说,你可以尝试使用vi开发java,我当时听了后非常的震惊,vi还可以写代码吗?我印象中的vi就是用来修改配置文件等等。我当时难以相信他说的话。从这以后,我陆续发现有其它的同事使用vi来开发软件,最让我震惊的是,公司里有几个在国外大公司,如google,hp,oracle呆过的大牛,一直都是用vi开发软件的,我发现他们可以用vi编写各种语言的code,如c/c++,java,go,python等等。我当时就感觉,这么牛的人,都在使用vi,说明这个编辑器真有它的好处,于是我试着用它来写代码,我尝试用vi写了一些简单的代码,发现使用它太痛苦了,就我掌握的一些vi命令,很难完成代码的编写工作,于是我放弃了。继续使用eclipse作为开发工具。有一次,那王经理叫我演示一下我写的代码,因为使用eclipse开发,如果演示的话,一般会直接在eclipse中启动java虚拟机,然后在下面的console窗口查看输出,你懂的。王经理就说,我建议你做成命令行的形式,这些大家都可以使用。我当时就说,eclipse下开发的java代码,不方便做成命令行的形式,我们一般都是直接在eclipse下调试的。他笑了笑说,如果一个不懂java的人来使用你开发的东西,你说叫他如何使用。于是他帮我把代码修改了一下,引入了一些包,做成了以命令行的方式启动的形式。在这个期间,这位王经理直接用vi编辑了我的代码,三两下就修改完了。我当时就问他,vi不是用来修改配置文件的吗?难道也可以用来开发代码?他笑了笑说,你们现在使用的eclipse,我们从来都不用,eclipse这个IDE太笨重,又不方便,经常使用,让人的思维变得迟钝,让人变懒。最好用的工具,就是70,80年代,那些大牛开发出来的编辑器,那才是真正程序员的编辑器。你如果经常使用vi写code,你就会觉得你对代码的理解变得更深刻,你对计算机的理解会更深刻。他最后还说了一句,你用eclipe编的代码,在vi下查看,非常的乱,代码整洁,就是你的脸面,以后一定要注意。听了他了话之后,对我的触动非常的大,我又联想到公司的世界级的程序员都使用vi编辑器,让我觉得,我必须得用vi来开发。不过,我当时心里还有是疑问的,为什么说使用eclipse会让我变笨,变懒,而用vi,让人对代码理解得更深刻。于是我在网上搜索了大量关于使用vi的心得,都没有找到我想要的东西,大部分人使用vi都是把它配置成IDE,让它有提示的功能。
过了一段时间,我开发的工作流已经接近尾声了,我也被调到其它的项目组开发其它的项目去了,和这位王经理,接触没有原来那么多了。在空闲的时候,我还在网上搜索使用vi的好处。终于有一天,我和同事们聊起了vi编辑器的事情,其中的一位同事就说,在我来之前,公司的老板曾经要求所有的软件工程师,必须得使用vi开发软件,当时公司全民学习vi,场面是相当的壮观。推行了一个月不到,员工是怨声载道,都说vi的开发效率低,门槛太高了。听了这些话之后,我为之一惊,心想,老板曾经是雅虎的架构师,连他都这么说,这次我得必须学习用vi写code了,我们几个同事还说,我们大家一起学习vi.于是,我和几位同事天天作分享vi的使用等心得。我用vi写了几天的code之后,发现虽然慢点,但对vi的使用已经入门了。使用vi三个月后,我基本上可以用vi写任何的代码了。
我学习vi的心理路线上非常曲折的,自己曾经的纠结,迷茫,让我走了不少的弯路。我下面就来谈谈使用vi开发的一些好处。我重点从两个方面来阐述。一方面是使用vi编写代码方便的地方,另一方面是从使用vi之后,对代码,对计算机的理解上来说。
vi编辑器的方便之处
1. vi的快捷键,有好几百个,如果能熟悉运用,基本上可以手不离键盘。我今天在这里不讲vi的快捷键,但是我要提醒大家的话,在使用vi的时候,一定记得要使用j,k,l,h这四个键来移动。我看到许多使用vi的人,还用的方向键来移动光标的。为什么要使用j,k,l,h这四个键呢,大家来想想,我们的手指是离这四个键近呢,还是离方向键近呢。基于这一点,我就觉得vi专门为程序员设计的编辑器,想想这些vi的发明人,想得是多么的周到。说到这里,有人就要问了,那为什么在vi中,从编辑状态,切换到命令状态,为什么是esc键呢,esc键离我们的手指太远了,不方便。对于这个问题,我要说的是,在70年代,键盘和我们现在使用的键盘不一样,那个时候的esc键,在我们现在键盘的tab键的位置,出于使用习惯的考虑,使用esc键还一直延用至今。
2. 使用vi,你的两手,可以不用离开键盘,就可以完成代码的编辑及编译。非常的方便。我们可以和eclipse对比一下。我们在使用eclipse的时候,虽然它也有快捷键,但是,它的快捷键,没有vi的强大,所以,大部分时候,我们得借助鼠标来完成代码的编辑工作, 于是,我们可以观察使用eclipse程序员,基本上是右手一会在键盘上,一会在鼠标上,右手在键盘和鼠标上来回移动切换,光凭这一点,它就已经输给了vi编辑器了。
3.你可以用vi编辑器开发各种语言,如java,python,c/c++,bash shell,go,js,等等,这样,你就省了为了使用某种语言,去费心找开发工具的烦恼了。vi可以通吃。有人又要说了,eclipse也可以啊,它不光可以开发java,还可以开发c/c++,python呢。是的,eclipse的确可以开发其它的语言,大家如果用过eclipse开发过c/c++,python的话,大家都明白,eclipse对java的支持是最好的。不过话又说回来,对于一些新的语言,如go语言,eclipse目前有对应的插件支持吗?
4. vi属于GNU家庭的成员,它继承了unix的设计哲学,并将unix设计哲学发扬光大。它只做一件事,并把它做到最好。我们想想eclipse这些IDE,论编辑功能,没有vi强大,轮构建功能,没有ant,maven强大。eclipse是什么都做,什么都没有做到最好。
vi 隐藏背后的力量 对代码,对计算机体系的理解
在我使用vi的过程中,除了使用方便之外,让我对代码,对整个计算机的体系理解得更深刻
1. 我在使用vi时,不配置它的代码自动提示的功能,代码自动提示功能,使用eclipse及vc++的人,应该非常的熟悉,代码提示给我们带来方便的同时,也让我们失去了许多的东西。有人说,没有代码提示功能,就没有办法开发代码了。代码提示,从某种层面上来说,让我们变笨了,过了依赖提示,让我们太被动。如果没有代码提示功能,当我们遇到一个陌生的API,我们就得去查看docs,在看docs的同时,你有可能还关心一下其它的API,这样方面知识的积累,根据我的经验,文档最多看三遍之后,API的参数及返回值,你已经烂熟于心了。因为你记得了这个API,你在开发的时候,当你想设计其它的API时,你就会去借鉴之前java中大牛设计的API的参数及结构。久而久之,你也成了大牛了。当你感慨大牛设计的API的精妙时,你就会去看看这个API的源代码,有一些想深入理解,学习的冲动。这种状态非常适合我们去代码的理解,知识的积累。我们想一想,我们在上学年代,特别是学习语文的时候,老师会叫我们找一些美文背诵,这样你在写作时,就会借鉴大家的文笔,自然你的文章就会写得好。我们学习程序道理也一样啊,当我们心里有了足够的大牛的代码时,我们也成了大牛了。
2. 使用vi,非常适合学习新的编程语言。就拿我最新学习python来说,我因为我熟悉vi,就可以直接用vi来编写python的代码,轻车熟路,如果你不熟悉的话,你可能第一件事是找一个合适的编辑器,然后配置一堆的环境,这样非常的浪费时间,如果我们配置成功了还好说,如果配置失败了,非常的影响我们的学习热情。当我们学习一些新事物时,如果没有在每一时间内上手,以后再来学习的话,可能性就比较小了。我开始用vi写python,不懂的APi太多了,我去查阅文档,顺便积累一些API。这种学习方式,让我在短时间内学会了python的使用。
3. 使用vi,许多东西都不是现成的,都要自己去理解代码的一些细节,这些细节可能在IDE中被隐藏掉了,对于一个程序员来说,理解了许多细节,让你对OS,对其它的软件设计了如指撑,这样提高就非常的快了。
分享到:
相关推荐
Vi 编辑器使用技巧总结 Vi 编辑器是 Unix 系统下的标准编辑器,几乎每个 Unix 或类 Unix 操作系统都提供了 Vi 的编辑功能。Vi 的强大功能使其成为服务器管理和开发人员的必备工具之一。本文总结了 Vi 编辑器的常用...
Linux实验报告Vi编辑器的使用 本文将对Vi编辑器的使用进行详细的介绍,包括Vi编辑器的基本概念、使用方法和技巧,并通过实验步骤来加深对Vi编辑器的理解和掌握。 一、实验目的 学习使用Vi编辑器建立、编辑、显示...
下面我将详细介绍vi编辑器的一些核心知识点。 vi编辑器的核心知识点包括: 1. vi编辑器简介:vi是一个基于模式的文本编辑器,具有模式切换的特点,分为命令模式、插入模式和末行模式。这种模式切换的设计允许用户...
### VI编辑器使用指南 #### 一、VI编辑器简介 VI编辑器是UNIX系统及其类似的操作系统(如Linux)中极为重要的一个文本编辑工具。它作为一种全屏编辑器,相较于早期的行编辑器(如ex、edit和ed),VI在用户界面和...
vi编辑器基本操作指令 vi编辑器是 Unix 操作系统中的一种文本编辑器,广泛应用于编程、文本编辑等领域。 vi 编辑器具有强大的编辑功能,灵活的命令系统和键盘操作模式等特点。下面将详细介绍 vi 编辑器的基本操作...
Vi 编辑器的使用方法 Vi 编辑器是 Unix 及 Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。本文将详细介绍 Vi 编辑器的使用方法,包括基本概念、基本操作、命令行模式功能键等。 一、Vi 编辑器...
在IT领域,文本编辑器是开发者们不可或缺的工具之一,Vi(Vim)编辑器作为经典的文本编辑器,因其高效和强大的功能而深受广大程序员喜爱。本文将详细讲解如何在Vi编辑器中进行个性化设置,特别是关于Tab键的跳动格数...
【Windows下的VI编辑器】 VI(Visual Editor)编辑器,起源于UNIX系统,是程序员们最常使用的文本编辑工具之一,尤其在Linux和类UNIX操作系统中广泛应用。它以其高效、强大的功能深受程序员喜爱。虽然VI最初是为...
"对linux的vi编辑器的认识" Vi 编辑器是 Linux 和 Unix 上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在 Linux 上也有很多图形界面的编辑器可用,但 VI 在系统...
在Linux操作系统中,Shell和Vi编辑器是两个非常重要的工具,它们对于系统管理和日常操作起着关键作用。本文将详细讲解这两个工具,并提供相关的实验练习,帮助你更好地理解和掌握它们。 **Shell** 是Linux的命令行...
### Vi编辑器常用编辑命令详解 #### 一、概述 Vi(Visual Editor)是一种功能强大的文本编辑器,广泛应用于各种Unix系统以及类Unix系统(如Linux)中。它具有多种模式,包括命令模式、插入模式和末行模式等,用户...
### 如何退出vi编辑器:深入理解vi命令与操作 #### vi编辑器简介 vi(visual editor)是Unix/Linux系统中最常用的文本编辑器之一,它不仅功能强大,而且几乎安装在所有的类Unix系统中,包括Linux、Mac OS X等。vi...
vi编辑器命令速查 vi 编辑器是 Linux/UNIX 环境下经典的编辑器,熟练地使用它可以高效地编辑代码、配置系统文件等,是程序员和运维人员必须掌握的技能。下面是 vi 编辑器的详细说明: vi 编辑器的三种模式 1. ...
### 常用vi编辑器命令行详解 #### 一、引言 vi编辑器是Unix/Linux系统中广泛使用的文本编辑工具之一,以其强大的功能和灵活性而著称。本文将详细介绍vi编辑器中的常用命令行操作,帮助用户快速掌握如何高效地使用vi...
### VI编辑器使用详解 #### 一、VI编辑器简介 VI编辑器是所有Unix及Linux系统下的标准编辑工具之一,其历史悠久且功能强大,不亚于任何现代文本编辑器。由于其高度的定制性和效率,至今仍被广泛应用于各种操作系统...
**VI编辑器基础教程** VI(Visual Editor)编辑器,是Linux和Unix系统中的一个强大的文本编辑工具。这张名为"vi.jpg"的图片显然提供了一种直观的方式,帮助初学者理解并掌握VI编辑器的基本操作命令。对于刚接触这个...
Linux 下 vi 编辑器命令大全 Linux 下 vi 编辑器是一种功能强大的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。vi 编辑器是所有 UNIX 系统都会提供的编辑器,它提供了一个视窗设备,通过它可以编辑文件...