【转】谁说Vim不是IDE?(一)

谁说Vim不是IDE?(一)

话说操作系统、编程语言和编辑器似乎是程序员永恒的吐槽话题,技术发展了几十年,大家讨论起这几个“之争”还是充满愤怒、津津乐道。有人描述过Emacs和VI程序员,大家沿着不同的道路和目标前进,但总是会在某个点交叉相遇,互相扔石头,砸到对方鼻青脸肿,然后收拾心情又继续前行。

前一阵子我在微博上写了一条微博回复,是关于Vim和IDE讨论的:Vim和那些IDE的应用场景还是有区别的,在我看来Vim也是IDE,是程序员的必备技能之一。这基本表达了我的观点。

微博@玉伯也叫射雕发布的,这条微博转发了评论了几百次。其实表达的意思很清楚,而且主要是针对前端开发的,但是140个字实在是太少了,以至于还没来得及解释,很多服务端程序员已经撸着胳膊冲上去了,玉伯后来还是在Github上写了片长文,才算告一段落。文章很好,有兴趣的童靴就别看微博了,累,直接看这篇文章就好。

这件事的直接后果,或者说给我留下的后遗症就是,每次自己使用Vim的是总会琢磨一下这档子事,都是程序员,都是编辑器,怎么就那么大的区别呢?有那么大的区别吗?越琢磨越觉得该写篇文章说说Vim这点事。非争论,仅阐述和分享,因为工作十几年来我从来就不是用一种编程工具搞定一切的主儿,不同场景下各种编辑器都用过。用错过,也用对过,能在最合适的场景使用最合适的工具已经是了不起的成就了。每种优秀的编辑器都有一些传奇的故事,都值得大书特书,但这次我只想聊一聊Vim。

很多人把Vim和Emacs相提并论,有人说Emacs这货就是个捆绑了文本编辑器的操作系统,我很少用Emacs,不熟,但感觉这话大气磅礴。Vim虽比不了操作系统,但也形成了自己的生态环境。看似简单的工具,似乎就是个充满快捷键和速度感的文本编辑器而已,一旦深入进去,却充满了无穷的乐趣……

至于为什么给这篇文章起这么个名字,读者就当做是个噱头好了。其实Vim、Emacs、ST2等已经和IDE没有太大区别了。

编程人生

我个人接触vim从2000年开始,当时正值第一波互联网浪潮,我刚毕业不久,一如现在的热血青年,投身到互联网的大熔炉中(当然和现在的互联网弄潮儿不一样的,当年我们大部分都被熔掉了),我参与的第一款互联网产品是洪恩在线。

当时洪恩聚集了很多清华北大的学子,有很多技术牛人,比如Baby、Star、Panpan等等,都是响当当的人物,后来这些人有的离开开创了自己的事业,有的留在洪恩组成了完美世界游戏平台的技术班底。在当时都是需我仰望的角色,他们清一色都使用Vim在服务器端编程,连语法高亮都不设置,搭建的BBS也是当年水木清华那种,通过终端Telnet访问。一进办公室,清一色都是黑漆漆的屏幕,黑地绿字,噼噼啪啪的在那里敲键盘,非常有韵律,我想,这简直酷毙了。

那会儿用的服务器端操作系统记得是Redhat Linux和FreeBSD,编程语言是Perl、HTML4和Javascript。在这种的环境下,对我这样一个常年使用Editplus的菜鸟来说压力非常大,别人的开发、编译和发布环境都在服务器端,而我则需要在本地编写好程序,通过Editplus的ftp功能上传到服务器端,再进行调试、测试和发布,非常麻烦。所以我的工作除了学习编程技巧,还需要掌握Linux操作和Vim编辑器。当时吃住都在公司,时间充裕到让你不学习都不好意思,于是很快掌握了Linux和Vim的基本操作,编码时双手在键盘上下翻飞非常有成就感。我对语法高亮情有独钟,经常把自己的界面配置的花花绿绿,没事看看也是一种乐趣。

自此以后,十几年过去了,自己的工作一直没有离开过Vim,2001年开始使用Java、Jsp,当时Eclipse、IDEA、Netbeans这样的“神器”还未崛起,大家依旧在服务器端编程,通过make编译和调试,通过编写Shell脚本进行集成测试和发布,包括产品安装。后来随着这些牛IDE的发展,JavaEE相关的工作大部分转移到IDE中完成,接着写了两年Python等脚本,又开始大量使用Vim,编程环境是Solaris。此后的工作涉及了很多技术,Vim断断续续一直在用。到了2009年,我开始把工作环境完全切换到了Mac上,记得当时打开Mac的终端,欣喜若狂的想,这不就是Vim、Shell和IDE的完美集合么?后来还专门写了一篇博客来介绍这段经历。

直到现在,Vim依然是我工作和学习中不可缺少的一个工具平台,单单就Vim来说,还有太多东西要学…

使用场景

我提倡在不同的场景下采用最合适的工具,这一点和 @玉伯也叫射雕 是一致的。那么就有人问,Vim适合什么场景呢?简单说,Vim比较适合Unix/Linux服务器端编程,当然这因人而异。我个人使用Vim主要用来进行Shell/Python/C编程。Ruby也写,但更多使用Textmate。在Unix/Linux服务器端编辑和修改文件也离不开Vim,另外由于我个人工作环境是Mac,所以改个文本文件什么的,也就用Vim顺手做了。

和现实中很多程序员交流时,大家会认为不用Vim一样能修改服务器端的文件,ftp拉下来,改好了再传上去。这当然是一种方案,但不是最优方案。而且极端情况下需要直接在客户服务器上解决问题,你总不能说对不起我不会在Linux下编辑文件,Down一份下来先?这就像用Vim编写Markdown文件一样,能不能用,当然可以,甚至有人已经为Vim开发了MD插件,可以编写时通过快捷键查看转换的HTML文本,但是这显然不如Mou+Byword。

