In ZSH line editor, how to insert a new line?

Say I am editing a single line, with my cursor at the indicated position:

$abc ꕯ def ghi  I would now like to split into two lines and continue editing (like hitting ENTER would do in a text editor): $ abc
$ꕯ def ghi  Is there a way to do this in ZSH? • Should abc be executed or do you want to insert a \n character at the cursor position? – mpy Feb 19 '14 at 23:30 3 Answers In ZLE's emacs mode: … the Control+V character (ASCII SYN) is bound to the quoted-insert widget. So just enter Control+V then Control+J (ASCII LF). In ZLE's vi mode: … the Control+Q (ASCII DC1) and Control+V characters are bound to the vi-quoted-insert widget. So again just enter Control+V, then Control+J. Remember: Newlines in the middle of command lines separate commands. (In the terminology of the zsh manual: both newline and ; terminate a list.) Quote the newline if you don't want that. • I was able to bind the emacs mode to Shift + Enter to automatically insert a quoted insert. However since I switched to the vim mode, it doesn't work. Is there a way to make it work in vim mode? – CMCDragonkai Mar 6 '17 at 9:57 • In emacs mode, you can also insert a newline with M-Return. – SilverWolf Sep 7 '17 at 20:37 Here is a "vimmer" way in ZLE vi-mode that does not involve ctrl chords. if your line looks like follows, and you are in normal mode:$ abc ꕯ def ghi

type this: DoESCp

total key presses: 4.

explanation:

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


Use ⌥↩︎ (Option / Alt+ Return), or ⎋, ↩︎ (Esc then Return).

This will only work if you've called bindkey -e previously or somewhere in your .zshrc.

• PS: This also works in OS X! If you press ⌥↩︎ in, say, the Messages box, you'll get a new line. Doesn't work in SE comment boxes, though. (: – SilverWolf Sep 7 '17 at 20:36