ZSH 라인 편집기에서 새 라인을 삽입하는 방법은 무엇입니까?


13

커서를 표시된 위치에 놓고 한 줄을 편집한다고 가정 해보십시오.

$ abc  def ghi

이제 두 줄로 나누고 편집을 계속하고 싶습니다 (ENTER를 누르는 것이 텍스트 편집기에서하는 것처럼).

$ abc
$  def ghi

ZSH에서 이것을 수행하는 방법이 있습니까?


해야 abc실행 또는 당신이 삽입 할 할 수 \n커서 위치에있는 문자를?
mpy

답변:


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매뉴얼 용어에서 : 줄 바꿈과 목록; 종료 ) 원하지 않는 경우 줄 바꿈을 인용하십시오.


따옴표 붙은 삽입을 자동으로 삽입하기 위해 이맥스 모드를 Shift + Enter에 바인딩 할 수있었습니다. 그러나 vim 모드로 전환했기 때문에 작동하지 않습니다. Vim 모드에서 작동시키는 방법이 있습니까?
CMCDragonkai

이맥스 모드에서는 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) 또는 ⎋, ↩︎ ( Escthen Return)를 사용하십시오.

이것은 bindkey -e이전에 또는 .zshrc의 어딘가에 전화 한 경우에만 작동합니다 .


PS : 이것은 OS X에서도 작동합니다 ! 예를 들어 메시지 상자에서 ⌥↩︎를 누르면 새 줄이 나타납니다. SE 주석 상자에서는 작동하지 않습니다. (:
SilverWolf-복원 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.