开头声明:本帖首发于linux.do,搬运过来稍作修改后发布,发帖是因为cudatext的开发者帮助小白制作了需要的插件,特按开发者的请求写文帮忙推荐,如果文章里有所冒犯,请多多见谅!!!
之前有坛友咨询有什么好用的文本/代码编辑器,跟帖里有推荐了cudatext,但是介绍相对简略,搜了一下论坛,还没有相关的推荐帖子。
小透明刚好用了半年,体验良好,就搜了一下网上的资料,做个汇总详细介绍一下。作为不懂编程的小白,很多编程相关的都不懂,如有弄错的地方,请多多包涵,也请各位坛友的多多指教!
考虑到有跨平台的需求,目前的跨平台编辑器基本上都是上百M起步的,而且在各种平台上都有相对明显的问题,在试用了一圈后,良好的编辑器只有KATE、VSCode、Sublime Text、Cudatext等几个少数可以选择,其中cudatext作为体积最小,对中文支持最友好,各项功能最方便的编辑器就成了不二之选。
首先是 cudatext 的官网:https://cudatext.github.io/
项目在GITHUB上的地址: GitHub - Alexey-T/CudaText: Cross-platform text editor, written in Free Pascal
下载地址(包含应用分发包和扩展分发包):https://sourceforge.net/projects/cudatext
官方论坛:synwrite.sourceforge.net/forums
小小吐槽一下,开发者这样搞的稍显繁琐啊!
这是开发者自己的简介:CudaText 是一个跨平台的文本编辑器,用 Object Pascal 编写。它是开源项目,可以免费使用,甚至可以用于商业。它启动得非常快:~0.3 秒,使用 ~30 个插件,在 CPU 上 Linux Intel Core i3 3GHz。它可以通过 Python 附加组件进行扩展:插件、linter、代码树解析器、外部工具。语法解析器功能丰富(支持 300+ 词法分析器),来自 EControl 引擎。
如上面所说, cudatext 是俄罗斯程序员 Alexey Torgashin 开发的一款开源的跨平台的自由编辑器,目前已经在 Windows、 macOS、 Linux、 HaikuOS、 FreeBSD 等多个平台上成功编译运行。 Alexey Torgashin 开发的目的是用来取代他原来开发的 synwriter。在很久之前, synwriter 也是文本编辑器领域的一流作品,但是比较遗憾的是架构比较老旧的32位程序,有许多新的技术无法跟进,所以在2014年 Alexey Torgashin 萌生了重新开发一款自由的,现代化的编辑器的想法。在参考了当时十分流行的 Sublime Text 后, cudatext 就此诞生了! cudatext 的名字来源于塞尔维亚语,含义是奇迹,可以看得出 Alexey Torgashin 对此抱了相当大的期望!
cudatext无须安装,采用的是压缩包作为分发方式,解压后双击主程序即可直接使用,压缩包在15m左右,解压后整个应用在30m左右,加上内置的几个插件总的是33m,在不安装第三方插件或者少量插件的情况下是1秒内启动,但因为是跨平台原因,如果装了大量的插件, cudatext 在 Windows 上初次启动时,会有一点延迟,1秒上下,尤其是30+m的拼写检查插件的话,启动速度会延迟至3秒左右。当然在初次启动过后,关闭再重新启动,速度就会恢复至1秒以内。如果需要控制启动时间的话,可以打开控制台,参考控制台里的启动日志来禁用或者卸载多余的插件的。注:禁用是由插件支持的,有需要可以去GitHub下载: GitHub - ildarkhasanshin/cuda_disable_enable_plugins: Plugin for CudaText. Quickly disable/enable plugins based on adding/removing a special file 'plugin_disabled' in plugin-dir.
cudatext 采用 Object Pascal 语言编写,使用的是作者自己开发的编辑控件,有着丰富的功能和高度可扩展性,作者在应用分发包中编写了极其详尽的 WIKI 百科介绍,在了解过它的各种接口后,可以自由定制自己想要的功能!它的插件是采用 Python 写的,覆盖了从代码分析、语法检查(CudaLint)到代码格式化(CudaFormatter)等多种工具,极大拓展编辑器功能。插件种类繁多,比如外部工具管理、项目管理、语言服务LSP、会话保存、宏录制以及拼写检查,甚至包含FTP面板,使得数据传输与管理无缝衔接。其他插件诸如颜色选取器、时间日期插入、备份文件创建、菜单自定义等,也提升了日常开发中的便利性。
cudatext 作为 Sublime Text 的开源替代,毫无疑问在各种设置项上也采用了 Sublime Text 的方式,但是在各种细节上又更胜一筹,目前各种设置项的介绍说明都已经支持多语言国际化,主程序是基于 JSON 的设置文件,在安装了中文翻译包和设置项编辑器插件后,可以一目了然的进行自由设置,无须为寻找中文介绍而烦恼。现在的 cudatext 国际化处理模式更为简洁了,将之前分散打包的翻译文件整合为了一个翻译包,使用户不再为寻找和安装界面、设置项、插件者三项的翻译文件而苦恼了。目前应用的官方扩展包内包含的大部分扩展插件的菜单和界面已经翻译为中文,再加上主程序界面和设置项的中文翻译,已经做到了90%的中文化了。cudatext目前的中文翻译是支持多用户接力协作的,如果有改进项,在改进后可以直接将翻译文件提供给开发者的,无须找到原译者授权。这是中文翻译文件反馈主题: CudaText Han language Mandarin Chinese Simplified Translation Update · Alexey-T/CudaText · Discussion #6061 · GitHub
它的 GUI 是基于 lazarus 开发的,几乎各种组件都支持定制,而且 lazarus 作为 Delphi 的免费开源继承者,功能 和 C# Winform 同样优秀,而且简单、开发快,更快响应,更低内存占用,不易破解。 cudatext 的各个组件都支持分离显示,而且可以高度自定义,由于 Alexey Torgashin 推崇 kiss 原则,所以 cudatext 的很多预置功能没在菜单上提供,使用时需要呼出命令面板,但是开发者同样提供了菜单和工具栏,快捷键编辑器插件,可以自由的修改菜单和工具栏,把隐藏功能添加到菜单或者工具栏上。此外还有项目管理、代码树和小地图功能,可以根据代码结构自动呈现函数、类以及其他模块的层级关系,帮助程序员快速定位并理解代码逻辑,都非常方便程序开发。 cudatext 不但支持多标签页,还支持多窗口模式,提供多种窗口放置选择,而且借助本功能还开发了对比插件,在目前的轻量级文本编辑器评测中,cudatext的对比功能达到了「字级对比」,是首屈一指的,几乎断崖式领先,可以参考网友太阳雨的评测: 几款文本编辑器横向比较 - tyysoft - 博客园
cudatext 的编辑器只支持2G以内的文本文件,秒开小文本文件,对于大文本文件,由于作者考虑到各种插件可能支持预设宏,有可能在加载中出现自动编辑的情况,所以禁止分段加载。大文本文件必须在加载完成后才支持编辑,加载会有一定的延迟。延迟速度视文件大小和电脑性能而定。编辑器支持列编辑和多选编辑,列编辑的默认快捷键是ALT键,多选编辑的快捷键是CTRL键,显示不可打印字符,如空格和制表符,便于精确编辑,现在已经支持使用不同的箭头符号来显示不同的换行符。目前唯二的遗憾是1.单行最大只支持1024个字符,超出1024个字符的话,会从行开头叠加上去,显示为重影,解决方案是开启自动换行;2.不支持多字体,开发者考虑到应用多字体会导致渲染速度延迟,暂不提供这一功能,但是在GitHub上的项目讨论区有用户给出了暂时的替代方案: CJK fallback font against code font · Alexey-T/CudaText · Discussion #6064 · GitHub
应用占用的内存测试,单独打开一个刚解压后的纯净应用,占用内存在38m,在安装了一些常用的插件后,应用占用内存在45m;打开一个小文本文件,内存上升到48m;打开一个500m的大文本文件,占用内存达到了1g;又重新启动测试了打开100个20kb-2m的文件,占用内存达到了275m;再重新启动测试了同时打开35个10-40m的大文本文件,占用内存达到了1.8g。占用内存这方面仅仅只做了一些简单的对比,主要是考虑到跨平台的文本编辑器中,其它的都是大体量的,相比 cudatext 没有任何优势,而单平台的各种文本编辑器中,如Notepad3、Notepad4、Notepad–、akelpad、everyedit等,大部分的内存控制都能做到极低,只有少部分占用量超出预料。大致可以下结论 cudatext 在内存占用方面相对而言没有优势。
在编辑方面, cudatext 还支持智能自动补全、标签完成、颜色代码高亮显示等功能,提升前端开发的效率。当鼠标悬停于图片标签、实体字符或颜色值时,会弹出相应的提示工具,增强代码阅读体验。代码折叠功能进一步改善了代码的可视化管理,使得大型代码文件的阅读和编辑变得更加高效。编辑器还可以添加插件来增强选择和转换、格式化功能,而且还支持编辑行高度自动居中功能。设置项处在设置了字符数提示线的情况下,还支持编辑行宽度的定制,可以让编辑器保持在适合阅读的宽度显示。
内置的查看器支持预览大文本文件和查看非文本文件,查看器支持分段加载,所以启动速度和大文本加载速度极快,可以在1秒之内打开。应用默认500m以上的大文本文件由查看器打开,但需要使用查看器打开的具体的文本大小可以在设置项中自定义。目前查看器只支持查看,不支持搜索、复制等功能和右键菜单,而且对行号的支持也不佳,开发者希望有用户能提供思路来帮忙改进这些功能。内置查看器的查看模式有4种,分别是纯文本查看器,UTF-16编码查看器,二进制查看器,十六进制查看器。查看器在启动时会有提示框,询问你需要用什么模式查看,如果想禁止提示的话,可以下载插件来屏蔽,具体的使用方法可见:wish,Could you consider adding the option to open the text viewer directly? · Issue #6067 · Alexey-T/CudaText · GitHub
除此以外,还有图片查看器,主要用于网页编辑使用,仅支持常见的图片格式,例如BMP、JP(E)G、PNG、GIF、WEBP等。
cudatext 的主题设置目前已经支持跟随系统自动切换深浅模式,而且设置项高度自由,全部可见界面都支持自定义。除了可以在应用内用主题编辑器设置外,还支持手动编辑,主题文件是纯文本,附带各种设置项的注释。命名模式为 *.cuda-theme-ui 的是整个应用的主题文件,而 *.cuda-theme-syntax 的是主题同步的语法高亮文件。
它的语法分析器功能采用的是正则表达式匹配的,有一定的难度,所以有需求的话,可以去 GitHub 上的项目反馈区找开发者定制,但是开发者在解决了反馈后,会希望满足了需求的反馈者能够提供推广介绍,当然这个不是必须的,尽力而为即可。
开发者在 cudatext 上大量应用了正则表达式,有部分设置项是采用的正则表达式匹配,除此之外还有搜索和替换功能也支持正则表达式来满足高级文本处理需求。
搜索和替换功能目前有多种方式,除了基础的在文档内搜索外,还有在文件内查找插件,可以批量查找多个文件内的关键词,并批量替换等等。
状态栏的默认设置比较简单,有高级需求的用户要自己定制,目前状态栏上的字符数统计设置需要自己添加前缀(字符数:/ Char:),设置项里的字符数统计是采用的16进制编码,只显示数字,没有前缀,千位分隔符和默认的宏隔离符都是逗号,容易混淆,需要自己修改。默认提供字符的二进制编码和十六进制编码,如需 UNICODE 编码和字符英文名,需要安装相关插件。
cudatext 除了常见的编程相关的插件外,还有大量的AI插件,支持本地模型,DeepL翻译,Discord状态,各种语言的在线解疑,AI聊天等,对于喜欢探索AI用途的用户来说,是必不可少的。
cudatext 的版本更新极其频繁,更新周期在一周到半个月,开发者非常热心友善,几乎24小时在线,能做到秒问秒答,有反馈必回应,有需求必解决。同样在GitHub的反馈区和论坛中,还有几位常驻用户协助处理用户遇到的疑难问题,随时提供解决方案。有的问题即使未能在当时解决的话,开发者也会尽可能会为反馈打上标签,在有灵感和思路之后尝试解决。
目前中文互联网上关于 cudatext 的介绍甚少,只有知乎上有一位早期的用户写过一系列简单的体验文章,然后就是 gitcode 的机器人搬运并翻译整理的GitHub反馈区的讨论贴。在其它的小篇幅介绍cudatext的帖子中,大部分都是简略说明,只有极少数用户偏重于自己的需求进行的评测,少有全面的介绍。这些帖子或者博客介绍的功能都比较偏早,少有近期增加的新功能或者新的体验介绍。小透明所以在整合提炼了一下,重新开篇帖子说明了使用后的体验。
保持友善,请勿键政!!!
17 个帖子 - 7 位参与者
