ฉันชอบ/* ... */
(C ansi ข้อคิดเห็น) ดังนั้นนี่คือเคล็ดลับของฉันสำหรับคุณ คุณสามารถปรับมันเพื่อใช้ในกรณีที่แตกต่างกันแน่นอน
แสดงความคิดเห็นด้วย / * ... * /
เลือกข้อความ (ไปที่จุดเริ่มต้นเริ่มบล็อกภาพข้ามด้วย}
):
<c-V>}
พิมพ์คำสั่งที่จะใช้ในการเลือก
:norm i/* <c-v><esc>$a */
คำสั่งจะมีลักษณะดังนี้: :'<,'>norm i /* ^[$a */
ดู (i *) สำหรับรายละเอียด
ยกเลิกการใส่เครื่องหมายข้อคิดเห็น / * ... * /
เลือกข้อความ (เหมือนก่อนหน้าหรือวิธีอื่นที่คุณชอบ):
<c-V>}
พิมพ์คำสั่งที่จะใช้ในการเลือก
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
คำสั่งจะมีลักษณะดังนี้: :'<,'>norm :s-\s*/\*\s*-^M$bbld$
ดู (ii *) สำหรับรายละเอียด
ผลลัพธ์
ผลคือความคิดเห็นทีละบรรทัด:
Comment block
Comment block
Comment block
กลายเป็น (และในทางกลับกัน):
/* Comment block */
/* Comment block */
/* Comment block */
มันดีกว่าที่จะบันทึกเป็นบางส่วนmap
หรือ@reg
ในของคุณ.vimrc
เพราะมันเป็นประเภทมาก หากคุณต้องการแบบเดี่ยว/*
และแบบ*/
เต็มบล็อคให้ใช้:
แสดงความคิดเห็นด้วย * / * * / บล็อกทั้งหมด
บันทึกไว้ในการลงทะเบียนโดยการบันทึกด้วยพูดqc
แล้วที่จุดเริ่มต้นของย่อหน้าเพื่อแสดงความคิดเห็น:
v}di/* */<esc>hhhp
และอย่าลืมq
อีกครั้งเพื่อให้การบันทึกเสร็จสิ้น
ดู (iii *) สำหรับรายละเอียด
ยกเลิกหมายเหตุเดียว / * * / จากบล็อก
@u
บันทึกไว้ในทะเบียนกล่าวว่า วางเคอร์เซอร์ไว้ที่ใดก็ได้ในบล็อกและ:
?/\*<enter>xx/\*/<enter>xx
บันทึกการลงทะเบียนด้วยq
คำสั่งเสร็จสิ้น
ดู (iv *) สำหรับรายละเอียด
ผลลัพธ์
Effect เป็นความคิดเห็นเดียวสำหรับหลายบรรทัด:
Comment block
Comment block
Comment block
กลายเป็น (และในทางกลับกัน):
/* Comment block
Comment block
Comment block */
คำอธิบาย
(i *)มันทำงานโดยใช้norm
ซึ่งใช้คำสั่งเดียวกันซ้ำ ๆ กันในทุกบรรทัดที่เลือก คำสั่งเพียงแค่แทรก/*
, ค้นหาจุดสิ้นสุดของบรรทัดนั้นและเสร็จสิ้นโดยการแทรก*/
:norm i/* <c-v><esc>$a */
(ii *)นอกจากนี้ยังใช้norm
เพื่อทำการค้นหา / แทนที่ซ้ำในทุกบรรทัด ค้นหาspaces /* spaces
และแทนที่โดยไม่มีอะไร หลังจากนั้นค้นหาจุดสิ้นสุดของบรรทัดย้อนกลับไปสองคำใช้อักษรขวาลบไปยังจุดสิ้นสุด
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *)เลือกย่อหน้าตามv}
, ลบ, แทรกความคิดเห็นที่เปิดและปิด, ย้ายไปที่ตรงกลางและวางบล็อกที่ถูกลบ
v}di/* */<esc>hhhp
(iv *)ทุกที่ตรงกลางค้นหาย้อนหลัง/*
ลบ ไปข้างหน้า a */
, ลบมัน
?/\*<enter>xx/\*/<enter>xx