需要:Windows控制台文本编辑器

2020-06-28 22:57:00

自2012年左右以来,微软一直在推动无GUI运行Windows Server的概念,并通过PowerShell管理一切。我记得年复一年地坐在无数的TechED/Ignite会议上,我所能看到的是到处都是蓝色的PowerShell命令提示符。不再有向导和表单,基于MMC和GUI的管理突然成为过去。只需看看服务器核心、WinPE、Nano、PS Remoting、Windows SSH服务器、恢复控制台和紧急管理服务。甚至连System Center都是PowerShell的前端。如今,一切似乎都是文本模式。

总体而言,这是一个好消息,与前几代Windows相比有了很大的改进,但如果您需要创建或编辑PowerShell、CMD脚本或某个配置文件,该怎么办?

哎呀,看起来你完蛋了。看来雷蒙德忘了在sysadmin的工作中包括最关键的工具--一个简单的文本模式编辑器。微软是怎么回事?

那么,有没有第三方的替代方案呢?是的,而且有而且相当多!不幸的是,没有一个是完美的,而且大多数都是陈旧的,没有人维护。这篇文章的目的是对任何可用的东西进行一次盛大的参观。

请注意,在整篇文章中,我将反复提到“便携式”编辑器,对我来说,这意味着可以在USB笔驱动器或网络共享上随身携带的单个.exe文件。我也为64位Windows版本哭得很厉害,因为我经常在WinPE和其他无法使用syswow64的环境中工作。

首先,让我们从通过管道间众所周知的最明显的选择开始。如果您搜索Windows控制台编辑器,VIM和Emacs自然会首先出现,这些编辑器不需要任何介绍或赞扬。我每天使用vim,偶尔使用Emacs。从我记事起,这两款手机就有Windows接口,而且在质量和稳定性方面绝对名列前茅。问题是,这两个都是完全陌生的,对于典型的Windows用户来说根本无法使用,学习曲线相当陡峭。此外,至少对Emacs而言,可移植性受到了很大影响。这两个编辑器都有数百个支持文件,而且都很大。Emacs.exe二进制文件的大小高达83MB,为了以防万一,zip文件包含其中的两个。整个解压的文件夹大小为400MB。

幸运的是,Vim要好得多,您可以从包中提取单个vim.exe二进制文件并使用它,没有太多抱怨。

当谈到VI和Emacs时,很难不提到一些更有历史意义的版本。Emacs的弟弟MicroEmacs从最早的时候就可以在Windows上使用了。我不打算尝试链接到任何一个特定的,因为有这么多的味道。

Vim小哥VI也有不同的形状和形式。我们来看几个。

史蒂维是一个非常特殊的例子。有传言说,这个编辑器在Windows NT本身的开发中起到了至关重要的作用,或者从NT诞生之初就一直作为私有SDK的一部分使用。如果你曾经看过Windows的源代码,我打赌你可能会发现它埋藏在里面。因为它是由雷蒙德的人搬运的,所以质量应该是相当好的。不幸的是,自述文件声明“这是一个没有经过充分测试的不完整的VI。根据维基百科的历史注释,Stevie port to Amiga已经被Bram Moolenaar用作VIM的基本源代码。

一个特别有趣的例子是Watcom编译器套件中的VI编辑器。它有非常好的TUI,可以从MS-DOS编辑器中得知,语法突出显示和在线帮助。Windows上可用的最好的VI版本之一。小的,便携的,到处都是方便的编辑器。这可能是我在WinPE或Server Core上工作时的主要TO文本编辑器。不幸的是不太为人所知。我希望它能获得一些它应得的人气。

多亏了Federico Bianchi刚刚了解到有一个到Windows的BusbyBox端口,它同时具有32位和64位版本,100%可移植为一个单一的EXE文件!最重要的是,它包含一个能够理解窗口大小调整和Win32路径的vi编辑器。我会把这个留在身边。太棒了,忙得不可开交!作为最后的想法,我希望他们也包括Nano。

我不希望这篇文章都是关于VI和Emacs的克隆。让这个漂亮的颜色菜单成为更多本地Windows/DOS编辑器的一部分,至少远离核心按键和Unix。

对于主题的改变,让我们看看SemWare TSE Pro,它最初是DOS和OS/2的QEDIT编辑器。它拥有人们能想象到的文本模式编辑器的最先进功能。包括可调整大小的窗口、十六进制编辑器、宏和拼写检查器。我真希望我能在日常生活中使用它。不幸的是,TSE有一些缺点,它缺乏可移植的版本,安装也不是很麻烦。目前还没有x64版本,但是作者正在研究它。TSE不是免费的,许可证是45美元,但它允许你在任何需要的机器上安装。

下一个是简短的。它曾经在它自己的时代非常流行,并引发了相当多的追随者,因为有无数的编辑都是“简约风格”的。这是一个不错的基于小控制台的文本编辑器。它有两个版本,基本版(免费)和专业版(付费)。Pro版本支持拆分成多个windows regexp和unicode。不幸的是,它的售价为每个用户120美元,而且没有64位版本或便携版本。

还有一个叫做悲伤的Brief的开源克隆。翻阅手册,它有一套非常令人印象深刻的功能,包括120美元的窗口功能和宏。不幸的是,由于大量的DLL和其他文件,它相当不可移植。如果有人想要的话,可以做64位版本。

当我们谈论更便宜的选项时,有Kinesics文本编辑器(又名工具包)。“如果你在谷歌上搜索,它更广为人知,完全免费,安装后你可以找到一个x64二进制文件!例如,这使得它具有一定的可移植性,并且能够在WinPE中运行。直到最近,这个编辑器还没有64位版本,所以我没有机会在实践中使用它,但TUI似乎有一个很好用的好用(F1或鼠标右键单击会带来菜单)。它似乎没有任何先进的功能,但它非常稳定,并积极维护。坦率地说,这就是在控制台上进行编辑的关键所在。它实际上可能就是缺少的Windows控制台编辑器。

另一个是最低利润。它是完全开源的,在窗口和文本模式下都支持很多平台。它有很多有趣的功能,比如语法突出显示、拼写检查和菜单。它不容易移植,因为它需要大量自己脚本语言的文件。默认情况下没有Win64构建,但是可以使用Mingw64构建。我还发现屏幕刷新有点时髦。

让我们来看看有些广为人知的FTE。这是一个非常好的文本编辑器,可以在很多平台上使用,比如QNX、OS/2,当然还有Windows。它有漂亮的TUI,拆分窗口,语法高亮显示,折叠,书签和HTML创作工具等。总体来说,令人敬畏的编辑器只有在TSE上做不到。对NT控制台的支持从1997年开始提供。我最近修复了几个错误,并构建了一个64位便携式版本。

人们也不能忘记Borland Turbo C IDE。显然,作为常规编辑器的IDE有一个开源克隆,名为SETEdit。它是一个多平台编辑器,具有MS-DOS风格的窗口和菜单。语法突出显示宏和所有常规功能。看起来DOS版本可以在你编码时播放MP3歌曲。有一个使用BCPP创建的本机WinNT版本。要在Windows上运行,您需要安装DOS版本,然后覆盖DOS EXE文件WIN NT EXE。编辑器绝对令人敬畏,不幸的是,目前它不能以可移植的方式工作,并且没有x64二进制代码。然而,由于它是开源的,它很可能是可以制作的。

当谈到MS-DOS风格的窗口时,诺顿司令官就像文件管理器一样浮现在脑海中。有一个专门为Windows构建的软件--Far Manager。由WinRAR的作者编写,最初是共享软件,但自2007年以来一直在BSD许可下发布。FAR确实附带了一个内置的文本编辑器,因此这里有它的特色。它得到了积极的支持和开发,而且因为它是完全为Windows设计的,所以在本文的所有应用程序中,它可能是最稳定和最值得信赖的。我通常不经常使用它,但当我需要从Windows控制台做更多繁重的工作时,我确实会在周围放一份它的副本。默认情况下是64位二进制文件,但不幸的是,FAR很难使其可移植,因为它附带400个文件。

当谈到诺顿指挥官克隆时,让我们不要忘记午夜指挥官,它确实有一个非官方的本地Windows控制台版本,名为mcwin32。与FAR类似,MC有一个非常好的内置文本编辑器。总体而言,MC看起来要好得多,但是因为它是多平台的,而不是特定于Windows的,并且没有官方支持,所以我不太信任它的日常使用。

