记事本
记事本,正式名称是微软记事本,是一个简单的文本编辑器,自1985年发布的Windows 1.0开始,所有的Windows版本都内置这个软件。该软件的程序员是理乍得·布罗迪(Richard Brodie),1983年5月,微软在亚特兰大COMDEX上推出了由布罗迪编写的基于鼠标的文本编辑器Multi-Tool记事本,并配备了195美元的微软鼠标。
![]() | |
![]() Windows 11中的记事本 | |
原作者 | 理乍得·布罗迪 |
---|---|
开发者 | 微软 |
首次发布 | 1983年 | (初名Multi-Tool记事本)
操作系统 | Microsoft Windows |
平台 | IA-32、x86-64和ARM(以前有安腾、DEC Alpha、MIPS和PowerPC) |
取代 | MS-DOS编辑器 |
类型 | 文本编辑器 |
许可协议 | 免费软件 |
网站 | www |
特点
记事本的特点是只支持纯文本。一般来说,如果把文本从网页复制并粘贴到一个文本处理软件,它的格式和嵌入的媒体将会被一起粘贴并且难以去除。但是,如果将这样一个文本先粘贴到记事本中,然后从记事本中再次复制到下最终需要的软件里,记事本将会去除所有的格式,只留下纯文本,在某些情况下相当有用。记事本几乎可以编辑任何文本文件,但仅限 DOS 风格的 CRLF 行尾(但自Windows 10 ver 1803开始,支持Unix/Linux/macOS的LF行尾)。
历史
早期的记事本只提供最基本的功能,例如文本寻找功能。较新版本的Windows所搭载的新版记事本可以支持寻找及取代功能,快捷键是(Ctrl + H),而Ctrl + F则是传统的寻找功能。在一些旧版的Windows中,例如Windows 95、Windows 98、Windows Me和Windows 3.1,其所内置的记事本有64k的文件大小的编辑限制,源自 Windows 的文本框控件的限制(此控件默认只能编辑 32767 个字符[1]);这一限制在 Windows XP 中已被克服。
Windows Me中,记事本仍不支持任何快捷键操作,亦不支持行数统计功能。从Windows 2000开始,一些普遍的功能开始有快捷键的操作,例如添加、打开和保存。同时,状态栏亦开始出现,有行数统计器,在自动换行功能取消时才会出现。
在Windows 95中,记事本只支持Fixedsys字体,到了Windows NT 4.0和Windows 98,记事本便开始支持字体变更。在Windows 2000和Windows XP中,缺省字体已变为Lucida Console。
在以Windows NT为基础的操作系统中,记事本可以编辑传统的 ANSI/MBCS 文本文件,同时支持Unicode文本文件(UTF-8和UTF-16,后者包括大头 / 小头字节序)。
记事本亦集成了一个简单的日志功能,每一次打开文件,都可以记下一个新的时间标签。要激活这个功能,在文档开头的第一行,必须是".LOG",不包括引号。[2]
直到最近,记事本仍然是一款只可以在Windows下运行的软件。但如果利用开源的ReactOS操作系统,并配合Wine,就可以在非微软的操作系统中,运行记事本。该软件是开源的,并且是GNU宽通用公共许可证的软件。
从Windows XP开始(Windows ME及Windows 2000未经确认)附带的记事本,若在自动换行功能打开时保存,且当前窗口内有任何行长度超过编辑窗口宽度,则保存后该行会如同在原自动换行位置插入硬回车一样“断开”,更改窗口宽度(无论是扩大还是缩小)便可发现此现象。但是,保存至文档中的内容并不会受到影响。
由于记事本无论是功能还是结构都相当简单(事实上它就是一个装在窗口里的多行文本框 + 菜单栏 + 工具栏 + 若干通用对话框),稍有经验的程序员都可以开发出与记事本功能近似的小软件,所以在一些编程语言工具书上也会出现仿照记事本功能作为参考的范例,有趣的是,记事本亦可用来撰写软件,但不包含程序的编译功能,编译程序仍得通过外部进程解决。
从Windows 10 ver 1803开始,支持Unix/Linux的LF行尾及macOS的CR行尾,亦即可正常显示在Linux、macOS下编辑的文本文件,但记事本缺省保存的文件仍使用CRLF行尾。[3]
在最新版的Windows 11中,记事本有了全新的外观。配合Windows 11整体的视觉风格,改以Fluent UI的形式设计记事本的全新接口,并加入深色模式,功能上大致无更动。是记事本自推出以来,外观上最大的改变。
Unicode格式bug
Windows NT、2000和XP版本的记事本能够识别缺乏字节序标记的Unicode文件。这个功能由名为IsTextUnicode()
的Windows API提供。[4]但是该功能存在一个缺陷,一些小写字体的ASCII文本会错误判断为UTF-16。[5]
在2006年5月18日,有报道称,对于一个含有类似“this app can break”这样短语的文档(甚至是类似“aaaa aaa aaa aaaaa”的简单短语),记事本会将其打开并显示为Unicode二进制文本。如果安装了相关中文本体则会显示二进制码所对应的汉字。造成这个错误的字符串可能形如“4个字母+空格+3个字母+空格+3个字母+空格+5个字母”,或者“4个字母+空格+5个字母+空格+5个字母+空格+5个字母”,并且文档末尾没有换行符。有人认为这是一个彩蛋,但也有人认为这是由于记事本的Unicode的检测算法缺陷所引起的。这个问题已在Windows Vista版本的Notepad中被修复。
另外,在中文简体环境下用ANSI(对于相应的ANSI变体,为GBK)保存的文档有时会被误认为Unicode编码。如在记事本中输入“联通”或“联系”并保存,再次打开的时候会显示乱码。这个问题已在Windows 8版本的Notepad中被修复。
竞争软件
对很多用户来说,记事本已被WordPad或其他的文本处理软件取代,例如Microsoft Word。但是,记事本打开一个文档并不需要加锁。即是就算已有其他软件,其他用户打开该文档,记事本都可以再次打开它。而WordPad就不可以。此外,由于记事本并没有高级的格式编辑功能,很多人都发觉记事本的简单外观,可以更有效处理基本的文本操作。而MS-DOS Editor文本处理软件,在Windows 95更新后,已成为一个MDI软件。它可以提供更多记事本没有的功能。
现在,有很多的第三方软件可以取代记事本。那些软件同时有更多功能,包括自由软件Notepad++和Notepad2,和免费软件AkelPad、TED Notepad、EditPad Lite或商业软件EmEditor等。
参考文献
- . [2016-01-01]. (原始内容存档于2018-05-09).
- . [2007-10-11]. (原始内容存档于2014-12-14).
- . www.oschina.net. [2018-05-11]. (原始内容存档于2019-08-16) (中文(中国大陆)).
- IsTextUnicode() at Microsoft.com URL last accessed July 3, 2006.
- "this api can break." (页面存档备份,存于) URL last accessed August 2, 2006.