Я буду часто изменять маленький сценарий в gedit и затем выполнять его от терминала. Нет ли простой текстовый редактор с кнопкой "Run" или чем-то для оптимизации этого? Даже в Eclipse это не тривиально. Я ищу определенные предложения, на которых текстовые редакторы поддерживают это или как они могут быть расширены для поддержки этого.
От:
gedit
плагин внешнего терминала можно использовать gedit
с терминальным плагином. Шаги довольно просты:
gedit-plugins
gedit
плагины , первый шаг должен удостовериться Universe
, репозиторий активируется от Settings
-> Software & Updates
-> Ubuntu Software
, и удостоверьтесь, что третья опция проверяется:
gedit-plugins
Установка gedit-plugs
с командой:
sudo apt install gedit-plugins
, Открывают gedit
(не используйте sudo
), и выбор Edit
-> Preferences
-> Plugins
и вычет Embedded Terminal
:
В GIF ниже, мы используем Ctrl + F9 для получения крошечного окна с командной строкой. Используйте мышь для вытаскивания разделительной линии.
gedit
плагины , Как упомянуто на Шаге 4., можно захватить разделительную линию для создания окна терминала больше. Вот то, на что это похоже в нормальном изображении ((не GIF).
существует три других плагина, которые я в настоящее время использую в gedit
окно кодирования:
Для дополнительных материалов для чтения, см.:
В vim
и использование :!bash file.sh
или просто создают ярлык для него в .vimrc
В Emacs, Вы используете M-!
. Таким образом, Вы удерживаете Высокий звук и затем нажимаете ! . Можно даже передать текст в текущем буфере к команде путем выбора того, что Вы хотите передать команде и затем нажатие M-|
. Таким образом, можно выделить код и передать его команде bash
.
, Каждый инструмент имеет свой собственный путь!
find
и entr
Выполнение эта команда поэтому каждый раз, когда ЛЮБОЙ .sh
файл в изменениях каталога, это будет выполнено снова автоматически:
find . -name '*.sh' | entr -cs file.sh
vim
, и entr
для живого кодирования я записал это давно для [1 114] и затем использовал его больше на других языках, и теперь можно использовать его для оболочки, программирующей также.
Вот то, как это будет похоже:
, чтобы программа выполнила все, которое я должен сделать, должен сохранить его в энергии (: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] команда ide -n=something
ide -t=not-simple -n=some_name
, Поскольку я сказал, что Вы могли использовать этот сценарий, чтобы сделать оболочку как инструмент для под управлением Python, C++, удара, или даже добавить Ваше собственное.
Если Вы довольны энергией, можно выполниться
:w !bash
(sub предпочтительная оболочка), и это выполнит сценарий в текущем буфере.
В графической среде, я использую VS Code. Это - легкий IDE, это расширяемо, сделал, чтобы встроенный МЕРЗАВЕЦ поддерживал, и интегрированный терминал.
В Emacs можно использовать Ctrl-C
Ctrl-X
для этого.
Можно использовать Kate, этому нужна консоль для работы:
sudo apt install kate konsole
Затем в:
Kate в ‡’ Настраивает в ‡’ Приложение в ‡’ Плагины и проверяет, что инструмент Terminal просматривает флажок.
Вы могли использовать Atom с script
пакет . После того как это настраивается, просто нажмите F5 (ни с чем выбранным) для запущения скрипта на основе хижины. Затем нажмите Esc для закрытия области вывода.*
Atom не является супер легким весом, но это также не супер тяжело. Это также предлагает другие пакеты как linter-shellcheck
для помощи с записью и отладкой кода. script
также поддержки много других языков включая Python, Perl и HTML.
Для установки Atom используйте официальный .deb установщик последний выпуск .
<час>, *As от 13 ноября 2019, script
испытывает главная ошибка , где область вывода не закрывается, но предыдущая версия незатронута. Устанавливать предыдущую версию:
apm install script@3.18
Одна превосходная опция состоит в том, чтобы использовать моего постоянного компаньона, текстовый редактор Geany. По умолчанию существует кнопка 'Execute', которая также связывается по умолчанию с ключевым F5 , который выполняет сценарии оболочки из основного окна редактора.
Вот снимок экрана Geany, запускающего простой скрипт обновления после того, как он был отредактирован:
Наблюдают также 'Древовидный Браузер' плагин для Geany слева от экрана, который упрощает выбор весь из сценариев в моем ~/bin
папка.
Под 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; )
, который лично довольно мощен, если большая часть рабочего процесса может быть автоматизирована (код, тест, выполнена, повторитесь) так, чтобы Вы просто сфокусировались на задаче написания кода.
Я не абсолютно уверен, какая определенная оболочка управляет, чтобы Вы работали, но Код 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 предпочтительными инструментами и решительный для создания тех вещей лучше с нуля.
, О, да. Это также свободно.
Я использую сублимат в качестве своего редактора основного текста и никогда не должен был использовать команду сборки там, но можно использовать ее систему сборки для выполнения файла удара.
я не могу протестировать эту точную команду прямо сейчас, как я нахожусь в Windows, но это должно сделать задание ( Источник ):
Открывают палитру команды (обычно Ctrl-Shift-P, или в соответствии с меню Tools). Выберите "Build: New Build System".
содержание файла Замены с:
{ "cmd" : ["bash", "$file"], "selector" : "source.shell" }
Сохраняют его как bash.sublime-сборку в предложенном каталоге, который должен быть где угодно в Сублимате каталог Packages .
Затем все, что необходимо сделать, нажимают Ctrl-B для "создавания" файла удара (да, Вы на самом деле просто выполняете его).
Некоторое объяснение, "cmd" часть является фактической командой, которая выполняется, можно выполнить любую команду с любым параметром тот Сублимат поддержки. Вторая часть, "селектор", то, для каких типов файлов эта система сборки будет выполнена, который является просто файлами "оболочки".
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
, также с кривой обучения.
При редактировании использования vim
, хит Esc
и тип :sh
и Enter
, когда сделано пораженный Ctrl-D
и Вы возвратитесь к Вашему vim
сессия.
Спасибо всем.