ล้างข้อมูลบรรทัดเร็วกว่า [0] [d] [$]


18

มีวิธีที่รวดเร็วกว่าในการลบข้อความในบรรทัดกว่า

  • กด0เพื่อข้ามไปยังจุดเริ่มต้นแล้ว
  • กดd$เพื่อลบจนกว่าจะสิ้นสุดบรรทัดหรือไม่

นอกจากนี้จะเกิดอะไรขึ้นถ้าฉันต้องการลบทุกอย่างยกเว้นการเยื้อง มีวิธีทำเช่นนั้นหรือไม่?

คำตอบ:


34

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

  1. dd จะลบบรรทัดปัจจุบัน (ไม่ชัดเจน)
  2. 0D จะล้างบรรทัดปัจจุบันรวมถึงช่องว่าง
  3. ^Dจะล้างบรรทัดปัจจุบันไม่รวมช่องว่าง ( ^dg_ประหยัดพื้นที่ต่อท้าย)
  4. 0C จะล้างบรรทัดปัจจุบันรวมถึงช่องว่างและนำคุณเข้าสู่โหมดแทรก
  5. ^Cจะล้างบรรทัดปัจจุบันไม่รวมช่องว่างและทำให้คุณเข้าสู่โหมดแทรก ( ^cg_ประหยัดพื้นที่ต่อท้าย)

ccหรือSจะทำงานเป็นทั้ง 4 หรือ 5 ถ้า 'autoindent' ปิดอยู่หรือเปิดตามลำดับ

ดังนั้นใช้สิ่งที่เหมาะกับการกระทำที่อยู่ในมือ ฉันเชื่อว่า0Dเป็นวิธีที่เร็วที่สุดในการล้างเส้น แต่คุณสามารถแมปสิ่งนั้นได้หากต้องการเพื่อทำให้เร็วขึ้น


7
@SuperScript Sเป็นคำพ้องความหมายสำหรับcc
FDinoff

1
ขอบคุณสำหรับคำตอบที่ดี @akshay; TYLTK มันขึ้นอยู่กับสิ่งที่ดีที่สุด: vi.stackexchange.com/…
Robbie Wxyz

9

อ๋อ หากมีสิ่งหนึ่งที่ฉันชอบเกี่ยวกับ Vim นั่นคือคำตอบของ "ฉันจะทำสิ่งนั้นได้หรือไม่" มักจะหนักแน่นใช่

0D ข้ามไปยังจุดเริ่มต้นจากนั้นลบผ่านจุดสิ้นสุดของบรรทัด

^D (ไม่ใช่ Ctrl + D) จะข้ามไปที่อักขระที่ไม่ใช่ช่องว่างตัวแรกจากนั้นลบไปจนจบ

(PS ฉันคิดออกตอนนี้และอยากจะแบ่งปันกับ noobs อื่น ๆ โปรดแจ้งให้เราทราบหากมีวิธีที่ดีกว่า)


6

ล้างบรรทัดที่มีหนึ่ง (เปลี่ยน) Sสำคัญ:

สิ่งนี้ยังคงเยื้อง

คุณเข้าสู่โหมดแทรกที่ตำแหน่งแรกหลังจากเยื้องหรือที่จุดเริ่มต้น - สิ่งที่คุณต้องการแทนที่บรรทัด - ดังนั้นชื่อS- แทนเหมือน

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

Sเป็นกุญแจสำคัญที่ดี
domi91c

3

ด้วยปลั๊กอิน" vim-textobj-line " ของ Kana คุณสามารถใช้การดำเนินการบนบรรทัดที่เยื้องกับil(เช่นdil) หรือทั้งบรรทัดโดยไม่ต้องขึ้นบรรทัดใหม่ด้วยal(เช่นyal) ข้อดีของวิธีการนี้คือบอบบาง: แทนที่จะต้องคิดทั้งการเคลื่อนไหว (เริ่มต้น, สิ้นสุด) สำหรับการทำงานที่ต้องการคุณระบุ text-object โดยตรง : i n l ine, a l ine

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