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

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

受够了所有 IDE 臃肿软件(就我的目的而言,它们都过于复杂且不方便),我想到了一个想法,我可能最好使用一个好的编辑器而不是 IDE。

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

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

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

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

  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 代码,但是,正如我所写的,我希望并且看不出有任何理由不能将其作为与语言无关的功能提供 - 如果该行包含“(whatever) #region” -这是一个可折叠区域的开始,如果该行中的“#region”之后有一些内容 - 这是区域标题,如果该行包含“(任何)#endregion” - 这是区域结束。只需找到一个起点和相应的终点并将其折叠即可。用户可以用任何特定的语言注释符号替换“(任何)”。

更新:找到答案(只是为了以更丰富的形式总结和分享答案,我将其包含在此处):

有很多很好的建议(我打算尝试SciTE,心情好的时候尝试学习EMACS和VIM)。谷歌搜索我自己也发现了一个有趣的电子文本编辑器(基于开源wxWidgets(意味着跨平台,已经成功构建和安装了它)在 Fedora 10 上在 Ubuntu 9.04 上) 麦克的文本伴侣Windows 克隆)。

但现在找到了答案,感谢弗施密特的 建议, 是凯特

为了得到我的观点#2(上面的问题)对于Scala(按照我解释的方式很容易适应任何其他语言),我只需在“/usr/share/kde4/apps/katepart/”中添加2行语法/scala.xml”:


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

我从 C# 语法定义文件 cs.xml 中获取了这个想法。唯一的技巧是,为了让注释辅助黑客发挥作用,这些行应放置在定义语言注释的行之前。

令人惊喜的是:Kate 并不像我以前想象的那样依赖大量的 KDE 库 - 在经典(Gnome)Ubuntu 10.10 中“apt-get install kate”只下载了一个简单的(小于 MiB)软件包。

答案1

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

答案2

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

两个都其中一些项目具有轻量级但实用的编辑器,使事情变得简单。

答案3

如果您喜欢 Ultra Edit,为什么不试试它的 Linux 版本呢?否则,你可以试试凯特。虽然我不知道它是否满足您的要求,但它是迄今为止我所见过的功能最丰富且可配置的现代 GUI 编辑器(除了您明确不想要的 Emacs)。

答案4

Eclipse 带有类似插件壳牌确实是一个不错的选择,杰尼效果也很好。

相关内容