ลบจากเคอร์เซอร์จนถึงการเกิดที่ n ของอักขระ x


16

ฉันรู้ว่าฉันสามารถลบได้จากเคอร์เซอร์จนถึงและรวมถึงการเกิดขึ้นครั้งแรกของตัวละครxด้วยd/x<CR>หรือv/x<CR>dถ้าฉันต้องการที่จะเห็นการเลือกก่อนแล้วจึงลบ ฉันจะลบออกจากตำแหน่งเคอร์เซอร์ปัจจุบันจนถึงเหตุการณ์ที่nของx ได้อย่างไร?

เช่นถ้าเคอร์เซอร์อยู่หลังช่องว่างแรกใน

yada yada yada
yada yada yada x
yada yada yada yada x
yada yada yada yada x

xx

และผมพิมพ์คำสั่งที่จะลบได้ถึงสามxความต้องการผลที่ได้จะเป็น:

ญาดา
xx

คำตอบ:


22

คุณทำได้ :

wd4/x<Enter>

หากคุณเริ่มที่ด้านบนซ้ายของข้อความ

คำอธิบาย

  • w : เลื่อนไปยังจุดเริ่มต้นของคำถัดไป
  • d : ลบ
  • 4/x<Enter> : จนกว่าการเกิดขึ้นครั้งที่ 4 ของ x

หากคุณไม่ทราบจำนวนครั้งที่คุณต้องการทำล่วงหน้าคุณสามารถทำได้: d/x<Enter>จากนั้นกด.เพื่อทำซ้ำ


5
เคล็ดลับพิเศษ: นี้ยังทำงานร่วมกับfเพื่อน ๆ ( F, t, T, ;): เช่น2fxคุณจะได้รับที่สองxหรือ2;จะทำซ้ำที่ผ่านมาfเป็นครั้งที่สอง
Martin Tournoij

1
@Carpetsmoker: ใช้งานได้กับตัวอักษรในบรรทัดปัจจุบันเท่านั้น
JürgenKrämer

5

คุณสามารถทำได้โดยพิมพ์

<n>df<x>

ที่อยู่:

<n> is the number of occurrence of particular character
df<x> means delete till you find the occurrence of character x

0
<n>macro 

มักใช้ในกลุ่มเพื่อทำซ้ำแมโคร "n" ครั้ง

ดังนั้นเพื่อที่จะลบจนเกิด 1 x 1dfxคุณจะใช้ ในทำนองเดียวกันการลบจนเกิด 3 x 3dfxคุณจะใช้


1
ฉันคิดว่าคุณพลาดคำว่า "แมโคร": ในกลุ่มแมโครคือลำดับของคีย์ที่บันทึกไว้ในการลงทะเบียนและการโทรโดย@xที่การxลงทะเบียนของคุณอยู่ที่ไหน สิ่งที่คุณอ้างถึงคือคำสั่งโหมดปกติ
statox

ใช่ฉันหมายถึงคำสั่งปกติ แต่นี่เป็นเรื่องจริงสำหรับแมโครเช่นกัน เราสามารถเรียกใช้แมโคร n ครั้งโดยการเพิ่มตัวเลขก่อนแมโคร
thenakulchawla

1
ใช่มันเป็นเรื่องจริง ฉันแค่ชี้ให้เห็นว่า<n>macroไม่ใช่เครื่องหมายมาตรฐานในกลุ่มสำหรับมาโครและเนื่องจากคำตอบของคุณใช้คำสั่งโหมดปกติมันค่อนข้างเหมือนกับของ kapil
statox

0

ได้รับ:

yada yada yada$
yada yada yada x$
yada yada yada x$
yada yada yada x$
xx$

ที่$บ่งบอกถึงการสิ้นสุดของเส้น ( :set listโหมด) ถ้าเคอร์เซอร์อยู่ในช่วงเริ่มต้นของการที่สองyadaในบรรทัดแรกเป็นครั้งแรกที่เรามีการสำรองข้อมูลไปยังพื้นที่ก่อนที่จะใช้hเพื่อรวมไว้ในการลบ 4d/xEnterแล้วก็ ในคำอื่น ๆ d/xเพียงแค่การนับในด้านหน้าของ ผลลัพธ์ที่ได้คือ:

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