Dans l'éditeur de ligne ZSH, comment insérer une nouvelle ligne?

13

Supposons que je modifie une seule ligne, avec mon curseur à la position indiquée:

$ abc  def ghi

Je voudrais maintenant diviser en deux lignes et continuer à éditer (comme appuyer sur ENTREE le ferait dans un éditeur de texte):

$ abc
$  def ghi

Existe-t-il un moyen de le faire dans ZSH?

Owen
la source
Doit abcêtre exécuté ou voulez-vous insérer un \ncaractère à la position du curseur?
mpy le

Réponses:

14

En emacsmode ZLE :

… Le caractère Control+ V(ASCII SYN) est lié au quoted-insertwidget. Il suffit donc d'entrer Control+ Vpuis Control+ J(ASCII LF).

En vimode ZLE :

… Les caractères Control+ Q(ASCII DC1) et Control+ Vsont liés au vi-quoted-insertwidget. Encore une fois, entrez simplement Control+ V, puis Control+ J.

Rappelles toi:

Les sauts de ligne au milieu des lignes de commande séparent les commandes. (Dans la terminologie du zshmanuel: à la fois la nouvelle ligne et la ;fin d'une liste .) Citez la nouvelle ligne si vous ne le souhaitez pas.

JdeBP
la source
J'ai pu lier le mode emacs à Shift + Enter pour insérer automatiquement un insert cité. Cependant, depuis que je suis passé en mode vim, cela ne fonctionne pas. Existe-t-il un moyen de le faire fonctionner en mode vim?
CMCDragonkai
En mode emacs, vous pouvez également insérer une nouvelle ligne avec M-Return.
SilverWolf
1

Voici une méthode "vimmer" en mode vi ZLE qui n'implique pas d' ctrlaccords.

si votre ligne ressemble à ceci et que vous êtes en mode normal : $ abc ꕯ def ghi

tapez ceci: DoESCp

total des pressions sur les touches: 4.

explication:

`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
la source
1

Utilisez ⌥↩︎ ( Option / Alt+ Return), ou ⎋, ↩︎ ( Escpuis Return).

Cela ne fonctionnera que si vous avez appelé bindkey -eprécédemment ou quelque part dans votre .zshrc.

SilverWolf - Rétablir Monica
la source
PS: Cela fonctionne également sous OS X ! Si vous appuyez sur ⌥↩︎, disons, la zone Messages, vous obtiendrez une nouvelle ligne. Cependant, ne fonctionne pas dans les zones de commentaires SE. (:
SilverWolf