Dies geschieht unabhängig davon, ob ich Strg + Umschalt + V verwende oder aus dem Kontextmenü einfüge.
Wie kann ich dieses Verhalten beenden?
Dies geschieht unabhängig davon, ob ich Strg + Umschalt + V verwende oder aus dem Kontextmenü einfüge.
Wie kann ich dieses Verhalten beenden?
Antworten:
Kopieren Sie nicht mehrere Textzeilen, um sie einzufügen. Ich kann fast garantieren, dass Sie einfach den letzten Teil der Zeile kopieren. Wenn Sie dreimal klicken, um die eingefügte Codezeile zu kopieren, wird die neue Zeile am Ende der Zeile angezeigt. Wenn Sie sicher sein möchten, dass dies wirklich das Problem ist, kopieren Sie die gesamte Zeile mit Ausnahme des letzten Buchstabens / der letzten Ziffer und prüfen Sie, ob das Einfügen auch eine neue Zeile enthält.
Der Text, den Sie einfügen, enthält einen nachgestellten Zeilenumbruch. Wenn Sie eine neue Zeile einfügen, wird dies von der im Terminal ausgeführten Shell als drückend angesehen Enter, sodass der Befehl ausgeführt wird.
Der Einfügevorgang wird vom Terminalemulator ausgeführt. Der eingefügte Text wird auf dieselbe Weise an die Anwendung übergeben, die im Terminal ausgeführt wird, wie der vom Benutzer eingegebene Text. Siehe Wie funktionieren Tastatureingabe und Textausgabe? Weitere Informationen zur Funktionsweise der Eingabe. Die Anwendung (hier die Shell) kann nicht zwischen Tastenanschlägen und einem Einfügevorgang unterscheiden.
Viele Terminalemulatoren unterstützen heutzutage Paste in Klammern . In klammert Paste - Modus die Anwendung kann eine Einfügeoperation von Tastatureingaben unterscheiden. Das Einfügen in Klammern ist nur dann nützlich, wenn die Anwendung mit eingefügtem Text etwas anderes macht. Sie wird also durch die Unterstützung von Anwendungen aktiviert und nicht vom Benutzer des Terminalemulators konfiguriert.
Zsh 5.1 (das vor einigen Wochen veröffentlicht wurde und daher in den meisten Distributionen noch nicht verfügbar ist) bietet Unterstützung für den Einfügemodus in Klammern. Wenn Sie Text einfügen, wird dieser nur in die Befehlszeile eingefügt und Sie können ihn bearbeiten, bevor Sie auf drücken Enter, um die Befehlszeile auszuführen.
Benutzer von oh-my-zsh können das Safe-Paste-Plugin auch in früheren Versionen von zsh verwenden.
Eine andere Sache, die Sie in zsh tun können, ist, die Auswahl als Zeichenfolge mit Anführungszeichen einzufügen (in Form von Backslashes vor jedem Shell-Sonderzeichen wie Leerzeichen). Geben Sie ein `xsel`
, um die primäre Auswahl (automatische Mausauswahl) oder `xsel -b`
den Inhalt der Zwischenablage (mit Ctrl+ kopierter Text) abzurufen C, und drücken Sie dann Tab.
Wenn Sie eine ältere zsh-Version haben und den Inhalt der Zwischenablage ohne Anführungszeichen einfügen möchten, können Sie eine Funktion definieren, die die Auswahl einfügt.
function zle_insert_x_selection {
LBUFFER+=$(xsel ${NUMERIC+-b} -o </dev/null)
}
zle -N zle_insert_x_selection
bindkey '\e\C-v' zle_insert_x_selection
Mit dieser Option .zshrc
können Sie Ctrl+ Alt+ drücken V, um die primäre Auswahl einzufügen, oder Ctrl+ U Ctrl+ Alt+ V, um den Inhalt der Zwischenablage einzufügen. Sie werden unverändert vor dem Cursor eingefügt, außer ohne nachgestellte Zeilenumbruch. Weitere Informationen zu Bash finden Sie unter Freigeben der Zwischenablage zwischen Bash und X11 .
Wenn Sie bash als Shell verwenden, können Sie drücken Ctrl-X Ctrl-E
, um einen Editor aufzurufen (definiert durch $ VISUAL oder $ EDITOR, z . B. vi
oder vielleicht nano
).
Sie können dann Ihre Befehle genau so einfügen, als würden Sie eine Datei bearbeiten. Sie werden ausgeführt, wenn Sie speichern und beenden. Oder abgebrochen, wenn Sie ohne Speichern beenden.
Um ein mehrzeiliges Einfügen in eine Eingabeaufforderung durchzuführen, öffnen Sie vor dem Einfügen einfache oder doppelte Anführungszeichen.
$ echo '
paste
...
...
'
Dann können Sie die Eingabetaste drücken, um das Echo wiederzugeben. Wenn Sie mit dem Pfeil nach oben fahren, befinden sich alle Zeilen, die Sie eingefügt haben, in einer bearbeitbaren Zeile.
Dies funktioniert, solange der eingefügte Text kein einziges Anführungszeichen enthält.
Verwenden Sie in einem Texteditorfenster die folgenden Verknüpfungen, um Text ohne \ n (Zeilenvorschub) zu kopieren:
Verwenden Sie in einem Browserfenster oder einer anderen Sache, in der der Text nicht bearbeitet werden kann, eine von zwei Techniken:
Wie eine richtige Auswahl (ohne \ n) aussieht:
ls -al
Wie eine falsche Auswahl (mit \ n) aussieht:
ls -al