ในตัวแก้ไขบรรทัด ZSH วิธีแทรกบรรทัดใหม่


13

สมมติว่าฉันกำลังแก้ไขบรรทัดเดียวด้วยเคอร์เซอร์ของฉันที่ตำแหน่งที่ระบุ:

$ abc  def ghi

ตอนนี้ฉันต้องการแยกออกเป็นสองบรรทัดและทำการแก้ไขต่อไป (เช่นกดปุ่ม ENTER จะทำในโปรแกรมแก้ไขข้อความ):

$ abc
$  def ghi

มีวิธีทำเช่นนี้ใน ZSH หรือไม่?


ควรabcถูกประหารหรือคุณต้องการแทรก\nตัวละครที่ตำแหน่งเคอร์เซอร์?
mpy

คำตอบ:


15

ในemacsโหมดของ ZLE :

… อักขระControl+ V(ASCII SYN) ถูกผูกไว้กับquoted-insertวิดเจ็ต ดังนั้นเพียงแค่ใส่Control+ Vแล้วControl+ J(ASCII LF)

ในviโหมดของ ZLE :

… อักขระControl+ Q(ASCII DC1) และControl+ Vถูกผูกไว้กับvi-quoted-insertวิดเจ็ต ดังนั้นอีกครั้งเพียงแค่ใส่Control+ Vแล้ว+ControlJ

โปรดจำไว้ว่า:

ขึ้นบรรทัดใหม่ที่อยู่ตรงกลางบรรทัดคำสั่งแยกคำสั่ง (ในคำศัพท์ของzshคู่มือ: ขึ้นบรรทัดใหม่และ;ยกเลิกรายการ ) อ้างถึงบรรทัดใหม่หากคุณไม่ต้องการ


ฉันสามารถผูกโหมด emacs เพื่อ Shift + Enter เพื่อแทรกการแทรกที่ยกมาโดยอัตโนมัติ อย่างไรก็ตามตั้งแต่ฉันเปลี่ยนเป็นโหมดเสียงเรียกเข้ามันไม่ทำงาน มีวิธีทำให้มันทำงานในโหมด vim หรือไม่?
CMCDragonkai

ในโหมด emacs คุณสามารถแทรกขึ้นบรรทัดใหม่ด้วย M-Return
SilverWolf - Reinstate Monica

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 ! หากคุณกด⌥↩︎ in พูดกล่องข้อความคุณจะได้รับบรรทัดใหม่ ไม่สามารถใช้งานในช่องแสดงความคิดเห็น SE ได้ (:
SilverWolf - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.