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