带脚本的文本编辑器...适用于Linux

时间:2009-02-02 21:14:48

标签: javascript linux scripting cross-platform text-editor

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

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

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

14 个答案:

答案 0 :(得分:30)

所有主要的开源编辑器和大多数其他编辑器都有一些描述的脚本设施 - 有些(特别是Emacs)因此而闻名。唯一不像pico.

那样非常轻量级的

vim有一个native scripting language,也可以使用嵌入式Python, TclPerl个互补网构建,可以通过插件对选项,缓冲区等进行操作机制。 Emacs完全是关于脚本编写的 - 它有一个内置于系统核心的LISP解释器,大部分编辑器都是用LISP编写的。关于emacs的一个流行笑话将它描述为一个LISP解释器,有人恰好用它来编写文本编辑器。

Vim的用户界面来自vi,这有点古怪但是一旦你习惯它就非常强大。它还可以很好地记录键盘宏,并且具有非常好的正则表达式搜索/替换功能。

Emacs被认为是一种巴洛克式的怪物,非常庞大而复杂。但是,它的脚本功能是首屈一指的,并且有enormous variety of macro packages可以完成很多事情。它有一个非常忠诚的追随者,他们发誓;一旦你已经超越了学习曲线(网上有大量资源来帮助解决这个问题),它确实是一个非常强大的系统。您可以将emacs自定义为整个IDE,并且周围有人声称他们花费了大部分时间。

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

我用过两者;我曾经在20世纪90年代使用XEmacs(可以追溯到几年前的emacs的主要代号),但后来又去了vim。我甚至在Windows上使用vim。

如果您发现Vim或Emacs的用户界面有点过多,则可以使用variety of other text editors,其中许多都提供脚本。这些例子是SciTE,它有一个内置的Lua解释器NEdit,,它有自己的自制宏语言或GEdit,它基本上用{Python编写。 3}}(也可用于编写脚本)并有一个插件API。

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

我所知道的所有开源文本编辑器都没有将javascript作为脚本语言的选项(如果你知道的话,可以随意介入并评论或编辑)。您可能不得不将Javascript移到另一种语言,如Python或LISP。但是,现在QT附带了一个Javascript解释器(QTScript),你可能会发现一些基于KDE的解释器提供了这个作为脚本选项,但我并没有特别注意到这一点。

答案 1 :(得分:4)

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

有一点学习曲线,但我对emacs的体验非常积极。我不太喜欢模态接口,也没有其他编辑器将导航快捷键放在你的手指下。

答案 2 :(得分:4)

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

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

答案 3 :(得分: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脚本。我通常编码,python或不,与vanilla vim,没有自动完成。但我会调用python和vim中的任何其他命令来逐行处理我的文件,如果你感兴趣,可以回复更多关于它的内容,但这不需要编译任何东西,按原样工作。

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

答案 4 :(得分:3)

如果您不需要非常复杂的脚本,vim / gvim允许您录制击键序列并进行回放。并且您可以重复计数播放,因此您可以在一行上录制操作,然后一步重复下一行10,000行。

答案 5 :(得分:3)

哇,我真的不想在这里开始一场神圣的战争,但所有这些Emacs的建议都有点遗漏这一点。 Emacs非常强大,但说实话。它没有像学习WALL那样的学习曲线。从像UltraEdit这样的点击式IDE样式编辑器开始将是一个巨大的文化冲击。

老实说,当有人说他们喜欢用javascript编写脚本,并且正在寻找类似Linux的东西时,你首先要说的是“学习LISP”

这就是人们认为Linux难以使用的原因


我将完全朝另一个方向走,并建议Aptana Studio

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

答案 6 :(得分:2)

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

答案 7 :(得分:2)

尝试使用Emacs,XEmacs或GNU Emacs。

答案 8 :(得分:2)

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

答案 9 :(得分:2)

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

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

答案 10 :(得分:2)

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

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

答案 11 :(得分:1)

在Linux中进行脚本文本编辑的传统方式是使用*几乎总是在* nixes中可用的工具:sed,awk,grep,这种性质的东西。当然,它们可能看起来并不像人们可能找到一个集成的Javascript引擎那样“方便”,但它们非常成熟并且运行良好。如果这个脚本语言必须在编辑器中,那么Emacs在这里也可能是一个很好的。

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

答案 12 :(得分:0)

SciTE可以使用Lua编写脚本,并且是一个好的,简单的编辑器,如果您每天在Linux和Windows之间切换,其行为方式大致相同。

答案 13 :(得分:0)

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