Eclipse 的 Bash 脚本插件?

Eclipse 有没有像样的 bash插件?我唯一的要求就是语法突显。我谷歌了,但没有看到任何像 “ The” bash插件。

137048 次浏览

ShellEd 看起来很有前途,有语法突显,并且有积极的评价,尽管我自己还没有尝试过。Redhat 的发行版包含 批准。在 Eclipse 站点上有更多关于 ShellEd 插件页面的信息,在他们的 wiki 上有更多关于 安装说明书的信息。

注意,如果您没有运行最新版本的 Eclipse (在撰写本文时,是 Juno) ,那么您将需要使用较旧的版本,例如2.0.1与靛蓝兼容。

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

EDIT (2/25/2013) : 在 Eclipse 4.2.1上不需要为 shell 2.0.2安装 linux 工具。此外,不需要下载压缩文件。下面是 shelled2.0的更新站点: < a href = “ http://sourceforge.net/Projects/shelled/ShellEd% 202.0.2/update/”> http://sourceforge.net/projects/shelled/files/shelled/shelled%202.0.2/update/

老帖子:

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

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

只要按照 ShellEd 安装指南的正式指示

用于 Bash 3版本的调试器(Bash)。 < br/> 用于 Eclipse 的插件将只能用于 shell 脚本编辑器 ShellEd。 < a href = “ http://source/forge.net/project/bashellipse/”> bashellipse

免费的 abc0可以为 bash 脚本提供语法突显。

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

我试过 ShellEd,但它不能识别我的任何 shell 脚本,即使我重新启动 Eclipse。我添加了 ksh 解释器并使其成为默认解释器,但它没有任何区别。

最后,我关闭了打开并显示 ksh 文件的选项卡,然后重新打开它。这样才能正常工作。使用一段时间后,我也可以推荐它。

炮弹

下面如何安装 ShellEd 的解决方案对我来说不起作用。依赖关系上有很多错误。找到了适合我的解决方案。

系统:

Linux Lubuntu 12.04

IDE:

Eclipse Kepler 月食开普勒

在 Eclipse 中,转到 Help > Install New Software

点击添加..。

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

单击 OK。

选择新创建的 Eclipse Kepler 站点。

展开底部的 Web、 XML、 JavaEE 和 OSGi 企业开发部分。 选择 WST 服务器适配器。

单击 Next,然后像往常一样安装。

重启 Eclipse

然后添加 ShellEd 回购,同样如上所列: Http://sourceforge.net/projects/shelled/files/shelled/update/

然后安装。

重启 Eclipse。

也曾在 Eclipse 靛蓝工作,如图所示: Http://docs.wraithmonster.com/install-shelled

享受:)

我将在这里复制一个很好的教程,因为我失去了这篇文章,并采取一些时间来找到它再次!

使用 Colorer 库为 Eclipse 添加新语言的语法突显

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

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

转到 Help-> Install New Software 并单击 Add. 。 在“名称”字段中写入“颜色”,在“位置”字段中写入“食色”http://Colorer.sf.net/eclipsecolorer/

选择您刚刚在 with: 组合框中添加的条目,等待组件列表填充,然后单击 Select All

单击 Next 并按照说明操作

安装完插件后,关闭 Eclipse。

将您的人权委员会文件复制到 [ EclipseFolder ]插件 net.sf.color _ 0.9.9 color hrc auto type

[ EclipseFolder ] =/home/myusername/. eclipse

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

[ EclipseFolder ]插件 net.sf.color _ 0.9.9 color hrc auto 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>

保存更改并关闭文本编辑器

打开 Eclipse 并转到 Window-> Preferences-> General-> Editor-> File Associations

在文件类型部分,单击 Add. . 并填写适当的文件类型(例如.d)

单击“确定”并单击列表中新添加的条目

在相关联的编辑器部分,单击 Add. . ,选择 Colorer Editor 并按 OK

好吧,最难的部分是你必须学会 HELP 语法。

你可以进去看看

[ EclipseFolder ]/net.sf.color _ 0.9.9/color/hrc/common.jar

了解如何做到这一点,并探索其他许多人力资源的文件。在这一刻,我没有找到任何文件。

我的礼物是一个基本的和不完整的 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.color _ 0.9.9/color/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.shell-site-2.0.x.zip。

  2. 然后单击“帮助”> “安装新软件”..。

  3. 单击右上角的 Add... 。
  4. 点击存档。
  5. 导航到保存压缩的存档文件 net.sourceforge.shell-site-2.0.x.zip 的位置并选择它。
  6. 单击 OK。(不用担心可选的 Name 字段。 Eclipse 会自动命名它。)
  7. 选中新的 Shell 脚本复选框。
  8. 单击“下一步”。
  9. 再次单击“下一步”。
  10. 选择“我接受许可协议的条款”
  11. 单击 Finish。
  12. 重启 Eclipse。

对我来说在氧气方面很管用。

1) Go to Help > Eclipse Marketplace... 并搜索“ DLTK”。您可以找到类似于“ Shell Script (DLTK)5.8.0”的内容。安装并重新启动 Eclipse。

(或者将’n’drop“ Install”按钮从此网页拖动到 Eclipse: https://marketplace.eclipse.org/content/shell-script-dltk)

Shell Script (DLTK)

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

Shell script editor

现在有一个名为“ Bash 编辑器”的专用 Bash 脚本插件。 它可以在 Eclipse 超市买到:

Bash editor log

您可以在 https://marketplace.eclipse.org/content/bash-editor或市场客户端上搜索“ bash”时找到它。

这个插件也提供了一个调试器。在官方的 Bash Editor YouTube 播放列表中你可以找到一些关于使用的教程等。

PS: 我是上面提到的插件的作者