您能否为开发人员推荐一个 GUI 文本编辑器(需要的功能在里面)?

Iva*_*van 3 development editors

F-cked 与所有 IDE 膨胀软件(对我来说它们都过于复杂和不方便),我想到了一个想法,我可能会比使用 IDE 更好地使用一个好的编辑器。

我不需要项目,我不需要构建管理(我更喜欢从命令行手动构建,并自己编写构建脚本),我不需要透视图、工作区、模块等。

我需要(按重要性降序排列)

  1. 漂亮的图形用户界面。(我很遗憾地说这是第一要务,但这是我的口味,没有它我会感到不舒服并且效率低下)。请不要提供 VIM(没有 GUI)或 [X]EMACS(有丑陋的 GUI)。没有奇怪的键方案(像 VIM 那样),没有命令模式(或者在编辑器的使用中可选地启用和不重要)等。

  2. 在任何语言中手动定义的可折叠区域(如在 c# 中)(由特殊宏定义,由(任何语言的)注释转义)。这是最重要的要求。如果我找到一位编辑与第一个同时满足这一点,我已经很高兴了。在 Windows 中,据我所知,UltraEdit 曾经有这个功能,但我不确定(更新:现在我安装了 UEx anc 在那里找不到这样的功能)。

  3. 简单但瑞士钟表可靠的重构,更好的说法是“多文件搜索和替换”。

  4. 语法高亮。

  5. 对应的开/关括号/大括号/标签/引号/等。对突出显示。

  6. 自动完成。可能很简单,基于字典。如果它可以作为 IDE 工作,会非常好,在我放一个点并按 Ctrl+Space 后向我展示班级成员,但是如果有 1-4 个功能,我可以承受缺少这个功能。

  7. 代码片段/宏。

第2点的解释:

熟悉 C# 的人可能知道 #region/#endregion 指令。我可以将它们放在代码中的任何位置,编辑器将提供一个选项,将分隔的块折叠成一行(将标题指定为起始指令参数)并根据需要展开它(就像大多数现代编辑器可以用语言做的那样)块,例如函数体,但我希望能够使用我想要的任何特定代码块来做到这一点)。

恕我直言,它可以很容易地为任何语言实现(在编辑器中,已经为语言块实现了代码折叠),不需要语言语法分析。编辑器可以提供定义指令语法的区域,通过语言的注释行语法转义这些指令。

例如,NetBeans IDE 具有针对 Java 的此功能,此处有详细描述:http : //wiki.netbeans.org/FaqCustomCodeFolds 但不幸的是,在 NetBeans 中,此功能仅适用于 Java(也许还有其他一些)语言,并且例如,不适用于 Scala。

我主要编写 Scala 代码,但是,正如我所写的,我希望并且看不到任何原因为什么不能将其作为与语言无关的功能提供 - 如果该行包含“(无论)#region” -这是一个可折叠的区域开始,如果该行中的“#region”之后有一些东西 - 这是区域标题,如果该行包含“(无论)#endregion” - 这是区域结束。只需找到一个开始和相应的结束并折叠它。用户可以用任何特定的语言注释符号替换“(随便)”。

更新:找到答案(只是为了总结并以更翔实的形式分享答案,我将其包括在此处):

有很多很好的建议(我将尝试使用 SciTE,并在心情愉快时尝试学习 EMACS 和 VIM)。我自己在谷歌上搜索我还发现了一个有趣的E-TextEditor(一个基于 wxWidgets 的开源(意味着跨平台,成功地在 Fedora 10Ubuntu 9.04构建和安装它)Mac 的TextMate Windows 克隆)。

但是,由于fschmitt 的 建议,现在的答案是Kate

为了得到我对 Scala 的观点 #2(上面,在问题中)(很容易适应任何其他语言,就像我解释的那样),我只需要在“/usr/share/kde4/apps/katepart/语法/scala.xml”:


<RegExpr attribute="Decimal" context="#stay" String="//#region.*$" beginRegion="Region1"/>
<RegExpr attribute="Decimal" context="#stay" String="//#endregion.*$" endRegion="Region1"/>

我从 C# 语法定义文件 cs.xml 中获得了这个想法。唯一的技巧是为了让这个注释辅助 hack 工作,这些行将被放置在定义语言注释的行之前。

还有一个惊喜:Kate 并不像我以前想象的那样依赖大量的 KDE 库——在经典(Gnome)Ubuntu 10.10 中,“apt-get install kate”只下载了一个不起眼的(小于 MiB)包。

tan*_*nte 6

我知道你说过你不想要时髦的热键,但从你想要的角度来看,它确实听起来像是 GVIM 的功能列表。也许值得用它vimtutor来了解为什么 (G)vim 像它那样工作。一开始我也很害怕,但现在我不想回去了。


fox*_*fox 5

我不知道您的所有要求,但是您应该检查并尝试的两个项目是GeanySciTE

这两个项目采用轻量级但功能强大的编辑器,使事情变得简单。