您的位置:首页 > 运维架构 > Linux

高效编辑的7种习惯(一)

2010-02-10 11:34 176 查看
如果你的很多时间是用来敲纯文本,写程序或HTML,那么有效地使用一个好的编辑器能节省你不少时间。这篇文章里的指导和提示将有助于你更快工作,更少犯错误。yichi认为,编辑是完成程序的第一步,值得消耗很大的精力来提高效率。

 

主要内容如下:

第一部分:编辑一个文件 (edit a file)

  1. 快速定位 (Move around quickly)

  2. 不要敲两次 (Don’t type it twice)

  3. 知错就改 (Fix it when it’s wrong)

第二部分:编辑多个文件 (edit more files)

  4. 文件总是成帮结伙 (A file seldom comes alone)

  5. 让我们一起来工作 (Let’s work together)

  6. 文本结构化 (Text is structured)

第三部分:磨刀 (sharpen the saw)

  7. 养成习惯 (Make it a habit)

 

下面我们以vim为例来阐述具体问题:

 

第一部分:编辑一个文件

    1、快速定位

         编辑中大部分时间是花费在阅读、查错和寻找应该进行编辑的地方上,而不是插入新文字或进行修改。在文件中不断定位(navigate)是经常要做的,所以最好学会如何快速地进行。

         你常会搜寻文档中的一些文字。或者找出包含特定词或词组的行。你当然可以使用搜寻命令 /pattern,不过还有更聪明的方法:如果你看到一个特定词,想看看其他地方是不是出现过同样的词,可以使“*” 命令。它将对光标所指的词进行搜寻。 如果你设置了 ' incsearch' 选项,Vim将在你正在输入搜寻模式的时候就显示搜寻的结果(而不是等到你敲了回车之后)。这能够使你更快地找出拼写 错误。如果设置了 ' hlsearch' 选项,Vim将使用黄色背景对搜寻结果进行高亮 显示。你可以对搜寻的结果一目了然。应用在程序代码中可以显示变量的所有引用。你甚至不需要移动鼠标就能看到所有的搜寻结果。

         Vim提供专门针对C程序(以及C++、Java等等)的特殊命令:例如使用 %可以从开始括号跳到对应的关闭括号。或者从 ``#if'' 跳到对应的 ``#endif''。事实上, % 可以完成许多对应项之间的跳转。可以用来检查if()和{}结构是否平衡。使用 [{可以在代码段(block)中跳回到段起始的 ``{``。使用 gb 可以从引用某个变量的地方跳转到它的局部声明。

         定位的方法当然不止这些。关键是你需要知道有这些命令。你也许会说不可能学会所有命令 — Vim里有成百个定位命令,有的很简单,有的很聪明 — 这需要几星期的学习。不过,你不必如此;你只需要了解自己的编辑特点,然后掌握相关的定位命令就可以了。

         可以采取三个基本步骤:

              1) 在你进行编辑的时候,注意那些重复进行的操作。

              2)找出能快速进行这些操作的编辑命令。阅读文档,问问朋友,或者看看其他人是如何做的。

              3)进行练习,直到熟练为止。

 

    2、不要敲两次

         我们所使用的字词集合是有限的。既使是词组和句子也不过是有限的几个。对于程序来说更是如此。很明显,你不想把同样的东西敲上两遍。

         你经常会想把一个词替换成另一个。如果是全文件替换,你可以使用:s (substitute)命令。如果只是几个位置需要被替换,一个快速办法是使用 * 命令找出下一个词,使用 cw 来进行替换。然后敲n 找到下个词,再用 . 重复 cw 命令。

          命令重复上一个改变。这里的改变是插入、删除或替换操作。能够重复进行操作是个极为强大的机制。如果好好使用它,那么你大部分的编辑工作可能只不过是敲几下 . 的事。小心不要在两次重复之间做其他修改,因为这将改变你要重复的操作。如果确实需要如此,可以使用 m 命令记住要修改的位置,等重复操作进行完毕之后再回过头来修改它。

          如果你有同样的词组或句子需要输入多次,还有个更简单的办法。Vim可以进行录制宏。使用 qa 命令开始在'a'寄存器里录制宏。然后正常地输入编辑命令,最后用 q 退出录制状态。如果你想重复所录制的命令,只需执行 @a 命令。Vim总共提供26个这样的宏寄存器。 使用宏录制功能可以记录各种操作,不只限于插入操作。如果你想重复一些东西,不妨一试。

 

    3、知错就改

          编辑时经常会出错。无人能免。关键是快速发现并进行改正。编辑器应该提供这方面的支持,不过你必须告诉它什么是对什么是错。

          你可能常常会重复同样的错误,你的手指所做的并非是你要它做的。可以使用缩写(abbreviation)进行修正。下面是一些例子:

            :abbr Lunix Linux

            :abbr accross across

            :abbr hte the

          这些词会在编辑时被自动改正。

          同样的机制也可以用于对很长的词语进行缩写。特别适用于输入那些你觉得很难敲的词,它可以避免出错。比如:

            :abbr pn pinguin

            :abbr MS Mandrake Software

          但有时候你想要的正是那些缩写,比如想插入``MS''。所以缩写中最好使用那些不会出现在文中的词。

 

          Vim提供了一个很聪明的高亮机制,一般用于程序的语法高亮,不过也可以用来查错。语法高亮会使用颜色显示注释。这听上去不是什么特别重要的功能,不过一旦用起来就会发现这其实很有用。你能够快速地发现那些没有高亮却本应作为注释的文字(可能是因为忘了敲注释符)。也可以发现一些被错误当成注释的代码(可能是因为忘了敲``*/'')。这些错误在黑白方式下是很难被发现的,浪费了不少调试时间。

         语法高亮也可以用来查找不匹配的括号。一个未被匹配的``)''会被亮红色背景加以标识。你可以使用 % 命令他们是被如何匹配的,然后把``(''或

``)''插入到合适的位置。另一类常犯的错误也很容易发现,比如把 ``#include <stdio.h>''敲成了``#included <stdio.h>''。在黑白方式下这是很难发现的,但在语法高亮下则能很快发现``include''能被高亮而``included''没有。

          再看一个更复杂的例子:对于英文文本你可以定义一个所要使用的词的长列表。所有未在表中出现的词都可能是错误,并进行高亮显示。可以定义几个用于编辑词表的宏。这正是字处理器的拼写检查功能。Vim中是靠一些脚本来实现的,你也可以对它进行定制:比如,只对注释中的文字进行拼写检查。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息