Eclipse的Bash脚本插件?

Eclipse有没有像样的bash插件? 我唯一的要求是语法高亮。 我search了一下,但没有看到任何看起来像 bash插件”的东西。

ShellEd看起来很有希望,语法突出,并有积极的评论,虽然我没有尝试过自己。 它被红帽公司批准用于发行。 Eclipse网站上的ShellEd插件页面上有更多的信息,以及他们wiki上的安装说明 。

请注意,如果您没有运行最新版本的Eclipse(截至撰写本文,Juno),则需要使用旧版本,例如2.0.1与Indigo兼容。

编辑 (8/3/2013):使用http://sourceforge.net/projects/shelled/files/shelled/update/最新版本;

编辑 (2/25/2013):无需在Eclipse 4.2.1上安装shell 2.0.2的linux工具。 另外,不需要下载zip文件。 这是2.0.2版的更新站点: http : //sourceforge.net/projects/shelled/files/shelled/ShellEd%202.0.2/update/

旧post:

我也喜欢Shelled。 如果现在安装它,则需要下载zip文件并在Eclipse中的安装新软件向导中指向它。 你还需要安装man插件

 http://download.eclipse.org/technology/linuxtools/update 

Bash版本3的debugging器(Bourne再次shell)。
Eclipse的插件。 只能使用shell脚本编辑器ShellEd。 basheclipse

只要按照ShellEd的InstallGuide的官方说明进行操作即可

免费的EclipseColorer编辑器可以为bash脚本进行语法高亮显示。

但是,它不使用Eclipse的“大纲视图”,也就是说它没有用函数定义列表填充它。 有时候语法突出显示只是停在脚本的中间。 然后重新打开脚本有帮助。

炮轰

下面的解决scheme如何安装ShellEd不适合我。 很多依赖的错误。 find适合我的解决scheme。

系统:

Linux Lubuntu 12.04

IDE:

Eclipse开普勒

在Eclipse中,转到帮助>安装新软件

点击添加…

添加以下位置, http://download.eclipse.org/releases/kepler ,并将其命名为“Eclipse Kepler”。

点击OK。

select新创build的Eclipse Kepler站点。

展开底部的Web,XML,Java EE和OSGi企业开发部分。 selectWST服务器适配器。

点击“下一步”,像往常一样安装。

重新启动Eclipse

然后像上面列出的那样添加ShellEditor: http : //sourceforge.net/projects/shelled/files/shelled/update/

并安装它。

重新启动Eclipse。

在Eclipse Indigo中也可以这样说: http : //docs.wraithmonster.com/install-shelled

请享用 :)

我会在这里复制一个很好的教程,因为我失去了这篇文章,并花一些时间再次find它!

使用Colorer库将新语言的语法高亮添加到Eclipse

假设你有一个包含Eclipse不支持的编程语言(例如D / Iptables或其他脚本语言)的语法和词法结构的HRC文件。

使用EclipseColorer插件,您可以轻松地添加对它的支持。

转到帮助 – >安装新软件,然后单击添加。在名称字段中写入着色器和位置字段中写入http://colorer.sf.net/eclipsecolorer/

select刚添加的项目:combobox,等待组件列表填充,然后单击全选

单击下一步并按照说明操作

一旦插件安装完毕,closuresEclipse。

将您的HRC文件复制到[EclipseFolder] \ plugins \ net.sf.colorer_0.9.9 \ colorer \ hrc \ auto \ types

[EclipseFolder] = /home/myusername/.eclipse

使用你最喜欢的文本编辑器打开

[EclipseFolder] \插件\ net.sf.colorer_0.9.9 \ colorer \ HRC \汽车\ empty.hrc

添加适当的原型元素。 例如,如果你的HRC文件是d.hrc,那么empty.hrc将如下所示:

 <?xml version="1.0" encoding='Windows-1251'?> <!DOCTYPE hrc PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN" "http://colorer.sf.net/2003/hrc.dtd" > <hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd" ><annotation><documentation> 'auto' is a place for include to colorer your own HRCs </documentation></annotation> <prototype name="d" group="main" description="D"> <location link="types/d.hrc"/> <filename>/\.(d)$/i</filename> </prototype> </hrc> 

