Option 1: Verwenden Sie vim, emacs, geany und viele mehr!

Option 1: Verwenden Sie vim, emacs, geany und viele mehr!

Ich ändere oft ein kleines Skript in gedit und führe es dann von einem Terminal aus aus. Gibt es keinen einfachen Texteditor mit einer Schaltfläche „Ausführen“ oder etwas, um dies zu vereinfachen? Selbst in Eclipse ist dies nicht trivial. Ich suche nach konkreten Vorschlägen, welche Texteditoren dies unterstützen oder wie sie erweitert werden können, um dies zu unterstützen.

Antwort1

Option 1: Verwenden Sie vim, emacs, geany und viele mehr!

In vimund verwenden :!bash file.shoder erstellen Sie einfach eine Verknüpfung dafür in.vimrc

In Emacs verwenden Sie M-!. Sie halten also gedrückt Altund drücken dann !. Sie können sogar Text in Ihrem aktuellen Puffer an einen Befehl übergeben, indem Sie auswählen, was Sie an einen Befehl übergeben möchten, und dann drücken M-|. So können Sie Ihren Code markieren und an den Befehl übergeben bash.

Jedes Werkzeug hat seine eigene Art!

Option 2: Verwenden findundentr

Führen Sie diesen Befehl aus, damit .sher immer dann automatisch erneut ausgeführt wird, wenn sich JEDE Datei im Verzeichnis ändert:

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

Option 3: Verwenden Sie eine Kombination aus tmux, vim, und entrfür Live-Codierung

Ich habe dies vor langer Zeit geschrieben c++und es dann in anderen Sprachen häufiger verwendet, und jetzt können Sie es auch für die Shell-Programmierung verwenden.

So wird es aussehen:

Abonnieren

Damit das Programm ausgeführt wird, muss ich es nur in vim ( :w) speichern, und schon wird es ausgeführt.

Speichern Sie dies in ~/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}

Erstellen Sie dann ~/bin/templates/simpleVerzeichnisse und legen Sie eine einfache main.shDatei darin ab, die Ihr Ausgangspunkt ist, wenn Sie ideden Befehl ausführen. Sie können auch mehrere Vorlagen erstellen (jede in einem anderen Verzeichnis im ~/bin/templates/Verzeichnis).

Fügen Sie /home/$USER/bines Ihrem Pfad hinzu, damit Sie ausführen können ide.

Zum Ausführen des Skripts stehen Ihnen diese drei Möglichkeiten zur Verfügung:

  • Für einfache Tests: ide(es wird ein temporäres Verzeichnis mit mktemp -ddem Befehl erstellt
  • So speichern Sie die Datei im ~/cppshell/[something]/Verzeichnis:ide -n=something
  • So verwenden Sie eine andere Vorlage (Ausgangspunkt):ide -t=not-simple -n=some_name

Wie gesagt, Sie können dieses Skript verwenden, um ein Shell-ähnliches Tool zum Ausführen von Python, C++, Bash zu erstellen oder sogar Ihr eigenes hinzuzufügen.

Aktualisieren: seit ich diese Antwort geschrieben habe, habe ich meine eigene Version viele Male mit neuen Funktionen und breiterer Unterstützung aktualisiert. Hier ist eineLink zur GitHub-Seite für dieses Shell-Skript. Weitere Einzelheiten finden Sie auch auf derReadme-Seite.

Antwort2

Aus:

Gedit-Plug-ins

geditExternes Terminal-Plugin verwenden

Sie können es geditmit dem Terminal-Plugin verwenden. Die Schritte sind ziemlich unkompliziert:

  1. Aktivieren Sie das Repository „Universe“
  2. Installierengedit-plugins
  3. Aktivieren Sie „Embedded Terminal“
  4. Verwenden Sie Ctrl+, F9um das Terminal zu öffnen
  5. Andere geditPlug-ins

Schritt 1. Aktivieren Sie das Repository „Universe“

Der erste Schritt besteht darin, sicherzustellen, dass das Repository von -> -> Universeaktiviert ist , und sicherzustellen, dass die dritte Option aktiviert ist:SettingsSoftware & UpdatesUbuntu Software

gedit-Plugins-Repository.png

Schritt 2. Installierengedit-plugins

Installieren Sie gedit-plugsmit dem Befehl:

sudo apt install gedit-plugins

Schritt 3. Aktivieren Sie „Embedded Terminal“

Öffnen gedit(nicht verwenden sudo) und Edit-> Preferences-> auswählen Pluginsund abhaken Embedded Terminal:

gedit eingebettetes Terminal.png

Schritt 4. Verwenden Sie Ctrl+ F9, um das Terminal zu öffnen

Im GIF unten verwenden wir Ctrl+, F9um ein kleines Fenster mit der Eingabeaufforderung zu erhalten. Ziehen Sie die Trennlinie mit der Maus nach oben.

gedit-Terminal-Plugin.gif

Schritt 5. Andere geditPlug-Ins

Wie in Schritt 4 erwähnt, können Sie die Trennleiste greifen, um das Terminalfenster zu vergrößern. So sieht es in einem normalen Bild aus (kein GIF).

Es gibt drei weitere Plug-Ins, die ich derzeit im geditCodierungsfenster verwende:

  • Plug-In zur Anzeige von 80 Zeichen begrenzt auf unterschiedliche Hintergrundfarben
  • Plug-In zur Anzeige des gesamten Dokuments in der Miniaturansicht, mit der Sie schnell zum Codeabschnitt gelangen können
  • Passende Klammern hervorheben

gedit Terminalzeilenumbruch.png

Weitere Informationen finden Sie unter:

Antwort3

Wenn Sie mit vim vertraut sind, können Sie

:w !bash

(submit der Shell deiner Wahl) und das Skript wird im aktuellen Puffer ausgeführt.

In einer grafischen Umgebung verwende ich VS Code. Es ist eine leichte IDE, die erweiterbar ist, über integrierte GIT-Unterstützung und ein integriertes Terminal verfügt.

Antwort4

In Emacs können Sie Ctrl-C Ctrl-Xdafür verwenden.

verwandte Informationen