Существует ли текстовый редактор, который может выполнить сценарии оболочки?

Я буду часто изменять маленький сценарий в gedit и затем выполнять его от терминала. Нет ли простой текстовый редактор с кнопкой "Run" или чем-то для оптимизации этого? Даже в Eclipse это не тривиально. Я ищу определенные предложения, на которых текстовые редакторы поддерживают это или как они могут быть расширены для поддержки этого.

28
задан 14 November 2019 в 08:28

12 ответов

От:

Плагины Gedit

Использование gedit плагин внешнего терминала

можно использовать gedit с терминальным плагином. Шаги довольно просты:

  1. Включают репозиторий "Вселенной"
  2. , Установка gedit-plugins
  3. Активирует "Встроенный Терминал"
  4. Использование Ctrl + F9 для открытия терминала
  5. Другой gedit плагины

Шаг 1. Включите репозиторий "Вселенной"

, первый шаг должен удостовериться Universe, репозиторий активируется от Settings-> Software & Updates-> Ubuntu Software, и удостоверьтесь, что третья опция проверяется:

gedit plugins repository.png

Шаг 2. Установка gedit-plugins

Установка gedit-plugs с командой:

sudo apt install gedit-plugins

Шаг 3. Активируйте "Встроенный Терминал"

, Открывают gedit (не используйте sudo), и выбор Edit-> Preferences-> Plugins и вычет Embedded Terminal:

gedit embedded terminal.png

Шаг 4. Используйте Ctrl + F9 для открытия терминала

В GIF ниже, мы используем Ctrl + F9 для получения крошечного окна с командной строкой. Используйте мышь для вытаскивания разделительной линии.

gedit terminal plugin.gif

Шаг 5. Другой gedit плагины

, Как упомянуто на Шаге 4., можно захватить разделительную линию для создания окна терминала больше. Вот то, на что это похоже в нормальном изображении ((не GIF).

существует три других плагина, которые я в настоящее время использую в gedit окно кодирования:

  • плагин для отображения 80 символьных сокращений с другим цветом фона
  • плагин для отображения всего документа в миниатюре можно перетащить для быстрого движения в секцию кода
  • соответствующие скобки Выделения

gedit teriminal line wrap.png

Для дополнительных материалов для чтения, см.:

14
ответ дан 23 November 2019 в 00:54

Опция 1: используйте энергию, emacs, geany, и намного больше!

В vim и использование :!bash file.sh или просто создают ярлык для него в .vimrc

В Emacs, Вы используете M-!. Таким образом, Вы удерживаете Высокий звук и затем нажимаете ! . Можно даже передать текст в текущем буфере к команде путем выбора того, что Вы хотите передать команде и затем нажатие M-|. Таким образом, можно выделить код и передать его команде bash.

, Каждый инструмент имеет свой собственный путь!

Опция 2: используйте find и entr

Выполнение эта команда поэтому каждый раз, когда ЛЮБОЙ .sh файл в изменениях каталога, это будет выполнено снова автоматически:

find . -name '*.sh' | entr -cs file.sh

Опция 3: используйте комбинацию [1 111], vim, и entr для живого кодирования

я записал это давно для [1 114] и затем использовал его больше на других языках, и теперь можно использовать его для оболочки, программирующей также.

Вот то, как это будет похоже:

cppshell

, чтобы программа выполнила все, которое я должен сделать, должен сохранить его в энергии (:w), и это будет работать.

Сохраняют это в [1 116]:

#!/usr/bin/bash

tmpdir=""
template="simple"

for i in "$@"
do
case $i in
    -t=*|--template=*)
        template="${i#*=}"
    shift # past argument=value
    ;;

    -n=*|--name=*)
    dir="${i#*=}"
    mkdir -p ~/cppshells/$dir
    tmpdir=~/cppshells/$dir
    shift
    ;;

    -h|--help)
    echo "-n=*|--name=* \t\t the name of the project"
    echo "-t=*|--template \t\t the template to use"
    exit;
    ;;


    *)
        # nothing to do
    ;;
