การบันทึกเสียงเรียกเข้าคืออะไรและจะใช้งานอย่างไร?


761

ฉันเห็นrecordingข้อความที่ด้านล่างของหน้าต่าง gVim 7.2 ของฉัน

มันคืออะไรและฉันจะปิดได้อย่างไร


55
หากต้องการปิดเสียง vim ให้ดีให้เพิ่มmap q <Nop>ไฟล์. vimrc ของคุณ
Joey Adams

4
ฉันไม่อยากจะเชื่อว่าคุณต้องการปิดการบันทึก! ฉันจะแสดงป๊อปอัพที่น่ารำคาญจริงๆ 'คุณแน่ใจเหรอ?' หากมีคนขอให้ปิด (หรืออาจต้องการที่จะให้ตัวเลือกเช่นการปรับปรุง Windows 10 ให้)
0xc0de

คำตอบ:


1054

คุณเริ่มบันทึกด้วยq<letter> และคุณสามารถจบได้โดยพิมพ์qอีกครั้ง

การบันทึกเป็นคุณสมบัติที่มีประโยชน์จริง ๆ ของ Vim

มันบันทึกทุกสิ่งที่คุณพิมพ์ @<letter>จากนั้นคุณสามารถเล่นใหม่ได้ง่ายๆโดยการพิมพ์ บันทึกการค้นหาการเคลื่อนไหวการเปลี่ยน ...

หนึ่งในฟีเจอร์ที่ดีที่สุดของ Vim IMHO


109
ตามที่เห็นในที่อื่นมันเป็น q ตามด้วยการลงทะเบียน ส่วนที่เจ๋งจริงๆ (และอาจไม่ง่าย) คือสิ่งเหล่านี้คือสิ่งที่ลงทะเบียนแบบเดียวกันกับที่ใช้โดยสิ่งต่าง ๆ เช่นการลบงัดแงะและใส่ ซึ่งหมายความว่าคุณสามารถดึงข้อความจากตัวแก้ไขไปยังรีจิสเตอร์จากนั้นเรียกใช้งานเป็นคำสั่ง
Cascabel

68
อีกสิ่งหนึ่งที่ควรทราบคือคุณสามารถกดหมายเลขใด ๆ ก่อนที่ @ เพื่อเล่นซ้ำการบันทึกที่หลายครั้งเช่น (100 @ <letter>) จะเล่นการกระทำของคุณ 100 ครั้ง
Tolga E

7
คุณสามารถเพิ่มได้ในภายหลังโดยแก้ไขการลงทะเบียนด้วย put / yank แต่ฉันไม่รู้ว่าทำไมคุณต้องการเปิดหรือปิดการบันทึกเป็นส่วนหนึ่งของมาโคร ('q' จะไม่ส่งผลกระทบอะไรเลยเมื่อพิมพ์ในโหมดแทรก)
anisoptera

3
@Wade "- เรียกว่าการลงทะเบียนเริ่มต้น
Cascabel

4
and how to turn offยังเป็นคำถาม
n611x007

103

พิมพ์:h recordingเพื่อเรียนรู้เพิ่มเติม

                           * q *  * การบันทึก * 
q {0-9a-zA-Z "} บันทึกอักขระที่พิมพ์ลงในทะเบียน {0-9a-zA-Z"}
                        (ตัวพิมพ์ใหญ่เพื่อต่อท้าย) 'การคิวคำสั่ง' เป็นคนพิการ
                        ในขณะที่ดำเนินการลงทะเบียนและมันไม่ทำงานภายในการทำแผนที่ {Vi: ไม่มีการบันทึก}

Q                        หยุดการบันทึก (หมายเหตุการใช้งาน: ' q ' ที่
                        หยุดการบันทึกจะไม่ถูกเก็บไว้ในการลงทะเบียนเว้นแต่
                         จะเป็นผลของการทำแผนที่ ) {Vi: ไม่มีการบันทึก}


                                                        * * * * * * * * @
@ {0-9a-z ". = *} ดำเนินการเนื้อหาของการลงทะเบียน {0-9a-z". = *} [นับ] 
                        ครั้ง โปรดทราบว่าการลงทะเบียน ' % ' (ชื่อปัจจุบัน
                        ไฟล์) และ ' # ' (ชื่อไฟล์อื่น) ไม่สามารถเป็นได้
                        ใช้ สำหรับ " @ = " จะแจ้งให้คุณป้อน
                         แสดงออก ผลลัพธ์ของนิพจน์นั้นคือ
                        ดำเนินการ ดูเพิ่มเติมที่ @: |. {Vi: ลงทะเบียนชื่อเท่านั้น}

38

ดูเหมือนว่าคุณได้เปิดการบันทึกมาโครแล้ว qเพื่อปิดมันปิดกด

อ้างถึง " : ช่วยบันทึก " สำหรับข้อมูลเพิ่มเติม

ลิ้งค์ที่มีความเกี่ยวข้อง:


31

การพิมพ์qเริ่มบันทึกแมโครและการบันทึกจะหยุดเมื่อผู้ใช้กดqอีกครั้ง

ดังที่ Joey Adams กล่าวไว้หากต้องการปิดใช้งานการบันทึกให้เพิ่มบรรทัดต่อไปนี้.vimrcในโฮมไดเร็กตอรี่ของคุณ:

map q <Nop>

11
เพียงตอบคำถามเกี่ยวกับ "วิธีปิด" ส่วนของคำถาม มันทำให้การบันทึกไม่สามารถเข้าถึงได้และปิดได้อย่างมีประสิทธิภาพ - อย่างน้อยก็ไม่มีใครคาดหวังว่า vi จะมีเธรดแยกต่างหากสำหรับรหัสนี้ฉันเดาว่ารวมถึงฉันด้วย
n611x007


15

หมายความว่าคุณอยู่ในโหมด "บันทึกแมโคร" โหมดนี้ถูกป้อนโดยการพิมพ์qตามด้วยชื่อการลงทะเบียนและสามารถออกได้โดยการพิมพ์qอีกครั้ง


มันเข้าจริงโดยการพิมพ์ qตามด้วยชื่อลงทะเบียนใด ๆ ซึ่งเป็น 0-9, az, AZ, และ".
ephemient

3
ที่จริงแล้วมันคือ q {0-9a-zA-Z "} - คุณสามารถบันทึกแมโครลงในการลงทะเบียนใด ๆ (ตั้งชื่อตามตัวอักษรตัวอักษร") ในกรณีที่คุณต้องการใช้มันจริงๆ ... คุณรันเนื้อหาของการลงทะเบียนด้วย @ <register> ดู:help qและ:help @ถ้าหากคุณสนใจในการใช้มัน
Cascabel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.