保存更改并closures文本编辑器

打开Eclipse并转到窗口 – >首选项 – >常规 – >编辑器 – >文件关联

在“文件types”部分中,单击“添加”,然后填写相应的文件types(例如.d)

单击确定,然后单击列表中新添加的条目

在关联的编辑器部分中,单击添加…,select着色器编辑器,然后按确定

好吧,难的部分是你必须学习HCR语法。

你可以看看

[EclipseFolder] /net.sf.colorer_0.9.9/colorer/hrc/common.jar

学习如何做,并探索许多其他hcr的文件。 在这一刻,我没有find任何文件。

我的礼物是一个基本的和不完整的iptables语法亮点。 如果你改善,请与我分享。

 <?xml version="1.0" encoding="Windows-1251"?> <!DOCTYPE hrc PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN" "http://colorer.sf.net/2003/hrc.dtd"> <hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd"> <type name="iptables"> <annotation> <develby> Mario Moura - moura.mario gmail.com</develby> <documentation>Support iptables EQL language</documentation> <appinfo> <prototype name="iptables" group="database" description="iptables"> <location link="iptables.hrc"/> <filename>/\.epl$/i</filename> </prototype> </appinfo> </annotation> <region name="iptablesTable" parent="def:Keyword"/> <region name="iptablesChainFilter" parent="def:Symbol"/> <region name="iptablesChainNatMangle" parent="def:NumberDec"/> <region name="iptablesCustomDefaultChains" parent="def:Keyword"/> <region name="iptablesOptions" parent="def:String"/> <region name="iptablesParameters" parent="def:Operator"/> <region name="iptablesOtherOptions" parent="def:Comment"/> <region name="iptablesMatchExtensions" parent="def:ParameterStrong"/> <region name="iptablesTargetExtensions" parent="def:FunctionKeyword"/> <region name="pyComment" parent="def:Comment"/> <region name="pyOperator" parent="def:Operator"/> <region name="pyDelimiter" parent="def:Symbol"/> <scheme name="iptablesTable"> <keywords ignorecase="no" region="iptablesTable"> <word name="mangle"/> <word name="filter"/> <word name="nat"/> <word name="as"/> <word name="at"/> <word name="asc"/> <word name="avedev"/> <word name="avg"/> <word name="between"/> <word name="by"/> </keywords> </scheme> <scheme name="iptablesChainFilter"> <keywords ignorecase="no" region="iptablesChainFilter"> <word name="FORWARD"/> <word name="INPUT"/> <word name="OUTPUT"/> </keywords> </scheme> <scheme name="iptablesChainNatMangle"> <keywords ignorecase="no" region="iptablesChainNatMangle"> <word name="PREROUTING"/> <word name="POSTROUTING"/> <word name="OUTPUT"/> </keywords> </scheme> <scheme name="iptablesCustomDefaultChains"> <keywords ignorecase="no" region="iptablesCustomDefaultChains"> <word name="CHTTP"/> <word name="CHTTPS"/> <word name="CSSH"/> <word name="CDNS"/> <word name="CFTP"/> <word name="CGERAL"/> <word name="CICMP"/> </keywords> </scheme> <scheme name="iptablesOptions"> <keywords ignorecase="no" region="iptablesOptions"> <word name="-A"/> <word name="--append"/> <word name="-D"/> <word name="--delete"/> <word name="-I"/> <word name="--insert"/> <word name="-R"/> <word name="--replace"/> <word name="-L"/> <word name="--list"/> <word name="-F"/> <word name="--flush"/> <word name="-Z"/> <word name="--zero"/> <word name="-N"/> <word name="--new-chain"/> <word name="-X"/> <word name="--delete-chain"/> <word name="-P"/> <word name="--policy"/> <word name="-E"/> <word name="--rename-chain"/> </keywords> </scheme> <scheme name="iptablesParameters"> <keywords ignorecase="no" region="iptablesParameters"> <word name="-p"/> <word name="--protocol"/> <word name="-s"/> <word name="--source"/> <word name="-d"/> <word name="--destination"/> <word name="-j"/> <word name="--jump"/> <word name="-g"/> <word name="--goto"/> <word name="-i"/> <word name="--in-interface"/> <word name="-o"/> <word name="--out-interface"/> <word name="-f"/> <word name="--fragment"/> <word name="-c"/> <word name="--set-counters"/> </keywords> </scheme> <scheme name="iptablesOtherOptions"> <keywords ignorecase="no" region="iptablesOtherOptions"> <word name="-v"/> <word name="--verbose"/> <word name="-n"/> <word name="--numeric"/> <word name="-x"/> <word name="--exact"/> <word name="--line-numbers"/> <word name="--modprobe"/> </keywords> </scheme> <scheme name="iptablesMatchExtensions"> <keywords ignorecase="no" region="iptablesMatchExtensions"> <word name="account"/> <word name="addrtype"/> <word name="childlevel"/> <word name="comment"/> <word name="connbytes"/> <word name="connlimit"/> <word name="connmark"/> <word name="connrate"/> <word name="conntrack"/> <word name="dccp"/> <word name="dscp"/> <word name="dstlimit"/> <word name="ecn"/> <word name="esp"/> <word name="hashlimit"/> <word name="helper"/> <word name="icmp"/> <word name="ipv4options"/> <word name="length"/> <word name="limit"/> <word name="mac"/> <word name="mark"/> <word name="mport"/> <word name="multiport"/> <word name="nth"/> <word name="osf"/> <word name="owner"/> <word name="physdev"/> <word name="pkttype"/> <word name="policy"/> <word name="psd"/> <word name="quota"/> <word name="realm"/> <word name="recent"/> <word name="sctp"/> <word name="set"/> <word name="state"/> <word name="string"/> <word name="tcp"/> <word name="tcpmss"/> <word name="tos"/> <word name="u32"/> <word name="udp"/> </keywords> </scheme> <scheme name="iptablesTargetExtensions"> <keywords ignorecase="no" region="iptablesTargetExtensions"> <word name="BALANCE"/> <word name="CLASSIFY"/> <word name="CLUSTERIP"/> <word name="CONNMARK"/> <word name="DNAT"/> <word name="DSCP"/> <word name="ECN"/> <word name="IPMARK"/> <word name="IPV4OPTSSTRIP"/> <word name="LOG"/> <word name="MARK"/> <word name="MASQUERADE"/> <word name="MIRROR"/> <word name="NETMAP"/> <word name="NFQUEUE"/> <word name="NOTRACK"/> <word name="REDIRECT"/> <word name="REJECT"/> <word name="SAME"/> <word name="SET"/> <word name="SNAT"/> <word name="TARPIT"/> <word name="TCPMSS"/> <word name="TOS"/> <word name="TRACE"/> <word name="TTL"/> <word name="ULOG"/> <word name="XOR"/> </keywords> </scheme> <scheme name="iptables"> <inherit scheme="iptablesTable"/> <inherit scheme="iptablesChainFilter"/> <inherit scheme="iptablesChainNatMangle"/> <inherit scheme="iptablesCustomDefaultChains"/> <inherit scheme="iptablesOptions"/> <inherit scheme="iptablesParameters"/> <inherit scheme="iptablesOtherOptions"/> <inherit scheme="iptablesMatchExtensions"/> <inherit scheme="iptablesTargetExtensions"/> <!-- python operators : http://docs.python.org/ref/keywords.html --> <keywords region="pyOperator"> <symb name="+"/> <symb name="-"/> <symb name="*"/> <symb name="**"/> <symb name="/"/> <symb name="//"/> <symb name="%"/> <symb name="&lt;&lt;"/> <symb name=">>"/> <symb name="&amp;"/> <symb name="|"/> <symb name="^"/> <symb name="~"/> <symb name="&lt;"/> <symb name=">"/> <symb name="&lt;="/> <symb name=">="/> <symb name="=="/> <symb name="!="/> <symb name="&lt;>"/> </keywords> <!-- basic python comment - consider it everything after # till the end of line --> <block start="/#/" end="/$/" region="pyComment" scheme="def:Comment"/> <block start="/(u|U)?(r|R)?(&quot;{3}|&apos;{3})/" end="/\y3/" region00="def:PairStart" region10="def:PairEnd" scheme="def:Comment" region="pyComment" /> <!-- TODO: better scheme for multiline comments/docstrings --> <!-- scheme="StringCommon" region="pyString" /> --> <!-- python delimiters : http://docs.python.org/ref/delimiters.html --> <keywords region="pyDelimiter"> <symb name="+"/> <symb name="("/> <symb name=")"/> <symb name="["/> <symb name="]"/> <symb name="{"/> <symb name="}"/> <symb name="@"/> <symb name=","/> <symb name=":"/> <symb name="."/> <symb name="`"/> <symb name="="/> <symb name=";"/> <symb name="+="/> <symb name="-="/> <symb name="*="/> <symb name="/="/> <symb name="//="/> <symb name="%="/> <symb name="&amp;="/> <symb name="|="/> <symb name="^="/> <symb name=">>="/> <symb name="&lt;&lt;="/> <symb name="**="/> </keywords> </scheme> </type> 

