มีคำสั่งให้แบ่งบรรทัดใน Vim หรือไม่?


15

ในกลุ่มJคีย์จะรวมสองบรรทัดเข้าด้วยกัน มีการผสมคีย์ในตัวที่คล้ายคลึงกันเพื่อแยกบรรทัดด้วยการขึ้นบรรทัดใหม่ (ที่ตำแหน่งเคอร์เซอร์หรือคล้ายกัน) หรือไม่

อีกวิธีหนึ่งจะเป็นวิธีที่แข็งแกร่งที่สุดในการกำหนดชุดคีย์เพื่อทำสิ่งนั้น (ในโหมดปกติไม่ใช่โหมดแทรก)


ดูเพิ่มเติมที่ : stackoverflow.com/questions/624821/vim-split-line-command
dreftymac

คำตอบ:


16

ไม่ไม่มีคำสั่งในตัวสำหรับสิ่งนั้น

เมื่อฉันต้องการที่จะแยกบนที่ฉันทำ<Space>r<CR>

--- แก้ไข ---

ความคิดเห็น @ keith-nicholas ทำให้ฉันนึกถึงคำถามนี้ FWIW ฉันคิดวิธี "สากล" หวังว่าในเวลาเฉลี่ย:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>

4
การใช้r<CR>นั้นฉลาดจริงๆ! ขอบคุณ!
Marcelo

1
เยี่ยมมาก! น่ารำคาญสุด ๆ เมื่อเข้าไปแทรกเพื่อแทรกเส้น
Keith Nicholas

ฉันพบว่าs<CR>ยังคงเยื้อง แต่r<CR>ไม่ได้ทำ
toxefa

5

a Enter Escเพื่อแยกทางด้านขวาของเคอร์เซอร์หรือi Enter Escเพื่อแยกไปทางซ้าย


1
อย่างนั้นแหละ. เพียงแค่ขึ้นบรรทัดใหม่เดียว อีกทางเลือกหนึ่ง: ใช้ r + <return> เพื่อแทนที่ตัวละครภายใต้เคอร์เซอร์ด้วยบรรทัดใหม่ คงจะดีถ้ามีคำสั่งตัวอักษรเดียวสำหรับมัน แต่เท่าที่ฉันรู้ว่ามันไม่มี
Tonny

2

วิธีที่ง่ายที่สุดที่ฉันพบในการแบ่งบรรทัดใน Vim คือคำสั่งโหมดปกติgq(พิมพ์ตัวอักษรทั้งสองอย่างต่อเนื่องอย่างรวดเร็วในโหมดปกติหรือโหมดภาพ):

  • ในโหมดภาพมันจะแยกสิ่งที่เลือกไว้
  • ในโหมดปกติคุณจะตามgqด้วยท่าทาง

ตัวอย่างเช่นgqlจะแบ่งหนึ่งบรรทัดเป็นความกว้างที่ตั้งไว้ในปัจจุบัน หากต้องการตั้งค่าความกว้างของเส้นแบ่งที่จะแตกต่างจากการตั้งค่าปัจจุบันของคุณคุณสามารถใช้

:set textwidth=<n>

โดยที่ n = จำนวนอักขระที่คุณต้องการในหนึ่งบรรทัดเช่น 10 และเปลี่ยนกลับเป็นความกว้างปกติของคุณเมื่อคุณทำเสร็จแล้ว

ได้ข้อมูลนี้จาก Youtube วิดีโอโดย Kholidfu ที่แสดงให้เห็นถึงวิธีการเข้าร่วมและสายแยกในโหมดปกติโดยใช้การเคลื่อนไหว: กลุ่ม Tutorial - เข้าร่วมและเส้นสปลิต


1

คุณสามารถกำหนดแผนที่ของคุณเอง ในการกำหนด z เป็นคำสั่งตัวอย่างเช่น:

:map z i<CTRL+m>

0

คุณสามารถบันทึกแมโคร:

ในโหมดปกติให้พิมพ์ "q +" เพื่อเริ่มการบันทึก กด "i" แมโครที่คุณต้องการบันทึก จากนั้นกดปุ่ม "q" อีกครั้งเพื่อหยุดการบันทึก

เพื่อใช้มาโครไปที่โหมดปกติและพิมพ์ "@ + ตัวอักษร"

ในกรณีของฉันฉันใช้ "b" เพื่อใช้แมโครนี้: เพื่อบันทึกประเภทในโหมดปกติ "qbiq" เพื่อใช้ประเภทในโหมดปกติ "@b"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.