No editor de linhas ZSH, como inserir uma nova linha?

13

Digamos que estou editando uma única linha, com o cursor na posição indicada:

$ abc  def ghi

Agora eu gostaria de dividir em duas linhas e continuar editando (como pressionar ENTER faria em um editor de texto):

$ abc
$  def ghi

Existe uma maneira de fazer isso no ZSH?

Owen
fonte
Deve abcser executado ou você deseja inserir um \ncaractere na posição do cursor?
Mpy

Respostas:

14

No emacsmodo ZLE :

… O caractere Control+ V(ASCII SYN) está vinculado ao quoted-insertwidget. Então, basta inserir Control+ Ve Control+ J(ASCII LF).

No vimodo ZLE :

… Os caracteres Control+ Q(ASCII DC1) e Control+ Vsão vinculados ao vi-quoted-insertwidget. Então, novamente, basta digitar Control+ V, depois Control+ J.

Lembrar:

As novas linhas no meio das linhas de comando separam comandos. (Na terminologia do zshmanual: nova linha e ;encerre uma lista .) Cite a nova linha se não desejar.

JdeBP
fonte
Consegui ligar o modo emacs ao Shift + Enter para inserir automaticamente uma inserção entre aspas. No entanto, desde que mudei para o modo vim, ele não funciona. Existe uma maneira de fazê-lo funcionar no modo vim?
CMCDragonkai
No modo emacs, você também pode inserir uma nova linha com M-Return.
SilverWolf - Restabelece Monica
1

Aqui está uma maneira "vimmer" no modo vi do ZLE que não envolve ctrlacordes.

se sua linha for como segue, e você estiver no modo normal : $ abc ꕯ def ghi

digite isto: DoESCp

total de teclas pressionadas: 4.

explicação:

`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
fonte
1

Use ⌥↩︎ ( Option / Alt+ Return) ou ⎋, ↩︎ ( Escentão Return).

Isso só funcionará se você tiver chamado bindkey -eanteriormente ou em algum lugar do seu .zshrc.

SilverWolf - Restabelecer Monica
fonte
PS: Isso também funciona no OS X ! Se você pressionar ⌥↩︎, digamos, na caixa Mensagens, você obterá uma nova linha. Porém, não funciona nas caixas de comentários do SE. (:
SilverWolf - Restabelece Monica