在ZSH行编辑器中,如何插入新行?


13

假设我正在编辑一行,光标位于指示的位置:

$ abc  def ghi

我现在想分成两行并继续编辑(例如在文本编辑器中按ENTER键):

$ abc
$  def ghi

ZSH中有没有办法做到这一点?


应该abc执行还是要\n在光标位置插入一个字符?
mpy 2014年

Answers:


15

在ZLE emacs模式下:

Control+ V字符(ASCII SYN)绑定到quoted-insert小部件。因此,只需输入Control+ V然后Control+ J(ASCII LF)。

在ZLE vi模式下:

Control+ Q(ASCII DC1)和Control+ V字符绑定到vi-quoted-insert小部件。因此,再次输入Control+ V,然后输入Control+ J

记得:

命令行中间的换行符分隔命令。(在zsh手册的术语中:换行符和;终止列表。)如果不需要,请用换行符引起来。


我能够将emacs模式绑定到Shift + Enter来自动插入带引号的插入内容。但是,因为我切换到了vim模式,所以它不起作用。有没有办法使其在vim模式下工作?
CMCDragonkai

在emacs模式下,还可以使用M-Return插入换行符。
SilverWolf-恢复莫妮卡

1

这是ZLE vi模式下不涉及ctrl和弦的“颤音”方式。

如果您的行如下所示,并且您处于正常模式:$ abcꕯdef ghi

输入: DoESCp

按键总数:4。

说明:

`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.

1

使用⌥↩︎(Option / Alt+ Return)或↩︎,↩︎(Esc然后Return)。

仅当您bindkey -e之前或在.zshrc中调用过此功能时,此功能才有效。


PS:这在OS X中也适用!如果在“消息”框中按⌥↩︎,则将出现新行。但是,在SE注释框中不起作用。(:
SilverWolf-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.