懒惰的Linux程序员手中利器

“工欲善其事,必先利其器”。用Emacs三年,略知其中滋味,希望与更多的程序员分享,也算为开源社区做点贡献吧。

学了Emacs才知道,输入(以及修改)程序也是有很多学问的。记得当初关于“软件蓝领”的争论焦点就是写程序是体力活还是脑力活,是否仅仅等于敲敲键 盘。虽然到头来双方仍是自说自话,但似乎都同意“敲键盘是体力活”。大家对编辑器的期望无非也就是语法高亮、自动缩进,如果能有自动补全那就谢天谢地了。 我周围的同事用的编辑器各种各样,有SourceInsight、SlickEdit、UltraEdit……,但用得最多的还是vi,甚至连新来的实习 生都用vi,这让我很吃惊,我上学那会儿可都是用IDE的啊。即使这样,还是有很多同事对UltraEdit的列插入功能津津乐道,由此可见,很多编辑器 对于编辑这个老本行做得还不够。大家使用SourceInsight和SlickEdit,也是用其代码浏览和定位功能,而其编辑功能并无出彩之处。

编辑是程序开发领域唯一的体力活吗?体力活意味着机械、单调、令人厌烦。我们选择干程序员这行,不就是想多动脑少动手吗?如果你把编辑当成体力活,那么肯 定你的手指经常游走在方向键、Home、End、PageUp、PageDown、Delete和Backspace之间,偶尔(也许是很多时候)不得不 借助鼠标,即使你也知道用鼠标对手腕的伤害要远远大于键盘。也许你觉得这没什么不好,难道不是每个程序员都这样吗?答案是:不是。Emacs用户将这种行 为比喻为Cache Miss,可见其对效率的伤害程度。几乎每个人都会同意,输入速度取决于盲打的熟练程度,看键盘是非常忌讳的。然而,有多少人可以不看键盘就能找对上面提 到的几个键呢?即使找对,恐怕手已移开半尺(鼠标就更远了),让食指回到"J"键上也不那么容易吧。当我们尚不清楚接下来该写什么的时候,这并不成问题, 尽可以将每个动作做得轻松、优雅。但是当我们早已胸有成竹,只等下手时,还是这样编辑,不仅减缓速度,还会滋生急躁、甚至烦躁的情绪。试想以下操作我们通 常是如何完成的:

* 删除一个长达三屏(甚至更长)的函数;

* 重新格式化一段没有做好缩进的代码;

* 只在一个函数(或一块文本)里做字符串替换;

* 选好一块很长(数屏)的文本后发现结尾处选对了,可是开头处要做一些调整。

我曾经为这些问题郁闷得不行,尤其是最后一个,简直暴跳如雷,因为除了重来,还能怎样呢?直到用了Emacs才发现,原来生活可以如此简单,写程序可以如 此快乐。所以,尽管过了三年,我仍然为每一次击键兴奋不已,我所在的组共6人(包括我),经过我的鼓吹,有3名同事开始使用Emacs。

使用 Emacs的好处有很多,我会在后续的blog里面重点介绍,但我认为最重要的是,它彻底改变了我对编辑的认识,从此以更严肃的态度对待它。正如高级语言 取代汇编语言一样,那些只能区分单个字符的编辑器也该被丢弃,只有提供更高的抽象,以及基于这些抽象的操作,才能使开发过程更加高效。

我个人认为Emacs的强大之处可以在下面几个方面得到体现:

* 对编辑操作的支持极其丰富,使得输入过程非常流畅,比如支持正反双向以一个字符、单词、句子、甚至段落为粒度移动光标,将光标快速定位到函数头尾、该行第 一个非空格字符,双向调节选中区域,注释掉选中区域或去掉选中区域的注释(对于只支持行注释的语言,如Perl等,非常方便),等等,数不胜数。

* 可定制性。每个人都有自己的偏好,有人喜欢语法高亮,有人不喜欢;有人喜欢4格缩进,有人喜欢GNU风格,还有人不希望缩进有tab键,只能用空格,等等。Emacs为此提供了极其灵活的定制功能,使其满足不同口味的人群。

1 2 下一页>> 数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:操作系统的革命,Linux系统风雨15年
下一篇:开源软件一定是IT领域创业的新契机
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 我使用的是卡巴斯基半年试用版快到期了,我
  • 51非VIP用户如何设置自定义音乐背景
  • 什么是竞争情报
  • 请问谁知道招商银行信用卡YOUNG卡怎么注销
  • 请问,海通证券大智慧软件下载网址?
  • 什么软件可以将rm、rmvb转换成wmv、avi之类
  • 竞争情报小知识
  • 摄像头驱动器(中星微处理器的)
  • 张靓颖堪比武藤兰,最新专辑造型曝光
  • 中国人民大学情报学专业考研初试试题(2002
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 07胡润IT富豪榜发布:李彦宏成IT首富
  • IT界十大最尴尬瞬间 盖茨遭遇Win98死机列榜
  • 百度将成为电子商务领域重量级选手
  • 阿里巴巴董事持股量曝光 马云身价22.7亿
  • Tuscany SCA(1.0M2) 引导及装配过程
  • Web新动力 —— AJAX
  • UT斯达康中国CEO离职 称看空公司全球扩张战
  • CIOs Want More Technical Skills
  • 为Linux操作系统创建文件系统的必要性
  • 走进Linux世界,纯正的网络操作系统
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静