
_START_ARTICLE_
文本编辑器
_START_SECTION_
历史
_START_PARAGRAPH_
在文本编辑器出现前，人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里，可以用读卡器来阅读它。_NEWLINE_第一个文本编辑器是一种行编辑器，它运行在打字机型的终端上，这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令（为了减少打字量）。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点，通过特殊命令，可以把它移动到特定内容字符串所在的行。随后，内容字符串又被扩展成正则表达式。如果想看到文件的变化，你需要把它打印出来。相对于穿孔机来说，人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它，用户就需要把那些处理文本的命令打成专用的卡片，并在编辑文件时使用这些卡片。_NEWLINE_当带有显示屏的计算机终端出现后，基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中，有一种叫做O26，它是于1967年为CDC 6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代。至今，它仍然内置于Unix和Linux系统中，不过vi也有一个改善的版本Vim也十分为人所知。全屏编辑器对视频终端的销售起到了促进的作用。
_START_SECTION_
不同的文本编辑器
_START_PARAGRAPH_
有些文本编辑器简洁易用，只能编辑纯文本文件，也有些文本编辑器功能丰富复杂，支持大量格式的文本文件。Unix和类Unix操作系统都提供了vi编辑器（或者是它的变种），但是也有部分操作系统提供了Emacs编辑器。这两个文本编辑器以其独特的快捷键操作和可定制的工作环境而在程序员世界中广泛应用；普通用户则喜欢使用Office来为文本添加格式。Windows系统同样提供了可编辑纯文本文件的记事本和一个类似于Word的写字板提供了基本的写作功能。也有很多人，尤其是程序员更喜欢Windows下功能更丰富，更专业的其它编辑器。OS X所提供的TextEdit可以编辑纯文本也可以编辑多信息文本，类似于DOS中的Wordstar._NEWLINE_专业的文本编辑器需要在处理巨大的文本时保持速度的能力。例如，系统管理员需要读取很长的日志文件；程序员需要修改很大的源代码文件，或者检查那种异乎寻常的大文件，比如用于存储整本词典的文件。这需要文本编辑器对大文本进行特殊的优化，而不是简单的把文本加载内存。_NEWLINE_有些文本编辑器专门为提高效率和自定制环境提供了可编程的语言。这些语言大部分都是通用的脚本语言，也有一些是专门为文本编辑器设计的语言，例如Vim的Vimscript。在Emacs中，可以用Lisp程序编写宏来控制Emacs或者自定义快捷键。利用这种手段，用户可以按照自己的习惯方便的使用这些文本编辑器，但是这些方式也通常难学，不利于初学者定制自己的习惯。_NEWLINE_还有一些可编程编辑器采用REXX作为它们的脚本语言。这些编辑器支持在屏幕的底部直接输入命令或者REXX语句。在这类编辑器中，最具代表性的是Xedit的后续产品，而Xedit是IBM在VM/CMS中的编辑器。一些vi的后续产品，如Vim，还支持折叠以及宏，而且在底部还有命令行。人们认为它们是另一类正统编辑器。_NEWLINE_许多用于开发软件的文本编辑器支持源代码的语法高亮和自动完成，这样就能够使得程序更容易读写。程序编辑器通常还允许你选中一个子程序或者变量，然后跳转到它的定义部分，再跳回原来的位置。像ctags这样的附加工具就是专门用来定位定义部分的。_NEWLINE_随着计算机网络的发展，又诞生了可以多人协同编辑的文本编辑器，如Windows操作系统下的Netpad，它可以让多人同时协同编辑或阅读同一个文本文件。
_START_SECTION_
剪切、复制、粘贴
_START_PARAGRAPH_
大多数文本编辑器都支持文件内的或者文件间的复制或者移动。
_START_SECTION_
文字排版
_START_PARAGRAPH_
文本编辑器通常支持基本的排版功能，如卷行、自动缩排、行号排版、注释排版等等。
_START_SECTION_
撤销和恢复
_START_PARAGRAPH_
同文字处理器一样，文本编辑器也支持撤销和恢复。通常，尤其是老的文本编辑器，只支持一级的编辑历史，只能撤销或者恢复至上一次变化。现代的和复杂的文本编辑器支持多级的编辑历史，这样就能够撤销或者恢复至任何的历史状态。能够记录变化的次数随编辑器的不同而不同，通常也是可以配置的。
_START_SECTION_
导入
_START_PARAGRAPH_
读取或者合并另一个文本文件的内容至当前正在编辑的文件。有些文本编辑器支持插入操作系统命令的输出。
_START_SECTION_
过滤
_START_PARAGRAPH_
一些先进的文本编辑器允许你把正在编辑的文件发送至另一个工具，并把过滤后的结果回读至这个文件。例如，用这种方法可以对一些行进行排序，或者进行数学计算等。