VIM: การลบออกจากตำแหน่งปัจจุบันจนกระทั่งมีที่ว่าง


172

บ่อยครั้งที่การพัฒนาฉันพบกับวัตถุที่ซ้อนกันซึ่งฉันต้องการลบออกจากโค้ดตรงกลางบรรทัดเช่นนี้

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

ส่วนที่ฉันต้องการลบคือ:

this.cbAllSyncs.SelectedItem.ToString()

ฉันรู้ว่าฉันสามารถนับจำนวนคำและจุดและป้อน7dwเพื่อลบออกจากตำแหน่งเคอร์เซอร์ปัจจุบันของฉันของ "นี้" อย่างไรก็ตามสิ่งที่ฉันชอบที่จะทำคือไม่ต้องนับเลยและลบลงในช่องว่างด้วยคำสั่งเดียว เป็นไปได้ไหม

คำตอบ:


343

ลองdtspaceดู โดยทั่วไปdtxจะลบจากตำแหน่งปัจจุบันจนกระทั่งก่อนหน้าxนี้ เพิ่งtxเลื่อนเคอร์เซอร์ไปก่อนอักขระxในบรรทัดปัจจุบัน

dfspaceในการลบและรวมถึงพื้นที่การใช้งาน


2
มันใช้งานได้ดี! มันทำให้ฉันมีความยืดหยุ่นมากขึ้นในการไปยังจุดอื่น ๆ ภายในวัตถุนั้น ขอบคุณ!
Blake Blackwell

27
df<space>ลบเกินและรวมถึงช่องว่างถัดไป
เกล็นแจ็

5
มีประโยชน์เท่าเทียมกัน dfT <space> ลบไปยังพื้นที่ก่อนหน้า
hgmnz

3
นอกจากนี้คุณยังสามารถเพิ่มจำนวนก่อนที่tจะลบได้ถึงตัวละครจำนวนมาก เช่นd2t<space>จะลบช่องว่างสูงสุดสองรายการ
Waseem

7
ฉันมักจะใช้ช่วยtในการจำเป็น'จนถึง stackoverflow.com/questions/7409134/ …
acw

71

คุณสามารถใช้dWหรือdEตามที่@glennแนะนำหากคุณไม่ต้องการลบช่องว่าง

คำ (ตัวพิมพ์ใหญ่ W) ประกอบด้วยลำดับของอักขระที่ไม่ใช่ช่องว่างที่คั่นด้วยพื้นที่สีขาว

ให้ดูที่การเคลื่อนไหวคำ


1
ถ้าฉันสามารถลงคะแนนสำหรับสองคำตอบฉันจะตั้งแต่นี้แก้ไขคำถามเฉพาะที่ฉันถาม ขอบคุณสำหรับลิงค์!
Blake Blackwell

5
หรือdE- ลบจนกว่าจะสิ้นสุดของลำดับของอักขระที่ไม่ใช่ช่องว่างที่ (ไม่รวมช่องว่างต่อไปนี้)
เกล็น Jackman

@BlakeBlackwell ใครบอกว่าคุณไม่สามารถลงคะแนนตอบทั้งสองได้ ฉันทำคำถามนี้ไปแล้ว นี่คือข้อมูลที่เป็นประโยชน์
javadba

20

ทางออกหนึ่งที่เป็นไปได้คือการใช้การลบด้วยการค้นหา

ดังนั้นพิมพ์d/<space>และเป็นกลุ่มจะลบจนกว่าจะถึงช่องว่าง


2
นี่เป็นเรื่องทั่วไปมากกว่าdWเพราะคุณยังสามารถใช้เพื่อลบจากเคอร์เซอร์ไปยังตัวละครใด ๆ เช่น2d/+ในกรณีนี้ - ซึ่งจะลบการต่อข้อมูลสตริงด้วยเช่นกัน
เดฟจาร์วิส

1
คุณสามารถทำได้ 2dW และมันก็ทำงานได้ดีเช่นกัน ในความเป็นจริงฉันคิดว่ามันเป็นทางออกที่ดีกว่าเพราะมันจะทำงานกับแท็บและช่องว่างอื่น ๆ นอกจากนี้ยังลบช่องว่างต่อท้ายที่คุณต้องการลบจนกว่า
barkmadley

15

หากคุณต้องการลบจากที่ใดก็ได้ภายใน WORD และในคำสั่งเดียวให้ใช้ daW

(แน่นอนคุณสามารถใช้dawถ้าคุณต้องการที่จะ จำกัด คำ)

ฉันใช้มันค่อนข้างมากเพราะมันเปลี่ยนไปใช้ต้นคำ (ในกรณีของคุณ)


daw และ daW ทำงานแบบเดียวกันสำหรับฉัน - ทั้งคำทั้งลบไม่ว่าตัวอักษรของฉันจะอยู่ที่ใด ไม่แน่ใจว่าทำไม
จะ

daw จะไม่ลบช่องว่างสีขาวหลังจากคำในขณะที่ daW จะ
Louis

4
  • ลบสำหรับตำแหน่งปัจจุบันของตัวอย่างอักขระเฉพาะ "

    dt"
  • ลบคำออกจากเคอร์เซอร์ตำแหน่งจนกว่าจะสิ้นสุดคำ

    ใบสำคัญแสดงสิทธิอนุพันธ์
  • ลบทั้งคำที่เคอร์เซอร์อยู่โดยไม่คำนึงถึงตำแหน่งที่เคอร์เซอร์อยู่บนคำซึ่งจะทำให้คุณอยู่ในโหมดแทรกเพื่อให้คุณสามารถแทรกได้ทันที

    กรมโรงงานอุตสาหกรรม

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