编写JavaEE、HTML/CSS/JS、Objective-C,最优方案可能是Eclipse、IDEA、XCode等,这些优秀的工具可以帮助我们提升效率,减少错误,但是如果你还想更进一步,那么Vim绝对值得你拥有。

Vim用了很多年,一直没有总结过(这个人很懒),我想正好用这篇文章分享一下心得和用法。网络上介绍Vim的文章浩如烟海,各种精巧的用法数不胜数,看起来还是比较费时费力。Vim本身开箱即用,什么都不配置也可以使用其基本功能,如果大家掌握了基本操作,以下内容可以帮助提升效率,打造你的专属Vim。

<待续,下一篇介绍VIM的基础概念和配置,然后是插件,然后是VIM编程......>

时间: 2024-12-19 18:33:20

【转】谁说Vim不是IDE?(一)的相关文章

【转】谁说Vim不是IDE?(三)

谁说Vim不是IDE?(三) 常用插件 之所以说Vim形成了自己的生态环境,就是因为Vim具备开放的插件体系,开发者为了提升开发效率,为Vim编写了数以万计的插件,我们可以根据需要任意选择,也可以基于Vimscript语言开发自己的专属插件. 每个插件都是以Vim为后缀的脚本文件,编写插件的语言一般采用Vimscript.Vimscript是Vim自己的编程语言,我们在后续会介绍到它.尽管Vimscript几乎为可以Vim做任何事,但还是会存在一些场景,用其他语言更好更快.考虑到这一点,Vim的

【转】谁说Vim不是IDE?(二)

谁说Vim不是IDE?(二) 环境配置 “如果你认为Vim只是一个文本编辑器,你就输了”——来自Vim老鸟 Vim以简洁的方式提供了丰富的配置功能,主要配置体系由一个文件和文件夹组成.在一台安装了Vim的OS X/Linux/Unix机器上,进入用户主目录,可以找到.vimrc文件和.vim文件夹,这就是Vim所有的配置信息. (1).vimrc介绍 用户目录下的.vimrc文件就是Vim针对当前用户的主配置文件,该文件不是必备的,没有的话就创建它.文件位于当前用户的主目录下,可以用~/.vim

谁说Vim不是IDE?

话 说操作系统.编程语言和编辑器似乎是程序员永恒的吐槽话题,技术发展了几十年,大家讨论起这几个"之争"还是充满愤怒.津津乐道.有人描述过Emacs和 VI程序员,大家沿着不同的道路和目标前进,但总是会在某个点交叉相遇,互相扔石头,砸到对方鼻青脸肿,然后收拾心情又继续前行. 前一阵子我在微博上写了一条微博回复,是关于Vim和IDE讨论的:Vim和那些IDE的应用场景还是有区别的,在我看来Vim也是IDE,是程序员的必备技能之一.这基本表达了我的观点. 原微博是@玉伯也叫射雕发 布的,这条

vim as python IDE

参照Martin Brochhaus大神的视频,今天我也尝试了一下配置vim python IDE以后使用过程中只需要https://github.com/wyj1239630590/vim-as-a-python-ide, 然后将.vimrc复制到家目录下,安装包管理器与需要的插件即可(.vimrc的注释文件中有). 目前支持的功能: , + m or n : 前后切换tabctrl + > or < : 给选中的行增加或者减少缩进f and F : 对python中的函数进行折叠或者去折叠

简单将vim改造成IDE

公司服务器上的vim用的异常痛苦,自己写几个小脚本又不想用IDE,于是简单改造下vim,尝试了一次以后发现公司的机器装的是vim6x,很多插件不支持,于是干脆重装成7.x 1.安装vim 先去下载vim安装包,然后解压,执行安装命令,一般有 ./configure --prefix=/usr/local/ 安装目录 --enable-perlinterp perl集成 --enable-pythoninter ppython集成 --enable-cscope csope支持 --enable-

如何将vim打造成IDE

如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利.不管是Java.C还是Python,当IDE会帮你检查语法.后台编译,或者自动导入你需要的库时,写代码就变得容易许多.另外,如果你工作在Linux上,你也会知道Vim在进行文本编辑的时候是多么的方便.所以,你可能会想从Vim中也获取这些IDE特性. 事实上,很少有方法可以帮你做到.有些人可能会想到试着把Vim打造成C语言IDE的,比如c.vim:也有把Vim集成到Eclipse里的 Eclim .但是我想要告诉你的是一个更加

Linux配置vim ctags g++ IDE GDB

第一讲:vim的配置 在安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim test.txt时会提示: vim command not found ... 这就是说明我们的Linux环境没有安装vim编辑器,下面我们来说一下如何安装这个编辑器: vim编辑器需要安装三个包: vim-enhanced-7.0.109-7.el5 vim-minimal-7.0.109-7.el5 vim-common-7.0.109-7.el5 1. 查看一下你本机已经存在

vim 配置python IDE

#记录 #vimrc配置 #git clone https://github.com/VundleVim/Vundle.vim ~/.vim set nocompatible              " required filetype off                  " required set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'vim

Linux+环境使用vim搭建php+IDE

让我们开始DIY吧-!!终端下执行命令:whereis vim     将列出vim安装的路径. 否则执行 sudo apt-get install vim 安装vim .成功安装了vim,只需要在用户根目录下创建.vimrc文件,在配置文件下写入如下信息.比如:"引号代表注释 set hlsearch                  "高亮度反白set backspace=2               "可随时用倒退键删除set autoindent