ฉันจะล้างทะเบียน / ทะเบียนหลายรายการได้อย่างสมบูรณ์ได้อย่างไร


16

ผมค่อนข้างบ่อยใช้:registersคำสั่งเพื่อแสดงเนื้อหาของทั้งหมดลงทะเบียน (I ลืมสิ่งที่ฉันใส่ที่ตรงกับสิ่งที่บทบาทของ"*, "., "%ฯลฯ )

โดยเฉพาะอย่างยิ่งเพราะฉันตั้งค่า"ตัวเลือกในviminfoตัวเลือกและด้วยเหตุนี้การลงทะเบียนของฉันจะยังคงอยู่ระหว่างเซสชันเสียงเรียกเข้าของฉัน (ซึ่งโดยทั่วไปแล้วฉันต้องการในระยะสั้น) ตลอดเวลา:registersรายการจะยาวขึ้นเรื่อย ๆ และยุ่งยากมากขึ้น กับสิ่งที่เก่าจริงๆ

จนถึงตอนนี้วิธีเดียวที่ฉันพบว่าการแก้ไขนี้คือการแก้ไขเนื้อหาลงทะเบียน 'เก่า' บางส่วนออกด้วยตนเอง~/.viminfoซึ่งฉันต้องทำด้วยvim -u NONEและจึงยุ่งยากเล็กน้อย

มีวิธีที่สะอาดกว่าในการล้างการลงทะเบียนทั้งหมดหรือล้างการลงทะเบียนเฉพาะดังนั้นจึงไม่ปรากฏใน:registersรายการอีกต่อไปหรือไม่

คำตอบ:


12

:regในระยะสั้นมีไม่ได้เป็นวิธีทำความสะอาดเช็ดลงทะเบียนเพื่อให้สมบูรณ์ว่าพวกเขาหายไปจาก

แทนที่จะมืดรอบกับ~/.viminfoผมมักจะ "softclear" ลงทะเบียนเมื่อฉันจริงๆอย่างแท้จริงและทำกับพวกเขาโดยการตั้งค่าให้เป็นที่ว่างเปล่า เพื่อล้างการaลงทะเบียนตัวอย่างเช่นฉันพิมพ์qaqเพื่อตั้งค่าการaลงทะเบียนเป็นสตริงว่าง เท่ากัน:let @a=''ก็ทำเช่นเดียวกัน

จากนั้นการดูผลลัพธ์ของ:regยังคงมีประโยชน์เพราะง่ายต่อการแยกแยะระหว่างการลงทะเบียนที่ว่างเปล่าและการลงทะเบียนที่มีอยู่ ในทางกลับกันฉันพบว่าการจดทะเบียนชื่อทั้งหมดของฉันนั้นอยู่ที่แถวบนสุด (มาโคร) หรือแถวหลัก (สิ่งที่มีประโยชน์ในการวาง) และจากนั้นฉันก็ใช้รีจิสเตอร์ที่มีชื่อประมาณ 15 รายการเท่านั้น

มีกระทู้ในรายการส่งเมลเป็นกลุ่มเมื่อไม่กี่ปีก่อนซึ่งสรุปว่าไม่มีวิธีที่ง่ายกว่าในการล้างข้อมูลรีจิสเตอร์


5

สำหรับผู้ที่ต้องการที่จะลบชื่อลงทะเบียน (พูดa) จาก:registersรายการมีเป็นวิธีที่จะทำในขณะนี้ :call setreg('a', [])เรียกใช้คำสั่ง

ฉันพบสิ่งนี้จากคำถามนี้ใน StackOverflow จากผู้ใช้ @LucHermitte คำตอบของเขามีรายละเอียดวิธีล้างการลงทะเบียนหลายรายการ หากคุณต้องการให้งานนี้ง่ายสุด ๆ ให้คุณสร้างสรรค์ด้วย.vimrc:)


3

ใส่สิ่งนี้ใน.vimrc:

command! WipeReg for i in range(34,122) | silent! call setreg(nr2char(i), []) | endfor

และล้างทุกการลงทะเบียนด้วย :WipeReg

หากคุณต้องการให้เกิดขึ้นทุกครั้งที่คุณเริ่มใช้ Vim

autocmd VimEnter * WipeReg

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