esac
done

if [ -z "$tmpdir" ]; then
    tmpdir=$(mktemp -d)
fi;

tmpdir=$(realpath ${tmpdir});
window="cpp-$1-$((1 + RANDOM % 10000000))"

if [ -z "$EDITOR" ]; then
    EDITOR="nvim";
fi;

template_dir="$(dirname [111])/templates/${template}"

if [ ! -d $template_dir ]; then
    echo "The specified template ($template) does not exists."
    exit;
fi;

tmux new -s ${window} -d -c "${tmpdir}"
tmux split-window -t ${window} -h
tmux select-pane -t ${window}.right
tmux resize-pane -t ${window}.right -R 18
tmux send-keys -t ${window}.left "cd ${tmpdir}" C-m
tmux send-keys -t ${window}.right "cd ${tmpdir}" C-m


# copy files if the directory does not exists
if [ `ls -A ${tmpdir} | wc -m` == "0" ]; then
    cp -nr $template_dir/* ${tmpdir}/.
fi;

# run build commands
if [ -f ${template_dir}/Makefile ]; then # make
    tmux send-keys -t ${window}.right "find . -name '*.cpp' | entr -cs 'make -j8 && ./a.out'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.cpp" C-m
elif [ -f ${template_dir}/CMakeLists.txt ]; then # CMake
    mkdir -p ${tmpdir}/build
    cmake -G "Unix Makefiles" -B${tmpdir}/build -S${tmpdir}
    tmux send-keys -t ${window}.right "find . -name '*.cpp' | entr -cs 'make -j8 -Cbuild/ && ./build/a.out'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.cpp" C-m
elif [ -f ${template_dir}/main.py ]; then # Python
        chmod +x ${tmpdir}/main.py
    tmux send-keys -t ${window}.right "find . -name 'main.py' | entr -cs '${tmpdir}/main.py'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.py" C-m
elif [ -f ${template_dir}/main.sh ]; then # Bash
        chmod +x ${tmpdir}/main.sh
    tmux send-keys -t ${window}.right "find . -name 'main.sh' | entr -cs '${tmpdir}/main.sh'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.sh" C-m
fi;


tmux select-pane -t ${window}.left
tmux attach -t ${window}

Затем создают ~/bin/templates/simple каталоги и помещают простое main.sh файл в них, которые будут Вашей начальной точкой, когда Вы будете работать ide команда. Можно также создать все больше шаблонов (каждый в различном каталоге в [1 120] каталог).

Добавляют /home/$USER/bin к Вашему пути, таким образом, можно работать ide.

Для запущения скрипта можно использовать эти 3 пути:

  • Для простых тестов: ide (это создаст временный каталог с [1 124] команда
  • , Чтобы сохранить файл в [1 125] dir: ide -n=something
  • Для использования другого шаблона (начальная точка): ide -t=not-simple -n=some_name

, Поскольку я сказал, что Вы могли использовать этот сценарий, чтобы сделать оболочку как инструмент для под управлением Python, C++, удара, или даже добавить Ваше собственное.

31
ответ дан 23 November 2019 в 00:54

Если Вы довольны энергией, можно выполниться

:w !bash

(sub предпочтительная оболочка), и это выполнит сценарий в текущем буфере.

В графической среде, я использую VS Code. Это - легкий IDE, это расширяемо, сделал, чтобы встроенный МЕРЗАВЕЦ поддерживал, и интегрированный терминал.

11
ответ дан 23 November 2019 в 00:54

В Emacs можно использовать Ctrl-C Ctrl-X для этого.

8
ответ дан 23 November 2019 в 00:54

Можно использовать Kate, этому нужна консоль для работы:

sudo apt install kate konsole

Затем в:

Kate в ‡’ Настраивает в ‡’ Приложение в ‡’ Плагины и проверяет, что инструмент Terminal просматривает флажок.

enter image description here

enter image description here

8
ответ дан 23 November 2019 в 00:54

Atom + сценарий

Вы могли использовать Atom с script пакет . После того как это настраивается, просто нажмите F5 (ни с чем выбранным) для запущения скрипта на основе хижины. Затем нажмите Esc для закрытия области вывода.*

Atom не является супер легким весом, но это также не супер тяжело. Это также предлагает другие пакеты как linter-shellcheck для помощи с записью и отладкой кода. script также поддержки много других языков включая Python, Perl и HTML.

Для установки Atom используйте официальный .deb установщик последний выпуск .

<час>

, *As от 13 ноября 2019, script испытывает главная ошибка , где область вывода не закрывается, но предыдущая версия незатронута. Устанавливать предыдущую версию:

apm install script@3.18
5
ответ дан 23 November 2019 в 00:54

Одна превосходная опция состоит в том, чтобы использовать моего постоянного компаньона, текстовый редактор Geany. По умолчанию существует кнопка 'Execute', которая также связывается по умолчанию с ключевым F5 , который выполняет сценарии оболочки из основного окна редактора.

Вот снимок экрана Geany, запускающего простой скрипт обновления после того, как он был отредактирован:

enter image description here

Наблюдают также 'Древовидный Браузер' плагин для Geany слева от экрана, который упрощает выбор весь из сценариев в моем ~/bin папка.

6
ответ дан 23 November 2019 в 00:54

Под vim/gvim автокоманды ( autocmd-использование ) полезны для этого вида рабочего процесса, таким образом, что энергия (и так оболочка) команды может быть выполнена на определенных событиях файла/буфера - предотвращение шага Вас имеющий необходимость инициировать их вручную.

Как пример

:au BufWritePost,FileWritePost * silent :!( cd /path/to/somewhere && ./my-shell-command with some args; )

Это работает ./my-shell-command ... каждый раз, когда Вы пишете/сохранение файл. Протест состоит в том, что вывод не замечен в редакторе сам (поскольку это требует отдельного окна оболочки). Это может или не может быть тем, в чем Вы нуждаетесь.

Расширение понятия, чтобы сделать это полезным (использование энергии-tmux для, например, содержать вывод stdout/stderr), вышеупомянутое стало бы чем-то как так

:au BufWritePost,FileWritePost * silent :Tmux ( cd /path/to/somewhere && bats my-tests.bats && ./my-script with some args; )

, который лично довольно мощен, если большая часть рабочего процесса может быть автоматизирована (код, тест, выполнена, повторитесь) так, чтобы Вы просто сфокусировались на задаче написания кода.

4
ответ дан 23 November 2019 в 00:54

Я не абсолютно уверен, какая определенная оболочка управляет, чтобы Вы работали, но Код Visual Studio становится текущим стандартом для легкого IDE.

А быстрый поиск приносит мне это: https://www.reddit.com/r/vscode/comments/9qbbcs/is_there_a_way_to_run_a_bash_scriptcommand_from /

, Где кто-то спросил:

там способ запустить скрипт удара из VS Code?

С ответом тем, чтобы быть:

A) https://code.visualstudio.com/docs/editor/tasks Да, можно настроить задачи. Можно также указать деталь, поскольку Коду задачи

B) сборки по умолчанию встроили командную строку.

Более поздний для случая, который все Вы ищете, является интегрированной оболочкой, где Вы можете только тип ./script.sh

<час>

, я просмотрел все другие ответы путем прокрутки, и действительно не соглашаться. Несомненно, люди, которые привыкли к их соответствующим редакторам (энергия, emacs, vi, gedit, блокнот ++, Atom, и т.д.) будут всегда указывать на Вас к своему фавориту.

, Но с нескольких лет в промышленности кодирования и проверявший много более новых редакторов, таких как Atom, Сублимированный текст, и т.д. VS Code просто сияет через. Это - то, чем Atom всегда хотел быть.

Это является крошечным, быстрым, межплатформенным, расширяемым, и почти полностью настраиваемым к Вашим симпатиям. Если Вы хотите смочь обеспечить быстрые результаты в очень продуктивной, забавной и радушной персональной среде, VS Code является моей определенной рекомендацией для Вас.

Это с эры, где Microsoft щелкнула большим переключателем в их организации, будучи нацелен на открытый исходный код, межплатформенный и намного более дружественное отношение к внешним системам. И это чертовски noticable, у людей, работающих над редактором, был некоторый поганый опыт с их predecessing предпочтительными инструментами и решительный для создания тех вещей лучше с нуля.

, О, да. Это также свободно.

https://code.visualstudio.com /

4
ответ дан 23 November 2019 в 00:54

Я использую сублимат в качестве своего редактора основного текста и никогда не должен был использовать команду сборки там, но можно использовать ее систему сборки для выполнения файла удара.

я не могу протестировать эту точную команду прямо сейчас, как я нахожусь в Windows, но это должно сделать задание ( Источник ):

Открывают палитру команды (обычно Ctrl-Shift-P, или в соответствии с меню Tools). Выберите "Build: New Build System".

содержание файла Замены с:

{
    "cmd"       : ["bash", "$file"],
    "selector"  : "source.shell" 
} 

Сохраняют его как bash.sublime-сборку в предложенном каталоге, который должен быть где угодно в Сублимате каталог Packages .

Затем все, что необходимо сделать, нажимают Ctrl-B для "создавания" файла удара (да, Вы на самом деле просто выполняете его).

Некоторое объяснение, "cmd" часть является фактической командой, которая выполняется, можно выполнить любую команду с любым параметром тот Сублимат поддержки. Вторая часть, "селектор", то, для каких типов файлов эта система сборки будет выполнена, который является просто файлами "оболочки".

4
ответ дан 23 November 2019 в 00:54

Emacs имеет эти shell связанные функции: (ОТМЕТЬТЕ: существует кривая обучения с Emacs)

async-shell-command       M-&
   Execute string COMMAND asynchronously in background.
compilation-shell-minor-mode  M-x ... RET
   Toggle Compilation Shell minor mode.
eshell                M-x ... RET
   Create an interactive Eshell buffer.
eshell-command            M-x ... RET
   Execute the Eshell command string COMMAND.
eshell-mode           M-x ... RET
   Emacs shell interactive mode.
eshell-report-bug         M-x ... RET
   Report a bug in GNU Emacs.
gdb-shell-minor-mode          M-x ... RET
   Minor mode to add gdb features to shell mode.
idlwave-shell             M-x ... RET
   Run an inferior IDL, with I/O through buffer
   `(idlwave-shell-buffer)'.
minibuffer-default-add-shell-commands M-x ... RET
   Return a list of all commands associated with the current file.
shell                 M-x ... RET
   Run an inferior shell, with I/O through BUFFER (which defaults to
   `*shell*').
shell-command             <menu-bar> <tools> <shell>, M-!
   Execute string COMMAND in inferior shell; display output, if any.
shell-command-on-region       <menu-bar> <tools> <shell-on-region>, M-|
   Execute string COMMAND in inferior shell with region as input.
shell-current-directory       M-x ... RET
   Create a shell pertaining to the current directory.
shell-script-mode         M-x ... RET
   Major mode for editing shell scripts.

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

0
ответ дан 23 November 2019 в 00:54

При редактировании использования vim, хит Esc и тип :sh и Enter, когда сделано пораженный Ctrl-D и Вы возвратитесь к Вашему vim сессия.

Спасибо всем.

0
ответ дан 23 November 2019 в 00:54

Другие вопросы по тегам:

Похожие вопросы: