EMACS是2D命令行界面

2021-03-21 09:11:56

反对EMAC的最受欢迎的论点之一是它是“巨大的系统,缺乏体面的编辑”。促进了一些铁杆Emacs用户的“生活在emacs”的临时局的促进了这个论点更引人注目。首先浏览,使用ASINGE程序“一切”似乎与单奇咽部相矛盾,这使得撰写的单饰程序确切地撰写,而不是用于解决Sametime的许多复杂问题的单调系统。在本文中,我想争辩说,Emacs在很大程度上在其问题域中关注UNIX哲学:使用文本,andcan被视为命令LineInterface(CLI)的两个大部分版本。

这是UNIX哲学:写下一件事和做好事的程序。写下程序一起工作。将程序写入handletext流,因为这是一个通用接口。

许多CLI工具都支持时间的考验。像查找,Grep,AWK等程序对IT专业人士甚至不可或缺。它们是有效的,有时比他们的guicounterparts更多,因为诸如bash的命令行解释器提供了anen环境,他们可以一起组成,以完成任务工作者的原始设计者已经完成了。例如,通过kubectl,grep,awk和base64的组成,以下命令在名为nioctib-tech-ter-tls的kubernetes秘密中显示TLS.CRT证书的内容:

由于其缺乏结构,在程序之间使用文本流作为程序之间的界面肯定存在缺点。但是这种模式之后许多程序的永恒性以及它为CLI生态系统带来的繁荣被证明是设计选择的ITSEFFectiventive。文本可以通过人类和编程读取。它可以使用您选择的工具进行操作,打印,存储,删除,版本控制。对于不希望地需要结构化数据的程序,使用文本流作为界面提供最灵活性和可兼心性的。

然而,翻转侧是,对于需要结构化数据的程序,例如浏览器,图像查看器,音乐播放器等。它们的课堂版本通常成为Hobbyists的玩具,其受到不可选择的影响。

许多剪贴画的成功的另一个重要贡献者是他们生活在可编程环境中的事实。 inbash,程序可以从头开始写入或一起粘在一起使用的脚本。这使得CLI环境无限可扩展。通过“做一件事并做得好”的较小程序,正常工作完成更复杂的任务,它成为一个环境,增强了协同,生产力和创造力。

CLI(命令行界面)中的“线”一词环境inditicate其一个明确性。对于潜在地与(二维)文本文件进行互动的程序,EMACS提供具有类似类似特征的环环境,使CLI Enviornmentsucessful:通用文本接口和编程环境,可以实现无限的可扩展性。

自我描述为“一个可扩展,可自定义的,免费/ librey教科学家”,GNU Emacs'Sinfinite可扩展性通过称为ELISP的简洁完整的语言启用,该语言也用于编写大部分Emacs本身。这与Exammashash如何通过Bash脚本实现其可扩展性。就像在Bash环境下茁壮成长的大多数程序都是重点的,大多数流行的Emacs程序都是专注于Alwell的文本,如Magit和Org-Mode。他们还倾向于将非常与其他Emacs计划集成的,从而为CLI计划中的Synergy创建了Synergy。例如,您可以使用MAGIT查看Agit存储库的提交历史记录,直接跳转到提交的差异,并直行直接跳转到差异中的源代码。在以下示例中,源代码在Scala中写入,然后您可以通过LSP模式和LSP-Metals与Emacs的Exellent Scala支持进行编辑,这在MAGIT根本不了解的EMACS生态系统中,这是备注的。

如果Emacs是一个针对二维提示的程序的环境,它也超过了运行处理致电尺寸文本的程序。实际上,许多CLI工具如Grep,findand许多文件系统管理实用程序(Dired)都是Inelisp的,因此也集成到Emacs生态系统中。这是一个原因,如果你的主要工作流程是专注的文本,“起诉Emacs”可能不是一个可怕的想法,因为这项协同队的emacs计划产生了很多。

但是,这并不意味着一切都应该运行inemacs。 EMACS可能不是浏览Web(EWW)或聆听音乐(EMM)的最佳工具,只是Lynx等LakeCli工具,因为他们根本不会集中于他们的影响。 EMACS是“专家管理系统,缺乏一个体面的编辑”的论点试图作为一个整体瑞士军刀雄心勃勃,足以运行任何人。事实上,Emacs更像是一条拥有同一Unix哲学的二维刑事环境:使能简单,优雅的程序使用univeraline互相交互。