web-dev-qa-db-ja.com

Eclipse用のBashスクリプトプラグイン?

Eclipse用のまともなbashプラグインはありますか?私の唯一の要件は、構文の強調表示です。グーグルで調べましたが、"the"bashプラグインのようなものは見ませんでした。

172
Stu Thompson

ShellEd は有望に見え、構文の強調表示を行い、肯定的なレビューがありますが、私はそれを試していません。 Redhatによるディストリビューションのインクルードでは 承認済み でした。 Eclipseサイトの ShellEdプラグインページ と、Wikiの インストール手順 にもう少し情報があります。

Eclipseの最新バージョン(この記事の執筆時点ではJuno)を実行していない場合、古いバージョンを使用する必要があることに注意してください。たとえば、2.0.1はIndigoと互換性があります。

140
ire_and_curses

編集(2013年8月3日): http://sourceforge.net/projects/shelled/files/shelled/を使用update / 最新バージョンの場合

EDIT(2013年2月25日):Eclipse 4.2.1にシェル2.0.2のLinuxツールをインストールする必要はありません。また、Zipファイルをダウンロードする必要もありません。 shelled 2.0.2の更新サイトは次のとおりです。 http://sourceforge.net/projects/shelled/files/shelled/ShellEd%202.0.2/update/

古い投稿:

Shelledも好きです。今すぐインストールする場合は、Eclipseの新しいソフトウェアのインストールウィザードでZipファイルをダウンロードしてポイントする必要があります。また、manプラグインをインストールする必要があります

http://download.Eclipse.org/technology/linuxtools/update
36

Bashバージョン3のデバッガー(Bourne again Shell)。
Eclipse用プラグイン。 ShellスクリプトエディターShellEdでのみ動作します。 basheclipse

13
avkosinsky

ShellEdのInstallGuide の公式の指示に従ってください。

11
user819893

無料の EclipseColorer Editor は、bashスクリプトの構文強調表示を行うことができます。

ただし、Eclipseの「アウトラインビュー」は使用しません。つまり、Eclipseには関数定義のリストが表示されません。スクリプトの途中で構文の強調表示が停止する場合があります。次に、スクリプトを再度開くと役立ちます。

7
knb

ShellEd

ShellEdをインストールする方法の下のソリューションは、私にとっては機能しません。依存関係に関する多くのエラー。私に合ったソリューションを見つけました。

システム:

Linux Lubuntu 12.04

IDE:

Eclipse Kepler

Eclipseで、[ヘルプ]> [新しいソフトウェアのインストール]に移動します

追加...をクリックします.

次の場所、 http://download.Eclipse.org/releases/kepler を追加し、「Eclipse Kepler」という名前を付けます。

OKをクリックします。

新しく作成されたEclipse Keplerサイトを選択します。

下部のWeb、XML、Java EEおよびOSGi Enterprise Developmentセクションを展開します。 WSTサーバーアダプターを選択します。

[次へ]をクリックし、通常どおりインストールします。

Eclipseを再起動します

次に、上記と同様にShellEdリポジトリを追加します。 http://sourceforge.net/projects/shelled/files/shelled/update/

そしてそれをインストールします。

Eclipseを再起動します。

ここで述べたように、Eclipse Indigoでも働いていました: http://docs.wraithmonster.com/install-shelled

楽しい :)

4
user3439968

私はこの記事を失い、再び見つけるのに時間がかかるので、ここで良いチュートリアルを再現します!

Colorerライブラリを使用してEclipseに新しい言語の構文強調表示を追加する

Eclipseがサポートしていないプログラミング言語(D/Iptablesまたはその他のスクリプト言語など)の構文と字句構造を含むHRCファイルがあるとします。

EclipseColorerプラグインを使用すると、簡単にサポートを追加できます。

[ヘルプ]-> [新しいソフトウェアのインストール]に移動し、[追加]をクリックします。[名前]フィールドにColorerを、[場所]フィールドに http://colorer.sf.net/eclipsecolorer/ と入力します。

