Wie füge ich im ZSH-Zeileneditor eine neue Zeile ein?

12

Angenommen, ich bearbeite eine einzelne Zeile mit dem Cursor an der angegebenen Position:

$ abc  def ghi

Ich möchte jetzt in zwei Zeilen aufteilen und die Bearbeitung fortsetzen (wie dies bei einem Texteditor der Fall wäre, wenn Sie die EINGABETASTE drücken):

$ abc
$  def ghi

Gibt es eine Möglichkeit, dies in ZSH zu tun?

Owen
quelle
Sollte abcausgeführt werden oder möchten Sie ein \nZeichen an der Cursorposition einfügen ?
Mpy

Antworten:

13

Im ZLE- emacsModus:

… Das Control+ V-Zeichen (ASCII SYN) an das quoted-insertWidget gebunden ist . Geben Sie einfach Control+ Vdann Control+ J(ASCII LF) ein.

Im ZLE- viModus:

… Die Zeichen Control+ Q(ASCII DC1) und Control+ Vsind an das vi-quoted-insertWidget gebunden . Also nochmal einfach Control+ V, dann Control+ eingeben J.

Merken:

Zeilenumbrüche in der Mitte der Befehlszeilen trennen Befehle. (In der Terminologie des zshHandbuchs: sowohl Zeilenumbruch ;als auch Liste beenden .) Zitieren Sie den Zeilenumbruch, wenn Sie das nicht möchten.

JdeBP
quelle
Ich konnte den Emacs-Modus an Umschalt + Eingabetaste binden, um automatisch eine zitierte Einfügung einzufügen. Da ich jedoch in den VIM-Modus gewechselt bin, funktioniert es nicht. Gibt es eine Möglichkeit, es im Vim-Modus zum Laufen zu bringen?
CMCDragonkai
Im Emacs-Modus können Sie mit M-Return auch eine neue Zeile einfügen.
SilverWolf - Stellen Sie Monica
1

Hier ist ein "Vimmer" Weg im ZLE vi-Modus, der keine ctrlAkkorde beinhaltet .

Wenn Ihre Zeile wie folgt aussieht und Sie sich im normalen Modus befinden: $ abc ꕯ def ghi

Geben Sie Folgendes ein: DoESCp

Gesamtzahl der Tastendrücke: 4.

Erläuterung:

`D` cuts from cursor to the end of the line and places cut string in register
`o`opens a new line places the cursor in it, and switches to insert mode
`<esc>` switches to normal pode
`p` paste register content.
Ninrod
quelle
1

Verwenden Sie ⌥↩︎ ( Option / Alt+ Return) oder ⎋, ↩︎ ( Escdann Return).

Dies funktioniert nur, wenn Sie bindkey -ezuvor oder irgendwo in Ihrer .zshrc angerufen haben.

SilverWolf - Monica wieder einsetzen
quelle
PS: Das funktioniert auch unter OS X ! Wenn Sie beispielsweise im Feld Nachrichten box drücken, wird eine neue Zeile angezeigt. Funktioniert jedoch nicht in SE-Kommentarfeldern. (:
SilverWolf - Reinstate Monica