文本编辑器是用来编写纯文本的计算机软件。
操作系统和软件开发包往往都提供文本编辑器,用以修改配置文件和程序的源代码。
目录 |
由文本编辑器创建的纯文本文件与由诸如Microsoft Word、WordPerfect与OpenOffice.org之类的文字处理器创建的文档文件之间,存在着明显的不同:
在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。
第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。
当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC 6000系列机器的操作控制台而作的。另外一个早期的全屏编辑器是vi。vi诞生于20世纪70年代,至今,它仍是Unix和Linux的标准编辑器。全屏编辑器对视频终端的销售起到了促进的作用。
有些文本编辑器短小精悍,也有些文本编辑器提供了丰富、复杂的功能。例如,Unix和类Unix操作系统都提供了vi编辑器(或者是它的变种),但是也有部分操作系统提供了Emacs编辑器。Windows系统提供了非常简单的记事本,但是很多人,尤其是那些程序员们却更喜欢Windows下功能更丰富的其它编辑器。在Apple Macintosh的经典Mac OS中,包含了SimpleText,后来,TextEdit替代了它。有些编辑器支持两种操作模式,既可以当做文本编辑器,又可以当做文字处理器,WordStar就是一例。
专业的计算机用户使用的文本编辑器往往不限制打开文件的大小。这样的编辑器在编辑大文件时,启动仍然很快,而且它们还能够编辑超过内存大小的文件。而简单的文本编辑器通常直接把文件读至内存。这样在处理较大文件时速度较慢,对于更大的文件,则干脆无法处理。
专业的计算机需要处理大文件的能力。例如,系统管理员需要读取很长的日志文件;程序员需要修改很大的源代码文件,或者检查那种异乎寻常的大文件,比如用于存储整本词典的文件。
有些文本编辑器包含特殊的计算机语言,利用这种语言,能够对这种进行定制(可编程编辑器)。例如,可以用Lisp程序来定制Emacs。利用这种手段,用户通常就能够把某种编辑器的快捷键组合以及其它的一些特性模拟成另一种编辑器的样子,这样,用户就没有必要学习这种编辑器的命令组合了。
还有一些可编程编辑器采用REXX作为它们的脚本语言。这些编辑器支持在屏幕的底部直接输入命令或者REXX语句,人们通常认为这些编辑器是正统的编辑器。在这类编辑器中,最具代表性的是Xedit的后续产品,而Xedit是IBM在VM/CMS中的编辑器。一些vi的后续产品,如Vim,还支持折叠以及宏,而且在底部还有命令行。人们认为它们是另一类正统编辑器。
许多用于开发软件的文本编辑器支持源代码的语法高亮和自动完成,这样就能够使得程序更容易读写。程序编辑器通常还允许你选中一个子程序或者变量,然后跳转到它的定义部分,再跳回原来的位置。像ctags这样的附加工具就是专门用来定位定义部分的。
随着计算机网络的发展,又诞生了可以多人协同编辑的文本编辑器,如Windows操作系统下的Netpad,它可以让多人同时协同编辑或阅读同一个文本文件。
在一个文本文件中查找一个词或者一个字符串,把一个字符串替换成另一个字符串。可采取各种方式进行:全局查找替换、条件查找替换、无条件查找替换。
大多数文本编辑器都支持文件内的或者文件间的复制或者移动。
文本编辑器通常支持基本的排版功能,如卷行、自动缩排、行号排版、注释排版等等。
同文字处理器一样,文本编辑器也支持撤销和恢复。通常,尤其是老的文本编辑器,只支持一级的编辑历史,只能撤销或者恢复至上一次变化。现代的和复杂的文本编辑器支持多级的编辑历史,这样就能够撤销或者恢复至任何的历史状态。能够记录变化的次数随编辑器的不同而不同,通常也是可以配置的。
读取或者合并另一个文本文件的内容至当前正在编辑的文件。有些文本编辑器支持插入操作系统命令的输出。
一些先进的文本编辑器允许你把正在编辑的文件发送至另一个工具,并把过滤后的结果回读至这个文件。例如,用这种方法可以对一些行进行排序,或者进行数学计算等。
stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History