Ich füge die ganze Zeit Dateinamen / etc in Terminal ein und gelegentlich entspricht der Inhalt der Zwischenablage nicht meinen Erwartungen.
Häufig werden mehrere hundert Textzeilen (z. B. Quellcode) in die Eingabeaufforderung eingefügt, sodass nur Gott weiß, was für eine Gemeinheit das ist.
Gibt es eine Möglichkeit zu verhindern, dass Bash blind alles ausführt, was ich einfüge? Ich wünschte, es würde nur den Text einfügen und mich entscheiden lassen, ob ich ihn ausführen möchte.
Ctrl
stattCmd
. Auch ohneset -o emacs
es zu tun scheint zu verwenden$EDITOR
. Vielen Dank! Dies ist perfekt.Die einfachste Lösung besteht wahrscheinlich darin, einen Texteditor als Puffer zu verwenden, in dem Sie den Inhalt überprüfen und dann vom Texteditor zum Terminal kopieren können. Wenn Sie hierfür TextEdit verwenden, möchten Sie wahrscheinlich sicherstellen, dass es sich im Nur- Text-Modus befindet ( Menü Format → Nur Text erstellen; ⇧⌘T), um Probleme wie das Einfügen von Links als Links und nicht als URLs zu vermeiden.
Die andere zu beachtende Sache ist, dass Bash versucht, alles auszuführen, was einem Zeilenumbruch vorausgeht. Wenn Sie also einen Textblock kopieren, möchten Sie möglicherweise sicherstellen, dass Ihre Auswahl nach dem letzten Zeichen endet, anstatt das Ende des Zeichens einzufügen Linie.
Du willst das:
Nicht das:
Wenn Sie Text mit Zeilenumbrüchen ( dh mehreren Absätzen) kopieren , müssen Sie die Auswahl natürlich manuell bearbeiten.
quelle
Ich verstehe das auch!
Meine Lösung ist das Einfügen mithilfe des Launchbar -Zwischenablage-Managers mit dem Hotkey
Cmd+\
. Daraufhin wird eine Liste der zuletzt verwendeten Zeitungsausschnitte angezeigt, sodass ich vor dem Einfügen eine Vorschau des Ergebnisses anzeigen kann. Wenn der erwartete Inhalt nicht angezeigt wird, drücke ich die Escape-Taste, bevor ich Cmd freigebe. Ich kann auch eine Pfeiltaste verwenden, um einen Textausschnitt einzugeben, sodass ich den Inhalt zeilenweise sehen kann.Ich glaube, die meisten Trägerraketen tun dies - Alfred (Powerpack-Addon) und Quicksilver (kostenlos) zum Beispiel.
quelle
Vielleicht möchten Sie sich einen Zwischenablage-Manager ansehen. Ich benutze eine kostenlose, leichte Variante namens Jumpcut . Es ermöglicht mir, mehrere Zwischenablagen zu behalten und zu sehen, was in ihnen gespeichert ist, bevor der Inhalt tatsächlich über die Tastatur eingefügt wird.
Es gibt viele Manager für die Zwischenablage. Wenn Jumpcut Ihr Boot also nicht schwimmt, passt vielleicht ein anderer besser zu Ihren Anforderungen
quelle
Verwenden Sie eine Paste in Klammern .
Das Einfügen in Klammern ist eine Funktion, bei der das Terminal der Shell mitteilt, dass Sie etwas eingefügt haben, anstatt es nur einzugeben, sodass die Shell den Befehl erst ausführen kann, wenn Sie die Eingabetaste drücken.
Terminal.app unterstützt dies, aber nicht alle Terminals.
Ebenso unterstützen es nicht alle Shells. Die mit OS X gelieferte Version von bash unterstützt das Einfügen in eckigen Klammern nicht (zum Zeitpunkt des Schreibens ist es v3.2.57).
Allerdings zsh hat Unterstützung klammert Paste:
Zsh ist größtenteils mit Bash kompatibel (sogar Skripte funktionieren wahrscheinlich, wenn Sie keine wirklich obskure Funktion verwenden) und in vielerlei Hinsicht besser - zum Beispiel verfügt es sogar über eine mehrzeilige Befehlsbearbeitung!
quelle
Sie könnten dieses kleine Bash-Skript irgendwo in Ihrem
PATH
:Wenn ich diese Inhalte
/usr/local/pbexecute
zum Beispiel einfüge und ausführbar mache, kann ich sie ohne Bedenkenpbexecute
über die Befehlszeile ausführen , wodurch ich vor dem Ausführen der Inhalte der Zwischenablage zur Bestätigung aufgefordert werde.Ein alternativer Ansatz besteht darin, einen Texteditor mit dem Inhalt der Zwischenablage aus der Shell heraus zu starten und den bearbeiteten Inhalt beim Beenden automatisch auszuführen. Beispielsweise:
quelle