Bash script плагин для Eclipse?

Есть ли приличные плагины bash для Eclipse? Мое единственное требование - подсветка синтаксиса. Я искал googled, но не видел ничего похожего на "плагин bash.

Ответ 1

ShellEd выглядит многообещающим, делает подсветку синтаксиса и имеет положительные отзывы, хотя я сам не пробовал. Это было одобрено для включения дистрибутива Redhat. Там немного больше информации о странице плагина ShellEd на сайте Eclipse и инструкции по установке в своей вики.

Обратите внимание, что если вы не используете обновленную версию Eclipse (начиная с этой записи, Juno), вам нужно использовать более старую версию, например 2.0.1 совместима с Indigo.

Ответ 2

EDIT (8/3/2013): используйте http://sourceforge.net/projects/shelled/files/shelled/update/ для последней версии

РЕДАКТИРОВАТЬ (2/25/2013): не нужно устанавливать linux-инструмент для обтекаемого 2.0.2 на Eclipse 4.2.1. Кроме того, нет необходимости загружать zip файл. Здесь сайт обновления обстрелянных 2.0.2: http://sourceforge.net/projects/shelled/files/shelled/ShellEd%202.0.2/update/

OLD POST:

Мне нравится Shelled. Если вы установите его сейчас, вам нужно загрузить zip файл и указать его в мастере установки нового программного обеспечения в Eclipse. Вам также потребуется установить плагин man из

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

Ответ 3

Отладчик для Bash версии 3 (Bourne again shell).
Плагин для Eclipse. Будет работать только с оболочкой script editor ShellEd. basheclipse

Ответ 4

Просто следуйте официальным инструкциям ShellEd InstallGuide

Ответ 5

Бесплатный EclipseColorer Editor может выделять синтаксис для сценариев bash.

Однако он не использует Eclipse "Outline view", то есть не заполняет его списком определений функций. Иногда подсветка синтаксиса просто останавливается в середине script. Затем снова открывается помощь script.

Ответ 6

шелушится

Решения ниже о том, как установить ShellEd, не работают для меня. Много ошибок в зависимостях. Найденное решение, которое работает для меня.

Система:

Linux Lubuntu 12.04

IDE:

Eclipse Kepler

В Eclipse откройте "Справка" > "Установить новое программное обеспечение"

Нажмите Добавить...

Добавьте следующее местоположение, http://download.eclipse.org/releases/kepler и назовите его "Eclipse Kepler".

Нажмите "ОК".

Выберите недавно созданный сайт Kepler Eclipse.

Разверните раздел "Развитие Интернета", "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

Наслаждайтесь:)

Ответ 7

Я воспроизведу хороший учебник здесь, потому что я потерял эту статью и потрачу некоторое время, чтобы найти ее снова!

Добавление подсветки синтаксиса для новых языков в Eclipse с помощью библиотеки Colorer

Скажем, у вас есть файл HRC, содержащий синтаксис и лексическую структуру некоторого языка программирования. Eclipse не поддерживает (например, D/Iptables или любой другой язык script).

Используя плагин EclipseColorer, вы можете легко добавить поддержку для него.

Перейдите в раздел Справка → Установить новое программное обеспечение и нажмите "Добавить".  В поле "Имя" введите "Colorer" и в поле "Location" напишите http://colorer.sf.net/eclipsecolorer/

Выберите запись, которую вы только что добавили в работе: combo box, дождитесь заполнения списка компонентов и нажмите "Выбрать все"

Нажмите "Далее" и следуйте инструкциям

Как только плагин установлен, закройте Eclipse.

Скопируйте свой HRC файл в [EclipseFolder]\Plugins\net.sf.colorer_0.9.9\колорер\КПЧ\Авто\типа

[EclipseFolder] =/home/myusername/.eclipse

Используйте свой любимый текстовый редактор, чтобы открыть

[EclipseFolder]\Plugins\net.sf.colorer_0.9.9\колорер\КПЧ\Авто\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, сложная часть - вы должны узнать о синтаксисе 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 и добавить внутри банку:

[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/

Ответ 8

В настоящее время существует специальный плагин bash-скрипта, который называется "Bash editor". Он доступен на торговой площадке затмения:

Bash editor log

Вы можете найти его в https://marketplace.eclipse.org/content/bash-editor или у клиента Marketplace при поиске слова "bash".

Плагин также предоставляет отладчик. В официальном Bash Editor списке воспроизведения YouTube вы можете найти несколько учебных пособий по использованию и т.д.

Ответ 9

ShellEd - хороший плагин для Eclipse.

Эта ссылка помогла мне установить ее: http://mattnorris.me/blog/install-eclipse-shelled-plugin/

Шаги:

  • Загрузить ShellEd: http://sourceforge.net/projects/shelled/files/latest/download - файл представляет собой архив с заархивированным именем, похожий на net.sourceforge.shelled-site-2.0.x.zip.

  • Затем нажмите "Справка" > "Установить новое программное обеспечение"...

  • Нажмите "Добавить"... в правом верхнем углу.
  • Нажмите "Архив"...
  • Перейдите к месту сохранения zipped архива net.sourceforge.shelled-site-2.0.x.zip и выберите его.
  • Нажмите "ОК". (Не беспокойтесь о дополнительном поле Name. Eclipse назовет его автоматически.)
  • Установите новый флажок Shell Script.
  • Нажмите "Далее".
  • Нажмите "Далее" еще раз.
  • Выберите "Я принимаю условия лицензионного соглашения".
  • Нажмите "Готово".
  • Перезапустить Eclipse.

Ответ 10

Я попробовал ShellEd, но он не узнал ни одного из моих сценариев оболочки, даже когда я перезапустил eclipse. Я добавил интерпретатор ksh и сделал его по умолчанию, но он не делал различий.

Наконец, я закрыл открытую вкладку и отобразил файл ksh, а затем снова открыл ее. Это заставило его работать правильно. Пользуясь им некоторое время, я также могу порекомендовать его.

Ответ 11

Это работает для меня в Oxygen.

1) Перейдите в раздел Справкa > Eclipse Marketplace... и найдите "DLTK". Вы найдете что-то вроде "Shell Script (DLTK) 5.8.0". Установите его и перезагрузите Eclipse.

(Или перетащите кнопку "Установить" с этой веб-страницы на ваш Eclipse: https://marketplace.eclipse.org/content/shell-script-dltk)

Shell  Script (DLTK)

2) Щелкните правой кнопкой мыши файл оболочки/пакета в Project Explorer > Open With > Other... и выберите Shell Script Editor. Вы также можете связать редактор со всеми файлами этого расширения.

Shell  Script editor