文本编辑器

用于文本编辑的软件

文本编辑器是种计算机软件,主要用来编写和查看文本文件。特殊的文本编辑器支持增加自有的格式来丰富文档的表现形式。操作系统或者集成开发环境通常会带有可以查看和编辑纯文本的编辑器,可增加格式的文本编辑器通常是个人用户或者公司在制作需要格式的文件中使用。[1]

文本编辑器Vim

程序和其配置档常以纯文本格式储存,程序员也须用纯文本编辑器来编辑程序和配置文件。

纯文本文件与文字处理文件

由文本编辑器创建的纯文本文件与由Microsoft WordiWorkOpenOffice.org之类的文字处理器建立的文档文件之间,有明显不同:

  • 当展现或者编辑纯文本文件时,需要显示文件所含的所有字符。起标记作用的只有那些文本文件所使用的字符集里的控制字符,即换行符、制表位和换页符,比如简单常用的字符集ASCII。纯文本文件常用于编写程序和记录配置信息;或者自定义标签的格式如,XMLHTML
  • 文字处理器创建的文档除了包括字符集所定义的字符外,通常还包含由文件格式指定的控制字符。这些控制字符实现了诸如粗体、斜体、字体、列、表等功能。
  • 文字处理器通常能够编辑并导出或保存为纯文本文件。但是,这样做必须很小心。用文字处理器处理源程序、HTML代码、配置文件和控制文件时要格外注意。否则,这些文件里就会包含那些文字处理器对应格式里的特殊字符,文件就会出现问题。

历史

 
一盒穿孔卡片,内有几份程序

文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于装着这些薄卡片的盒里,可用读卡器来阅读。

第一种文本编辑器是一种行编辑器,它在打字机型的终端运行,这种编辑器并无在视窗和屏幕中显示的功能。它包含一些非常短的命令(以减少打字量)。其中一条命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件的变化,须把它打印出来。相对穿孔机来说,人们认为这种基于行的文本编辑器有革命进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。

当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。早期有种全屏编辑器叫O26英语O26 (text editor),它是于1967年为CDC 6000系列英语CDC 6000 series机器的操作控制台而作。另一款早期的全屏编辑器是vi,诞生于20世纪70年代,至今仍内置于UnixLinux系统;不过vi的改善版本Vim也广为人知。全屏编辑器提升视频终端销售量。

不同的文本编辑器

有些文本编辑器简洁易用,只能编辑纯文本文件,也有些文本编辑器功能丰富复杂,支持大量格式的文本文件。Unix和类Unix操作系统都提供了vi编辑器(或其变种),但是也有部分操作系统提供了Emacs编辑器。这两款文本编辑器以其独特的快捷键操作和可定制的工作环境而在程序员世界中广泛应用;普通用户则喜欢使用Microsoft Office来为文本添加格式。Windows系统同样提供了可编辑纯文本文件的记事本和类似Word写字板提供了基本的写作功能。也有很多人,尤其程序员更喜欢Windows下功能更丰富,更专业的其它编辑器。OS X提供的TextEdit可以编辑纯文本也可以编辑多信息文本,类似DOSWordstar.

专业的文本编辑器需要在处理巨大的文字档时保持速度的能力。例如,系统管理员须读取很长的日志档;程序员须修改很大的源码档,或者检查那种异乎寻常的大文件,比如用于存储整本词典的文件。这需要文本编辑器优化大文件,而非简单把文本加载内存。

有些文本编辑器专门为提高效率和自定制环境提供了可编程的语言。这些语言大部分都是通用的脚本语言,也有一些是专门为文本编辑器设计的语言,例如Vim的Vimscript。在Emacs中,可以用Lisp程序编写宏来控制Emacs或者自定义快捷键。利用这种手段,用户可以按照自己的习惯方便的使用这些文本编辑器,但是这些方式也通常难学,不利于初学者定制自己的习惯。

还有一些可编程编辑器采用REXX作为它们的脚本语言。这些编辑器支持在屏幕的底部直接输入命令或者REXX语句。在这类编辑器中,最典型的是Xedit的后续产品,而Xedit是IBM在VM/CMS英语VM (operating system)中的编辑器。一些vi的后续产品,如Vim,还支持折叠以及宏,而且底部还有命令行。人们认为它们是另一类正统编辑器。

许多用于开发软件的文本编辑器支持语法高亮自动完成源代码,使程序更易读写。程序编辑器通常还允许你选取子程序或者变量,然后跳转到它的定义部分,再跳回原来的位置。ctags等附加工具就是专门用来定位定义部分。

随着计算机网络发展,又诞生了可以多人协同编辑的文本编辑器,如Windows操作系统的Netpad可让多人同时编辑或阅读同一份文件。

典型功能

剪切、复制、粘贴

文件内或文件间复制或移动。

搜索和取代

文本编辑器提供丰富的功能来搜索和取代文字,可以是单一文件,也可以是打开的标签页或指定文件夹中的文件组。多功能编辑器可用规律表达式搜索和编辑文本或代码。其他功能有区分大小写、用于快速调用和自动完成的搜索纪录,以及在专用工具框列出结果。

文字排版

文本编辑器通常有基本排版功能,如卷行、自动缩排、行号排版、注释排版等。

撤销和恢复

同文字处理器一样,文本编辑器也可撤销和恢复。老的文本编辑器通常只支持一级的编辑历史,只能撤销或恢复至上一次变化;现代复杂的文本编辑器支持多级编辑历史,能撤销或恢复至任何历史状态。能够记录变化的次数随编辑器而异,通常也可自定。

导入

读取或者合并另一份文本文件的内容至当前在编辑的文件。有些文本编辑器支持插入操作系统命令的输出。

过滤

一些先进的文本编辑器可把正在编辑的文件发送至另一工具,并把过滤后的结果回读至这文件,如排序或计数。

参见

参考文献

  1. ^ 第十一天:認識文字編輯器. iThome. [2019-04-04]. (原始内容存档于2020-11-27).