作業で追加したばかりのエントリを選択します。コンボボックス、コンポーネントリストが表示されるのを待って、[すべて選択]をクリックします

[次へ]をクリックして、指示に従います

プラグインがインストールされたら、Eclipseを閉じます。

HRCファイルを[EclipseFolder]\plugins\net.sf.colorer_0.9.9\colorer\hrc\auto\typesにコピーします

[EclipseFolder] = /home/myusername/.Eclipse

お好みのテキストエディタを使用して開きます

[EclipseFolder]\plugins\net.sf.colorer_0.9.9\colorer\hrc\auto\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>

変更を保存し、テキストエディターを閉じます

Eclipseを開き、[ウィンドウ]-> [設定]-> [一般]-> [エディタ]-> [ファイルの関連付け]に移動します。

[ファイルタイプ]セクションで、[追加...]をクリックし、適切なファイルタイプ(たとえば.d)を入力します。

[OK]をクリックし、リストに新しく追加したエントリをクリックします

関連するエディターセクションで、[追加...]をクリックし、[カラーエディター]を選択して[OK]を押します。

わかりました。難しいのは、HCR構文について学ぶ必要があることです。

あなたが見ることができます

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

方法を学び、他の多くのhcrのファイルを探索します。現時点では、ドキュメントは見つかりませんでした。

私の贈り物は、基本的で不完全な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/

2
macm

現在、「Bashエディター」と呼ばれる専用のbashスクリプトプラグインが存在します。 Eclipseマーケットプレイスで入手できます。

Bash editor log

https://marketplace.Eclipse.org/content/bash-editor で見つけることができます。または、「bash」を検索するときにマーケットプレイスクライアントで見つけることができます。

プラグインは現在ベータ版としてタグ付けされていますが、安定しています。

2
hexadez

ShellEdはEclipseの優れたプラグインです。

このリンクはそれをインストールするのに役立ちました: http://mattnorris.me/blog/install-Eclipse-shelled-plugin/

手順:

  1. ShellEdのダウンロード: http://sourceforge.net/projects/shelled/files/latest/download -ファイルは、netなどの名前のzip形式のアーカイブです。 sourceforge.shelled-site-2.0.x.Zip。

  2. 次に、[ヘルプ]> [新しいソフトウェアのインストール...]をクリックします。

  3. 右上の[追加...]をクリックします。
  4. アーカイブをクリックします...
  5. Zipアーカイブnet.sourceforge.shelled-site-2.0.x.Zipを保存した場所に移動して選択します。
  6. OKをクリックします。 (オプションの[名前]フィールドについて心配する必要はありません。Eclipseは自動的に名前を付けます。)
  7. 新しいシェルスクリプトのチェックボックスを選択します。
  8. 次へをクリックします。
  9. もう一度「次へ」をクリックします。
  10. 「使用許諾契約の条項に同意します」を選択します。
  11. 完了をクリックします。
  12. Eclipseを再起動します。
1
Steven

ShellEdを試しましたが、Eclipseを再起動しても、シェルスクリプトは認識されませんでした。 kshインタープリターを追加してデフォルトにしましたが、違いはありませんでした。

最後に、開いていてkshファイルを表示しているタブを閉じてから、再度開きました。それが正常に動作するようになりました。しばらく使用した後、私はそれをお勧めすることもできます。

0
ivanlan

それは酸素で私のために動作します。

1)[ヘルプ]> [Eclipse Marketplace ...]に移動し、「DLTK」を検索します。 「Shell Script(DLTK)5.8.0」のようなものが見つかります。インストールしてEclipseを再起動します。

(または、このWebページからEclipseに「インストール」ボタンをドラッグアンドドロップします。 https://marketplace.Eclipse.org/content/Shell-script-dltk

Shell Script (DLTK)

2)Project ExplorerでShell/batchファイルを右クリックし、Open With> Other ...を選択して、Shell Script Editorを選択します。エディターをその拡張子のすべてのファイルに関連付けることもできます。

Shell script editor