5

一段时间以来,我一直在我的 Windows 机器上使用 UltraEdit。事实证明,使用熟悉的语言 (JavaScript) 编写脚本的能力非常有用。唯一的问题是我不能在我的 Linux 机器上使用它。是否有在 Linux 上运行并具有集成脚本引擎的类似文本编辑器?

不破坏银行并且跨平台会很棒。

编辑:虽然可录制的宏很棒,但我更多地使用脚本引擎。

4

14 回答 14

31

所有主要的开源编辑器和大多数其他编辑器都具有某种描述的脚本工具——一些(尤其是 Emacs)以它而闻名。唯一不会像pico 这样非常轻量级的。

vim具有本机脚本语言,也可以使用嵌入式Python、 TclPerl解释器构建,这些解释器可以通过插件机制对选择、缓冲区等进行操作。 Emacs完全是关于脚本的——它有一个内置于系统核心的 LISP 解释器,并且大部分编辑器都是用 LISP 编写的。有一个关于 emacs 的笑话将其描述为一个 LISP 解释器,有人碰巧用它来编写文本编辑器。

Vim 的用户界面源自 vi,它有点古怪,但一旦你习惯了它就会非常强大。它还特别好地录制了键盘宏,并具有非常好的正则表达式搜索/替换工具。

Emacs 被认为有点像巴洛克式的怪物,而且非常庞大和复杂。然而,它的脚本功能是首屈一指的,并且有各种各样的宏包可以做很多事情。它有一群非常忠诚的追随者;一旦您克服了学习曲线(网络上有大量资源可以帮助您解决此问题),它确实是一个非常强大的系统。您可以将 emacs 自定义为一个完整的 IDE,并且周围有人声称将大部分时间都花在其中。

这两个编辑器都可以在文本模式或 GUI 下工作,并且具有高度的可移植性,可在各种平台上运行。它们都是开源的。

我都用过;我曾经在 1990 年代使用XEmacs(可以追溯到几年前的 emacs 的主要代码分支),但后来又使用了 vim。我什至在 Windows 上使用 vim。

如果您觉得 Vim 或 Emacs 的用户界面有点过多,还有许多其他可用的文本编辑器,其中许多都提供脚本。其中的例子是SciTE,它有一个内置的Lua解释器,NEdit,它有一个自己的自制宏语言或GEdit,它基本上是用Python编写的(也可以用于编写脚本)并有一个插件 API。

编辑:在一些特定项目(例如Mozilla)之外,Javascript 作为独立或嵌入式脚本语言在开源圈子中从来没有受到太大的关注。从历史上看,没有一种流行的开源 Javascript 解释器能像 Python 或 Tcl/Tk 那样被广泛接受。Javascript 更广泛地用于封闭源代码系统,例如 UltraEdit 或 InDesign(仅举几例),而其他语言在开源项目中更受欢迎。

我所知道的开源文本编辑器都没有将 javascript 作为脚本语言的一个选项(如果您知道的话,请随意介入并评论或编辑)。您可能不得不将 Javascript 迁移到另一种语言,例如 Python 或 LISP。然而,现在 QT 带有一个 Javascript 解释器 (QTScript),您可能会发现一些基于 KDE 的解释器提供了它作为脚本选项,但我并没有特别意识到任何在我脑海中的东西。

于 2009-02-02T21:42:17.627 回答
4

emacs 是免费的,并且有自己的嵌入式 lisp 方言,几乎可以用来编写任何东西,包括轻量级脚本以及邮件用户代理和 IRC 客户端;-)

有一点学习曲线,但我对 emacs 的体验非常积极。我不太喜欢模态界面,并且没有其他编辑器将导航快捷方式放在您的手指下。

于 2009-02-02T21:18:55.523 回答
4

我使用jEdit,这是一个很棒的编辑器,允许使用 beanshell 编写脚本。由于它是用 Java 编写的,因此它在 Windows 和 Linux 下运行良好。

Simon Groenewolt 提到,存在一个插件 ( JavascriptShell ),它允许您在 Javascript 中编写宏和脚本,而不仅仅是在 Beanshell 中。

于 2009-02-02T21:20:15.690 回答
4

Vim 无处不在,vimscript 非常简单且面向文本编辑:http: //vimdoc.sourceforge.net/htmldoc/usr_41.html

这是默认的。你也可以使用 Python、Ruby、Perl、Scheme……但这需要编译。

