Unterbrechen Sie einen Vorgang still mit Strg-z

7

In meinem aktuellen Workflow verwende ich häufig STRG-z, um Vim anzuhalten, damit ich schnell einige Befehle eingeben kann, bevor ich die Bearbeitung meines Codes mit fg fortsetze ( dank des praktischen ZSH-Tipps in diesem Blog-Beitrag ist es wieder STRG -z ). Das Problem ist, dass mein Terminal mit Meldungen zur Jobunterbrechung überfüllt ist, die von der Ausgabe ablenken, die ich sehen möchte.

Unerwünschte Ausgabe:

[1]  + continued  vim

zsh: suspended  vim

Der folgende Screenshot zeigt, wie dies in einer Standardsitzung aussehen kann: Geben Sie hier die Bildbeschreibung ein

Also meine Frage; Gibt es eine Möglichkeit, das Drucken von STRG-Z- und FG-Ausgaben zu stoppen?

JamoBox
quelle
2
Das glaube ich nicht. Sie sollten wahrscheinlich in Betracht ziehen, das Problem zu verwenden screenoder ganz tmuxzu vermeiden.
Otheus
„Ich konnte keine Lösung finden, also habe ich selbst eine entwickelt“ ahem
Gilles '
1
Wenn man sich die Quelle ansieht, scheinen weder bash noch zsh eine Möglichkeit zu haben, diese Nachrichten zu vermeiden.
Gilles 'SO - hör auf böse zu sein'
@ Gilles Das ist unglücklich. Trotzdem danke, wenn Sie sicher sind, können Sie dies als Antwort setzen, damit ich es als gelöst markieren kann?
JamoBox
2
Warum führen Sie den Befehl nicht von innen vimmit aus :! your_command?
Jakuje

Antworten:

0

Eine Möglichkeit besteht darin, das Rohr zu brechen. Das fortschreitende Programm kann jedoch nicht mehr von aufgerufen fgwerden.

Sie können den Job nach dem Ausführen zunächst initper Befehl disown -h JobID|PIDabbrechen bg JobID|PID. Und dann können Sie das Terminal schließen.

Das Programm wird nicht gestoppt. Es wird seitdem eher wie ein Dämon sein. Es kann jedoch nichts davon bekommen stdinund es wird ausgegeben stdoutund stderrwird vernachlässigt.

TJM
quelle
Obwohl dies nicht ganz das erreicht hat, was ich wollte, beantwortet es die Frage technisch, also werde ich dies als richtig markieren.
JamoBox
1

Ich bin nicht sicher, ob Nachrichten für interaktive Sitzungen leicht geändert werden können. Aber Ihr Problem kann gelöst werden, wie Jakuje mit einer Subshell von Vim vorschlägt. Anstatt Ihren Befehl auszuführen, nur :!zshoder :!bashund wenn Sie fertig sind exit.

cxed
quelle
Natürlich können Sie dies in Vim abbilden, um es noch einfacher als Cz zu machen, und Cd verwenden, um die Shell zu verlassen und zu Vim zurückzukehren.
cxed