ZSH行エディターで、新しい行を挿入するにはどうすればよいですか?


13

カーソルを指定の位置に置いて、1行を編集しているとします。

$ abc  def ghi

ここで、2行に分割して編集を続行します(テキストエディターでEnterキーを押すのと同じです)。

$ abc
$  def ghi

ZSHでこれを行う方法はありますか?


必要がありますabc実行するか、挿入したいん\nカーソル位置の文字を?
mpy

回答:


14

ZLEのemacsモードでは:

Control+ V文字(ASCII SYN)がquoted-insertウィジェットにバインドされています。Control+ と入力してからVControl+ 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 2017年

emacsモードでは、M-Returnを使用して改行を挿入することもできます。
SilverWolf-モニカを2017年

1

これは、ctrlコードを含まないZLE viモードの「ビマー」な方法です。

行が次のようになり、通常モードの場合:$ 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でも機能します!たとえば、メッセージボックスでpressを押すと、新しい行が表示されます。ただし、SEコメントボックスでは機能しません。(:
SilverWolf-モニカを2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.