Python 可能是一个不错的选择,因为omnicomplete 需要它。无论如何,我为omnicomplete运行一个单独的二进制文件,因为我喜欢超精益vim用于其他用途,请在此处查看:http: //vim.wikia.com/wiki/Compile_a_separate_copy_of_Vim_for_Python_coding

老实说,我没有使用 python 本身编写 vim 脚本。我通常使用 vanilla vim 编写代码,无论是否使用 python,并且没有自动完成功能。但是,我确实从 vim 调用 python 和任何其他命令来逐行处理我的文件,如果您有兴趣,可能会回复更多关于此的信息,但这不需要编译任何东西,按原样工作。

编辑:如果你想要一个点击式编辑器,你可以在 gVim http://cream.sourceforge.net/download.html上运行 Cream 我仍然认为 vim 需要一点时间来适应并且非常值得学习,更重要的是,考虑到您可以使用您的基本 vi 知识通过 SSH 连接到服务器没问题,并且它安装在任何 *nix 中。我喜欢我可以重复使用的知识,从长远来看可以节省我的时间和麻烦。

于 2009-02-02T21:43:34.847 回答
3

如果您不需要非常复杂的脚本,vim/gvim 允许您记录击键序列并播放它。并且您可以对播放进行重复计数,这样您就可以在一行上记录一个操作,然后一步一步重复接下来的 10,000 行。

于 2009-02-02T21:26:39.843 回答
3

哇,我真的不想在这里发动一场圣战,但是所有这些 Emacs 建议都没有抓住重点。Emacs 非常强大,但说实话。它不像学习墙那样有学习曲线。从像 UltraEdit 这样的点击式 IDE 风格的编辑器出发,将会产生巨大的文化冲击。

老实说,当有人说他们喜欢用 javascript 编写脚本并在 Linux 中寻找类似的东西时,你说的第一件事就是“学习 LISP”?!

这就是为什么人们认为 Linux 很难使用的原因


我将完全转向另一个方向并建议Aptana Studio

它具有针对多种语言的内置突出显示和代码完成功能,并支持使用Eclipse Monkey在 javascript 中编写脚本。它基于 Eclipse,因此在 java 上运行,因此是多平台的。它是免费提供的。

于 2009-02-02T21:50:55.940 回答
2

这有点陈词滥调,但是emacs。还是我误解了 UE 的脚本引擎是什么?

于 2009-02-02T21:17:38.160 回答
2

试试 Emacs,无论是 XEmacs 还是 GNU Emacs。

于 2009-02-02T21:18:32.793 回答
2

我使用gedit。你可以用 Python 编写插件。

于 2009-02-02T21:47:27.227 回答
2

Komodo Edit是在 Mozilla 的 XUL Runner 之上制作的。它提供了通过扩展(如 Firefox)或宏、片段、命令来扩展它的可能性。您可以用 JavaScript 或 Python 编写这些代码片段,这很好,但您仍然必须了解API才能做一些有用的事情。

它采用 Mozilla 技术构建,也可以在 Linux 上运行。

于 2009-02-02T21:56:46.070 回答
2

看起来Komodo EditSciTEEclipse Monkey是赢家。Komodo Edit 似乎与 Ultra Edit 最相似。SciTE 是我以前用过的东西,Lua 没那么难;SciTE 的 API虽然不像Komodo Edit 的 API那样广泛。Eclipse Monkey 是我肯定会使用的东西,但它需要 Eclipse,它绝对不是文本编辑器。

编辑:UltraEdit 即将推出 Mac 和 Linux。

于 2009-02-04T21:55:48.880 回答
1

在 Linux 中进行脚本文本编辑的传统方法是使用在 *nixes 中(几乎)一直可用的工具:sed、awk、grep 等。当然,它们可能看起来不像集成的 Javascript 引擎那样“方便”,但它们非常成熟并且运行良好。如果这种脚本语言必须在编辑器中,Emacs 在这里可能也是一个不错的选择。

正如许多其他人提到的那样,您可以使用“集成”类型的解决方案来解决问题,但恕我直言,命令行在这方面更强大。

于 2009-02-02T22:05:41.527 回答
0

SciTE可以使用Lua编写脚本,并且是一款出色、简单的编辑器,如果您每天在 Linux 和 Windows 之间切换,它的行为方式几乎相同。

于 2009-02-02T22:45:37.640 回答
0

我不知道您将编辑器中的脚本功能用于什么目的,但您可能需要考虑使用 Linux 命令行工具(例如sedawk )自动执行这些任务。

于 2009-02-03T11:42:55.857 回答