2016-08-02 16 views
0

Gibt es eine Möglichkeit in Emacs, benutzerdefinierte Befehle oder eine Reihe von Befehlen (z. B. Shell) mit einem benutzerdefinierten Emacs Verknüpfung/Hook auszuführen? Um das klarer zu machen. Ich arbeite mit einem eingebetteten System (Ziel), aber auf dem Host entwickeln. Nach dem Schreiben und Kompilieren von Code (zB mit dem emacs-Kompilierbefehl) möchte ich die Binärdatei (z. B. scp) sofort in das System kopieren. Außerdem wäre es gut, wenn der benutzerdefinierte shorcut/hook leicht anzupassen wäre (zB IP-Adresse des Ziels).Emacs benutzerdefinierte Shell-Befehle

Btw: Ich bin mir der "Shell-Befehl" in Emacs bewusst, aber das ist nicht ganz das, wonach ich suche.

Würde mich über jeden Hinweis freuen. Vielen Dank!

+2

Es scheint nicht genügend Details zu geben, um die Frage zu beantworten. Sie können die "start-process" -Familie von Funktionen verwenden, um Ihre eigenen Shell-Befehle auszuführen, und Sie können auch ein Skript aufrufen (wenn Sie dies wünschen). Wenn Sie warten müssen, bis ein Prozess beendet ist, bevor Sie den nächsten starten, können Sie 'set-process-sentinel' verwenden. – lawlist

+2

Wie bereits erwähnt, gibt es nicht genug Details in Ihrer Frage. Ich schieße hier im Dunkeln. Ist Ihnen bewusst, dass Sie Ihre eigenen Funktionen in Emacs mithilfe der integrierten Emacs Lisp-Sprache definieren können? Sie könnten sie den Initialisierungsdateien von Emacs hinzufügen. Dieser Link zur Emacs-Dokumentation beschreibt, wie Sie: https://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Functions.html –

+0

Zunächst einmal, vielen Dank für Ihre Antwort. Ich denke, dass die Frage ziemlich spezifisch ist, aber nehmen wir einfach an, dass ich den folgenden Shell-Befehl ausführen möchte: "scp my-file root @ my-target-ip:/tmp /". Meine Datei sollte die Datei im aktuellen Puffer sein und my-target-ip sollte ein Argument sein. – user3482407

Antwort

0

Ich endete mit C-x C-f /[email protected]:/tmp/myfile, um die Datei direkt auf dem Ziel zu bearbeiten. Dann können Sie es mit shell-command ./myfile aus Emacs ausführen.