设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

七个高效的文本编辑习惯(以Vim为例)

2013-8-15 11:16| 发布者: 红黑魂| 查看: 4126| 评论: 0|来自: 伯乐在线

摘要: 如果你花很多时间输入纯文本、写程序或HTML,那么通过高效地使用一个好的编辑器,你可以节省大部分时间。本文将提供指导和提示,让你更迅速地做这些工作,并且少犯错误。本文用开源文本编辑器Vim(Vi IMproved)来演 ...

第2部分:编辑多个文件

4.只有一个文件的情况很少

人们不只是工作在一个文件上,大多数情况会有许多相关文件,你一个接一个编辑它们,或者几个同时编辑。你应该能充分利用你的编辑器,使编辑几个文件更高效率。

之前提到的标签机制也适用于文件之间移动。通常的做法是为整个正在工作的项目生成一个标签文件。然后,你可以在项目里所有文件间寻找函数、机构、类型等的定义。相比较手动搜索,这节省的时间非常可观。创造一个标签文件是我浏览程序时要做的第一件事。

另一个强大的机制是在一组文件里使用:grep命令找到一个名字出现的所有位置。Vim建立一个所有匹配的列表,并跳转到第一个匹配。:cn命令带你依次到下一个匹配。如果你需要改变一个函数调用的参数数目,这会非常有用。