当谈到Unix的话题时,让我们来谈谈GNU Nano。在它的原生环境中,它是非常受欢迎和稳定的编辑器,这使得它成为文本模式控制台的完美选择。不幸的是,Windows端口缺少相当多,特别是在调整窗口大小或处理文件名等方面。官方版本看起来像融合了Cygwin,mingw,pdcurses和其他可怕的东西。Mingw/MSYS附带的版本不可移植,到目前为止,我尝试手动构建静态Windows二进制文件失败了。不幸的是,Nano的前身UW Pico从来没有控制台终端Windows端口。Pine的作者决定使其成为半图形应用程序,具有自己的窗口、菜单和按钮。对皮科和纳诺来说都是个悲伤的故事。希望有一天有人能开发出100%的原生Windows端口。

另一个带有Windows控制台端口的非vi和非emacs Unix编辑器是jed。坦率地说,我在过去使用Jed的次数不多,尽管我在90年代使用过它。这是JED编辑器的原始网页。它似乎确实有菜单和多窗口。不幸的是,它看起来不像是很容易制作成便携图像的。

另一个更晦涩难懂的编辑器是ED-NT,它是DEC EDT克隆。不幸的是,似乎完全死了,无人维护。资源仍然可以通过Archive.org获得,所以如果有人想在Windows上使用EDT编辑器,也许仍然可以照看。

在通过Archive.org浏览晦涩难懂的内容时,人们还可以提到ZABED,更具体地说是Z95,它是一个32位的控制台版本。我对编辑器一无所知,尽管有pdf手册可用,但我有点太懒了,不想广泛使用它。可能有点太老了,太不知名了,不适合日常使用。

也许对一个凡人来说更默默无闻的是赫斯林编辑,也就是那个。它基于VM/CMS编辑器XEDIT。我曾在90年代初短暂地使用过VM/CMS和XEDIT,但我从未如此喜欢过它。作为本机Win32二进制文件传入。不容易移植,因为它需要一些额外的文件。也没有64位二进制,但源代码可用。

多亏了安德烈亚斯·科尔,我了解到了X2程序员编辑器,它也有NT控制台版本。这个编辑器看起来很不错,有广泛的帮助,语法突出显示等。不幸的是,我以前从来没有用过这个编辑器。最后一个版本是在2008年发布的,虽然时间不长,但遗憾的是此后一直没有更新。我希望作者继续维护它。

安德烈亚斯还提到了个人编辑器,名为PE32和PE64。看起来像是专门为Windows设计和开发的维护良好和稳定的编辑器。64位版本真的很酷,但是编辑器似乎不是便携的,40美元的许可证可能会阻止我在需要它的环境中专业地使用它。尽管如此,看起来还是像是一位非常优秀的编辑!

另一个发现是E3编辑器。很有趣的东西。它是用汇编语言编写的,可以在许多操作系统上使用,包括DOS和Windows。看起来它仍然保持着2016年发布的上一个版本。它通过重命名或链接主可执行文件来支持多种模式,Wordstar、Emacs、Vi、Pico和Nedit。它绝对是便携的,因为它不需要任何额外的文件,而且可执行文件只有20KB(以emacs为例!)。不幸的是,由于汇编器的原因,我认为短期内不会有64位版本。总体而言,把这个留在身边看起来真的很酷。

一个非常酷的最后一刻发现是公共领域的TDE--汤姆森-戴维斯编辑器。它在2007年发布不久,拥有16位32位DOS和32位Windows控制台可执行文件。它有DOS风格的菜单、语法突出显示、可调整大小的窗口和一系列其他功能。看起来是个非常好用的编辑器。我不知道我是怎么错过的。因为源代码是可用的,所以我能够进行x64构建。这真的是未经测试的,所以使用风险自负!

还有一个最近推出的名为Aurora的查找共享软件编辑器。我过去从来没有机会用过它,但在快速旋转后,我爱上了它。文本模式的用户界面感觉就像是它自己的窗口操作系统!Win32端口最初适用于DOS、Unix和OS/2,是相对较新的端口。不幸的是,它不再得到维护,甚至不再出售。这是非常可悲的,因为编辑非常酷。我希望作者可能愿意发布源代码,这样它就可以得到维护。

多亏了理查德·威尔斯,我了解了OSPlus文本编辑器。这是一个非常酷的小编辑器,有Borland风格的TUI和多窗口。它似乎没有任何高级功能,但它确实有一个内置的计算器,并允许WAV和MID的背景播放。还允许使用Microsoft Office转换器将各种格式(如Word、Write或RTF)转换为文本。如果您需要在文本控制台上阅读基于Word的文档,则非常酷。遗憾的是,该应用程序似乎不再进行维护。我猜如果运气好的话,64位版本可以用Mingw64或MSVC编译。