在此之后,你必须将文件保存为iptables.hcr并添加到jar中:

[EclipseFolder] /net.sf.colorer_0.9.9/colorer/hrc/common.jar

基于: https : //ohadsc.wordpress.com/2012/05/26/adding-syntax-highlighting-for-new-languages-to-eclipse-with-the-colorer-library/

ShellEd是Eclipse的一个很好的插件。

这个链接帮助我安装它: http : //mattnorris.me/blog/install-eclipse-shelled-plugin/

脚步:

  1. 下载ShellEd: http : //sourceforge.net/projects/shelled/files/latest/download – 该文件是一个名为net.sourceforge.shelled-site-2.0.x.zip的压缩存档。

  2. 然后点击帮助>安装新软件…

  3. 点击右上angular的添加…。
  4. 点击存档…
  5. 导航到保存压缩归档文件net.sourceforge.shelled-site-2.0.x.zip的位置并select它。
  6. 点击OK。 (不要担心可选的Name字段,Eclipse会自动命名。)
  7. select新的Shell脚本checkbox。
  8. 点击下一步。
  9. 再次单击下一步。
  10. select“我接受许可协议的条款”。
  11. 点击完成。
  12. 重新启动Eclipse。

我尝试了ShellEd,但是它不会识别我的任何shell脚本,即使在我重启eclipse的时候也是如此。 我添加了ksh解释器,并将其设置为默认值,但没有任何差别。

最后,我closures了打开的标签,显示一个ksh文件,然后重新打开它。 这使它正常工作。 使用一段时间后,我也可以推荐它。

它适用于我在氧气。

1)转到帮助> Eclipse Marketplace …并search“DLTK”。 你会发现像“Shell脚本(DLTK)5.8.0”。 安装它并重新启动Eclipse。

(或者从这个网页拖放“安装”button到您的Eclipse: https : //marketplace.eclipse.org/content/shell-script-dltk )

Shell脚本(DLTK)

2)在Project Explorer> Open With> Other …中右键单击shell /batch file,然后selectShell脚本编辑器。 您还可以将编辑器与该扩展的所有文件相关联。

Shell脚本编辑器

现在有一个专门的bash脚本插件叫“Bash编辑器”。 在eclipse市场上有售:

Bash编辑器日志

在search“bash”时,您可以在https://marketplace.eclipse.org/content/bash-editor或市场客户端find它。;

该插件目前被标记为BETA,但是稳定。