Include文件包含有用的信息,但是找到一个包含你需要看到的声明很花时间。Vim知道include文件并可以在它们中搜索你要找的单词。最常见的动作是查找一个函数的原型。把光标放在你的文件里的函数名上,输入[I:,Vim将显示一个包含所有在include文件里匹配该函数名的列表。如果需要看到更多上下文,你可以直接跳转到声明。一个类似的命令可用来检查你是否包含了正确的头文件。

Vim中,你可以把文本区分成几个区域编辑不同的文件。然后,你可以在两个或多个文件中比较内容,复制(粘贴)文本。有很多命令打开和关闭窗口,在它们之间跳转,临时隐藏文件等等。同样,你需要应用三个基本步骤来选择你打算学会使用的命令集。

多窗口有更多用途。预览标签机制是一个很好的例子,它会打开一个特殊的预览窗口,同时保持光标在你正在工作的文件中。在预览窗口中会显示文本,例如光标下的函数名所对应的函数声明。如果移动光标到另一个名字并停留一秒钟,预览窗口将会显示那个名字的定义。这也可以是一个在项目include文件里声明的结构或者函数的名字。

5.让我们共同努力

编辑器用于编辑文本,电子邮件程序发送和接收消息,操作系统运行程序。每个程序有它自己的任务,并擅长于它。这种力量源自程序协同工作。

一个简单的例子:你需要些一个不超过500字的总结。选择当前段落写入“wc”程序:vip:w!wc –w。外部命令“wc -w”用作计算单词数目。很简单,不是吗?

总会有一些你需要的功能没有包含在编辑器里。你可以从外部添加功能,使编辑器能使用另一个程序过滤文本。一直以来,Unix的精髓就是用不同的程序做好它们自己的工作,并协作执行一个更大的任务。不幸的是,大部分编辑器不能很好地同其它程序一起工作——例如,你不能用另一个编辑器去替换Netscape里的电子邮件编辑器。你会终止使用残缺的编辑器。另一个趋势是在编辑器里包含所有功能,Emacs是一个很好的例子来终止(有人称之为一个可被用来编辑文本的操作系统。)

Vim试图与其它程序集成,但这仍然是一个挑战。目前,它可被用作MS-Developer Studio和Sniff的编辑器。一些像Mutt的电子邮件程序支持外部编辑器,可以使用Vim。与Sun工作站的集成在进行中。总之,在不久的将来这是一个必须加强的领域。只有这样我们才能得到一个优于各部分简单相加的系统。

 

6.文本结构

你会经常遇到具有某种结构的文本,但是和现有命令所支持的不同。然后,你将不得不退回到编辑器的“积木”,创造你自己的宏和插件来处理这个文本。我们在这里接触更复杂的东西。

更简单的事情之一是加快编辑-编译-修复周期。Vim有:make命令,开始编译,捕捉它产生的错误,并让你跳转到错误位置来修复问题。如果你使用不同的编辑器,错误信息将无法识别。你应该调整“错误格式”选项,而不是重回到老的“把它写下”系统。这告诉Vim你的错误是什么样子,以及如何获取文件名和行号。它适用于复杂的gcc错误消息,因此你应该能使其与几乎任何编辑器工作。

有时调整到一种文件只是设置一些选项或写一些宏。例如,为了在手册页面跳转,你可以写一个宏去获取光标下的单词,清理缓冲区,然后从手册页面把那个单词读到缓冲区。这是一个简单高效的方式来查询交叉引用。

使用者2三个基本步骤,你可以更高效地处理任何结构形式的文件。试想下你想要对文件做的动作,找到可以做它的命令,并开始使用它们。正如你听到的,这真的很简单。你只需要去做它。

 

第3部分:磨刀不误砍柴工

7.形成习惯

学开车需要努力。那是你保持骑自行车的理由么?不,你认识到需要投入时间去学习一门技能。文本编辑不一样。你需要学习新命令,并把它们变成一种习惯。

另一方面,你不应该试图学习编辑器提供的所有命令。那将是彻底的浪费时间。大部分人只需为他们的工作学习10%到20%的命令。但对每个人来说这套命令是不同的。它需要你不时回过头来思考是否有一些重复性任务可以被自动化。如果你做的任务,只有一次,并不期望去再做一次,那就不要试图去优化它。但是你可能意识到你已经花了一个小时重复好几次做某事,那就在文档里搜索一个可以更快做它的命令。或者写一个宏来做到这一点。当它是一个更大的任务,例如选出一种特别的文本,你可以浏览下新闻组或互联网,看看是不是有人已经为你解决了这个问题。

必不可少的基本步骤是最后一条。你能想到一个重复性的任务,找到一个好的解决方案,过了周末忘记你是怎么做的。这不起作用。你必须重复它知道你的手指可以自动去这样做。只有这样你才能达到你需要的效率。一次不要学太多,同时做一些就好。把你不经常使用的技巧记录在表格里,以备日后查用。无论如何,如果你坚持目标,你会发现让你编辑越来越高效地办法。

最后一句提醒,当人们忽略上述所提会发生什么:我仍然看到人们在电脑屏幕(VDU)后花了半天时间,抬头看着屏幕,然后低头看两个手指输入,再抬头看着屏幕,等等。——然后他们奇怪为什么如此累……用十指输入!这不只是速度更快,也能减少无聊。每天使用一个小时计算机程序,只需要几个星期就能学会按指法输入。

 

结语

标题的想法来自斯蒂芬-科维所著的成功书籍《高效能人士的七个习惯》。我向需要解决个人和职业问题人们(谁没有?)推荐这本书。虽然有些人会宣称它来自斯科特-亚当斯所著的《迪尔伯特——高度有缺陷人士的7年》(同样推荐)。

 

布莱姆·米勒写于 2000年11月

 

关于作者

布莱姆·米勒 (Bram Moolenaar) 是Vim的主要作者。他写了Vim功能核心,并且选择包含其他人提交的代码。他以电脑技师的身份毕业于代尔夫特技术大学。现在,它主要从事软件工作,但仍然懂得如何使用烙铁。他是ICCF(荷兰)的创始人和财务主管,帮助乌干达的孤儿。他是一名从事系统架构师工作的自由职业者,但是实际上花费大部分时间在开发Vim上。他的电子邮件地址:Bram@moolenaar.net


原文链接: Bram Moolenaar   翻译: 伯乐在线 伯乐在线读者
译文链接: http://blog.jobbole.com/44891/

酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部