私はよく、gedit で小さなスクリプトを変更し、それをターミナルから実行します。これを効率化するために、「実行」ボタンなどを備えたシンプルなテキスト エディターはありませんか? Eclipse でも簡単ではありません。どのテキスト エディターがこれをサポートしているか、またはこれをサポートするためにテキスト エディターを拡張する方法についての具体的な提案を探しています。
答え1
オプション 1: vim、emacs、geany などを使用します。
でvim
使用したり:!bash file.sh
、ショートカットを作成したりすることもできます。.vimrc
Emacs では、 を使用しますM-!
。つまり、 をAlt押したまま を押します!。コマンドに渡したいものを選択して を押すと、現在のバッファ内のテキストをコマンドに渡すこともできますM-|
。つまり、コードを強調表示して、コマンドに渡すことができますbash
。
すべてのツールには独自の方法があります。
オプション2: 使用しfind
てentr
このコマンドを実行すると、.sh
ディレクトリ内の任意のファイルが変更されるたびに、自動的に再実行されます。
find . -name '*.sh' | entr -cs file.sh
オプション3:ライブコーディングに、、tmux
の組み合わせを使用するvim
entr
私はこれをずっと前に のために書きc++
、その後他の言語で使用しましたが、今ではシェル プログラミングにも使用できます。
それは次のようになります:
プログラムを実行するには、vim ( :w
) に保存するだけで実行されます。
保存先~/bin/ide
:
#!/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 $0)/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
。また、さらに多くのテンプレートを作成することもできます (各テンプレートはディレクトリ内の異なるディレクトリに作成されます~/bin/templates/
)。
/home/$USER/bin
を実行できるようにパスに追加しますide
。
スクリプトを実行するには、次の 3 つの方法を使用できます。
- 簡単なテストの場合: (コマンド
ide
で一時ディレクトリを作成しますmktemp -d
- ファイルを
~/cppshell/[something]/
dir に保存するには:ide -n=something
- 別のテンプレート(開始点)を使用するには:
ide -t=not-simple -n=some_name
前述したように、このスクリプトを使用して、Python、C++、bash を実行するためのシェルのようなツールを作成したり、独自のツールを追加したりすることもできます。
アップデート: この回答を書いてから、私は何度も自分のバージョンを更新し、新機能やサポートの拡大を図ってきました。このシェルスクリプトのGitHubページへのリンク詳細は、Readmeページ。
答え2
から:
Gedit プラグイン
gedit
外部端末プラグインを使用する
ターミナルプラグインで使用できますgedit
。手順は非常に簡単です:
- 「Universe」リポジトリを有効にする
- インストール
gedit-plugins
- 「埋め込み端末」を有効にする
- Ctrl+を使用しF9てターミナルを開きます
- その他の
gedit
プラグイン
ステップ1. 「Universe」リポジトリを有効にする
最初のステップは、Universe
リポジトリがSettings
-> Software & Updates
->からアクティブ化されていることを確認しUbuntu Software
、3 番目のオプションがチェックされていることを確認することです。
ステップ2.インストールgedit-plugins
gedit-plugs
次のコマンドでインストールします:
sudo apt install gedit-plugins
ステップ3.「埋め込みターミナル」を有効にする
を開いてgedit
( は使用しないでくださいsudo
)、Edit
-> Preferences
->を選択してPlugins
、 をチェックしますEmbedded Terminal
:
ステップ4. Ctrl+を使用してF9ターミナルを開きます
下の GIF では、Ctrl+を使用してF9コマンド プロンプトの小さなウィンドウを表示しています。マウスを使用して分割線を上にドラッグします。
ステップ5. その他のgedit
プラグイン
ステップ 4 で説明したように、セパレーター バーをつかむとターミナル ウィンドウを大きくすることができます。通常の画像 (GIF ではない) では次のようになります。
現在、コーディング ウィンドウで使用しているプラグインは他に 3 つありますgedit
。
- 80 文字の切り捨て部分を異なる背景色で表示するプラグイン
- ドキュメント全体をサムネイルで表示するプラグイン。ドラッグするとコードセクションに素早く移動できます。
- 一致する括弧を強調表示
詳細については以下を参照してください。
答え3
vimに慣れているなら、
:w !bash
(選択したシェルをサブします) すると、現在のバッファ内のスクリプトが実行されます。
グラフィカル環境では、VS Code を使用します。これは、拡張可能で、GIT サポートが組み込まれ、ターミナルが統合された軽量 IDE です。
答え4
Emacs では、そのために を使用できますCtrl-C
Ctrl-X
。