ฉันสามารถดูประวัติการกดปุ่มในโหมดปกติได้หรือไม่?


32

ฉันรู้ว่า Vim เก็บประวัติคำสั่ง ex การค้นหาการข้ามตำแหน่งการเปลี่ยนแปลงและอื่น ๆ

ด้วยshowcmdset, Vim จะแสดงให้คุณเห็นว่าคุณใช้คีย์ใดบ้างสำหรับคำสั่งโหมดปกติจนกระทั่งคำสั่งนั้นทำงาน

บางครั้งเมื่ออยู่ในโหมดปกติฉันพิมพ์ผิดและการกระทำเกิดขึ้น ฉันสามารถยกเลิกการกระทำเหล่านี้ได้ แต่บางครั้งฉันอยากรู้ว่าการแก้ไขในช่วงที่เกิดความผิดพลาดเกิดขึ้นได้อย่างไร บางครั้งการแก้ไขดูเท่และฉันต้องการทราบวิธีการทำซ้ำในอนาคต

ดังนั้นมีวิธีการดูประวัติของการกดปุ่มในโหมดปกติใด ๆ คั่นอย่างยิ่งเมื่อเกิดการแก้ไขหรือการกระทำที่เกิดขึ้นจริง (เช่นการเคลื่อนไหวหรือการเปลี่ยนแปลงโหมด)?


4
อาจเกี่ยวข้องกับ: drbunsen.org/vim-croquet
wchargin

คำตอบ:


20

ตามลิงค์จาก @WChargin อีกเล็กน้อยฉันพบสิ่งนี้:

คุณสามารถเริ่มเป็นกลุ่มด้วยตัวเลือก-wหรือ-Wตัวเลือกดังนี้:

vim -w keys.txt my_file

อักขระทั้งหมดที่คุณพิมพ์จะถูกบันทึกในไฟล์ {scriptout} จนกว่าคุณจะออกจาก Vim

-wจะต่อท้ายไฟล์ที่ระบุหากมีอยู่ -Wจะเขียนทับมัน

ไม่ได้สิ่งที่คุณต้องการ แต่เป็นทิศทางที่ถูกต้อง

อัปเดต:ดูเหมือนว่ากลุ่มจะบัฟเฟอร์การกดแป้นทั้งหมดจริง ๆ จนกว่าคุณจะออกจากกลุ่ม แต่มีแพทช์หนึ่งบรรทัดที่นี่จะเขียนการกดแป้นทันที


ขอบคุณ! ฉันใช้สิ่งนี้เป็นจุดเริ่มต้นในการเจาะเข้าไปในซอร์สโค้ด ดูเหมือนว่า -w จะบันทึกการกดปุ่มทุกครั้งไม่เพียงคำสั่งโหมดปกติ แต่คุณถูกต้อง: มันเป็นทิศทางที่ถูกต้อง!
John O'M

@xthrd keys.txtไฟล์เหล่านี้มีรูปแบบ / โครงสร้างอย่างไร เมื่อฉันใช้การ-wต่อท้ายจะเกิดขึ้นเสมอในสายยาวยาว; และมีตัวอักษรแปลกแสดง: ภายใต้ UTF-8 €齛เมื่อใดก็ตามที่ฉันเปิดแฟ้มในกันชนใหม่ผมจะได้รับ นี่เป็นเครื่องหมายที่ดีโดยตัวมันเอง แต่มันจะดีมากถ้าบันทึกสามารถแยกวิเคราะห์ได้
llinfeng

@llinfeng มันไม่ได้จัดรูปแบบเลย แท้จริงแล้วมันเป็นเพียงไฟล์ที่มีการกดแป้นตามลำดับที่สร้างขึ้น (แม้ว่าโปรดทราบว่าหากมีการกดแป้นบาง<cr>ตัวไฟล์จะมีการกระจายบรรทัด) เนื่องจากวัตถุประสงค์หลักคือเพื่อสร้างไฟล์ที่สามารถเล่นด้วย-sตัวเลือกได้ แต่ทำไมไม่ลองด้วยตัวคุณเอง!
Rich

@ Rich ขอบคุณสำหรับการชี้แจง ฉันใช้กลไกการติดตามคีย์นี้เพื่อดีบักปัญหาที่เริ่มต้นการค้นหาของฉัน [บทเรียนของฉันคือ: ไม่ต้องจับคู่Wกับบรรทัดคำสั่ง]
llinfeng

-4

มีq:ซึ่งแสดงประวัติคำสั่ง

ฉันยังพบว่ามีประโยชน์ที่คุณสามารถกดขึ้นในคำสั่งที่เสร็จสมบูรณ์บางส่วนเพื่อวนผ่านการแข่งขัน เช่น /abc จากนั้นการกดขึ้นจะเป็นการวนรอบประวัติการค้นหาของคุณที่เริ่มต้นด้วย 'abc'


5
q: แสดงประวัติคำสั่ง ex และเป็นประโยชน์ แต่ไม่ใช่บันทึกของคำสั่งปกติเช่น "ad2tn (ลบเข้าสู่การลงทะเบียนจนกระทั่งวินาทีที่สอง)
John O'M.

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