最近也学到了HT。它更适合用作二进制/exe/十六进制编辑器和分析器。不过,它似乎有一个出色的纯文本编辑器,带有HTML和C语法突出显示。它没有非常高级的功能,但有一点很突出,那就是非常详细的更改日志,很像Photoshop History。它会向您显示具体更改了哪些内容以及更改的顺序。在对一些重要文件进行大量编辑时,这是相当酷的。最新版本是2015年的,是100%便携的单机可执行文件。不幸的是,没有x64,但我想用Mingw64构建一个应该很容易。

只是在新鲜的“重新发现”-微软编辑器。该编辑器是Mark Zbikowski将Z编辑器移植到MS-DOS的Win32端口。它与微软C++作为M、MEP和OS/2 SDK作为SDKED一起被广泛使用。令人震惊的是,看起来Windows NT从最早甚至更早的时候就有了控制台模式的文本编辑器。Win32控制台模式MEP.EXE包含在Windows NT预发行CD中以及后来的官方Windows NT/2000 SDK中,隐藏在人们的视线中。只有当Microsoft将此编辑器包含在Windows本身中时,世界才会完全不同。我最近把它从SDK中挖掘出来,并在这里提供。这里还有其他版本(包括x64)。有一篇专门的博客文章是关于这件事的。

与许多商业编辑器一样,Z有一个开放源码版本,名为K_Edit。它是用C++和Lua编写的从头开始的现代重新实现。它只构建在64位Windows上,可能没有其他版本。到今天为止,K的作者还没有提供现成的二进制文件,但是我能够自己制作一个。

读者Tbrdlph向我推荐了一位名叫TextaDepartment的相当新鲜的编辑。它是跨平台的,既有GUI编辑器,也有TUI编辑器。Windows控制台版本使用Curses,但它执行得非常好。它有一种现代程序员文本编辑器的外观和感觉,带有语法突出显示、行号等。由于zip存档附带了400多个文件,所以它相当不便于移植。此外,似乎没有Windows 64位版本,尽管有一个针对Linux的版本。这个应用程序似乎维护得很好,最新版本是从2018年1月开始发布的!

读者安德烈亚斯·科尔(Andreas Kohl)提到了SlickEdit,这是DOS、OS/2和Windows控制台的文本模式编辑器(在Visual SlickEdit窃取它的名字之前)。根据该公司员工的说法,一些Windows NT团队成员使用OS/2版本的编辑器来开发他们的操作系统。早期,SlickEdit CTO前往雷德蒙德,将应用程序移植到一个几乎无法正常工作的NT控制台系统,以便开发人员可以使用本地开发环境。SlickEdit很可能是Windows NT的第一个商业应用程序。它有386、Alpha、MIPS和PowerPC版本。我希望能拿到旧的评估复印件。到目前为止,我得到了这样的截图:

最后但并非最不重要的是,这个街区的新成员是Micro。它是一个适用于所有平台(包括Windows)的现代编辑器。它看起来真的很酷,似乎有来自Sublime Text或Atom等编辑器的所有最新便利设施。多窗口、语法突出显示,甚至它自己内置的用于运行子shell的终端仿真器。Micro是100%可移植的,并且以单个x64exe文件的形式提供。它有10MB大小,但我认为值得保留。不幸的是,它没有内置的文件浏览器。是的,有插件,但是我不知道怎么用。Windows样式路径名似乎也有问题。然而,我真的很高兴最近开发了一个新的编辑器。它很有可能成为未来缺失的Windows文本模式编辑器!绝对值得关注。

有了这个积极的消息,是时候结束了。总而言之,目前还没有完美的Windows文本模式编辑器。我希望有一天微软能站出来提供一个。同时,我通常会继续使用OpenWatcom VI和Far Manager。对于那些不想学习VI的人来说,Kinesics Kit可能在短期内是最完美的编辑器,在未来可能是最完美的编辑器。我也希望有人能用原生Win32API做一个很好的GNU Nano移植,而不用去pdcurses和cygwin。

感谢您的所有建议!我有没有忘记或错过任何编辑?请告诉我,我会立即将其添加到列表中!注意:请不要包括在Cygwin下工作的编辑器。