เป็นกลุ่ม - เลือก / yank / ลบเนื้อหาระหว่างวงเล็บรวมถึงเครื่องหมายวงเล็บ


31

ในกลุ่มจะเป็นไปได้หรือไม่ที่จะเลือกเนื้อหาระหว่างวงเล็บรวมของวงเล็บที่คล้ายกับ

yi{ yi(

แต่ฉันต้องการรวมวงเล็บ

คำตอบ:


0

คุณสามารถเลื่อนเคอร์เซอร์ไปที่วงเล็บหนึ่งและทำvf{หรือvf(เพื่อให้คุณเข้าสู่โหมดภาพจากนั้นเลือกทุกอย่างจนกระทั่ง (และรวมถึง) วงเล็บ


5
จริงๆแล้วนี่จะเป็นการเลือกเฉพาะวงเล็บปีกเปิด หากคุณอยู่ในตำแหน่งที่เปิดf{อยู่คุณจะย้ายคุณไปยังตำแหน่งเปิดที่ใกล้ที่สุดที่คุณเปิดอยู่ สิ่งที่คุณอาจต้องการคือv%สิ่งที่จะนำคุณไปสู่การจับคู่ที่ตรงกันและสามารถใช้ได้ทั้งสองข้าง
Michael Mior

นี่ไม่ใช่คำตอบที่ถูกต้อง ดูคำตอบของ @ garyjohn ด้านล่าง
Michael Sandman

75

ใช่. ใช้aแทนiเป็น

ya{
ya(

ดู

:help a{
:help a(

และโดยทั่วไป

:help text-objects
:help 04.8

1
นี่ควรเป็นคำตอบที่ยอมรับได้!
phanhuy152

3

ไม่f{v%หรือf(v%ทำในสิ่งที่คุณต้องการ? มันเลื่อนเคอร์เซอร์ของคุณไปยัง {หรือ (ถัดไป, เข้าสู่โหมดภาพจากนั้นเลื่อนเคอร์เซอร์ของคุณไปยังการปิดที่เกี่ยวข้อง} หรือ) Fถ้าคุณอยู่แล้วที่ผ่านมาขอบเขตที่คุณต้องการเลือกคุณสามารถใช้เงินทุน งานก็เช่นกันเพื่อข้ามไปปิด} หรือ) เป็นครั้งแรกอีกด้วย f}v%-

เมื่อคุณมีสิ่งที่คุณต้องการเลือกคุณสามารถy, d, xฯลฯ มัน %คำสั่งทำงานหลายคู่สายเกินไปดังนั้นคุณจึงสามารถใช้เทคนิคนี้ในบล็อกขนาดใหญ่ของรหัสหากคุณต้องการ (แม้ว่าfและFทำไม่ได้ดังนั้นคุณต้องเริ่มต้นในทั้งบรรทัดแรกหรือที่ผ่านมา)

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

ya(

การแทนที่iคำสั่งดั้งเดิมในของคุณด้วยaจะทำสิ่งเดียวกันทุกประการยกเว้นว่าจะมีอักขระ '(' นี่คือ "yanking a block" ในขณะที่yi("yanking an i nner block"

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