คำตอบ:
พวกเขาอาจใช้พารามิเตอร์ในตัว-wดู:h -w:
-w {scriptout}  All the characters that you type are recorded in the file
        "scriptout", until you exit Vim.  This is useful if you want
        to create a script file to be used with "vim -s" or
        ":source!".  When the "scriptout" file already exists, new
        characters are appended.  See also |complex-repeat|.
        {scriptout} cannot start with a digit.
        {not in Vi}
แก้ไขเป็น @B Layer ชี้ให้เห็นว่ารหัสจริงใช้-Wพารามิเตอร์ซึ่งโดยทั่วไปเหมือนกับ-wแต่ไฟล์บันทึกจะถูกเขียนทับแทนการเพิ่มการกดแป้นต่อท้าย ( :h -W):
-W {scriptout}  Like -w, but do not append, overwrite an existing file.
        {not in Vi}
-Wไม่ใช่-w(ดูคำตอบของฉัน) แต่ก็ยัง ...
                    -Wที่เหมือนกัน
                    ฉันไม่คิดว่ามันค่อนข้างง่าย แต่คุณสามารถดูรหัส Ruby ด้วยตัวคุณเองที่นี่:
https://github.com/igrigorik/vimgolf/tree/master/lib/vimgolf
ฉันเห็นชั้นเรียนสำหรับการล็อคกุญแจสำหรับหนึ่งคน
นี่คือคำสั่งที่ใช้เรียกใช้vimในlib / vimgolf / cli.rb :
 vimcmd = GOLFVIM.shellsplit + %W{-Z -n --noplugin --nofork -i NONE +0 
    -u #{challenge.vimrc_path} -U NONE -W #{challenge.log_path} #{challenge.work_path}}
@statox (เกือบมาก) ถูกต้องเกี่ยวกับ-w outfile... -W outfileจริงๆแล้วซึ่งจะเขียนทับไฟล์ที่ส่งอักขระที่พิมพ์ไปแทนที่จะเขียนต่อท้าย แต่อย่างที่ฉันบอกไม่ใช่ "ค่อนข้างง่าย" ... เปรียบเทียบเนื้อหาของไฟล์เหล่านั้นและสิ่งที่สร้างโดยเครื่องมือ vimgolf นี่คือปัญหาของคนชั่วที่เกิดขึ้นจริง ...
-W เอาต์พุตเมื่อคัดลอกแล้ววางที่นี่:
GI0. ý`gvgý`ZZ
อักขระที่ไม่ได้พิมพ์จำนวนมากมี "หลงทางแปล"
-W เอาท์พุทตามที่ปรากฏบนหน้าจอ:
^VGI0. ^[<80>ý`gvg^A<80>ý`ZZ
นั่นเป็นเรื่องที่น่าเกลียด
vimgolf แสดง / อัพโหลดผลลัพธ์:
<C-V>GI0. <Esc>gvg<C-A>ZZ
อ่าดีกว่า
อัปเดต:ฉันใช้เวลาสองสามนาทีดูสิ่งต่าง ๆ ใกล้ ๆ และมีข้อมูลใหม่ ๆ
อันดับแรกkeylogger class keylog.rbที่ฉันพูดถึงข้างต้นนั้นเป็นปริศนาชิ้นสำคัญ แต่จริงๆแล้วมันค่อนข้างตรงไปตรงมา คีย์โค้ดที่ Vim ปล่อยออกมาและบันทึกไว้ใน-Wล็อกไฟล์เป็นหนึ่งไบต์หรือสามไบต์ (ระบุโดยค่าไบต์แรกของ 0x80) และมีการแฮชแม็พสำหรับแต่ละชุดสองชุด
รุ่นหนึ่งไบต์แผนที่ค่าไบต์เพื่อเป็นตัวแทนสตริงของ keycode เช่นหรือ0 gเวอร์ชันสามไบต์คล้ายกันกับสตริง (เช่น<Esc>หรือ<C-V>) แต่ใช้เป็นคีย์ค่าที่รวมกันของไบต์สองและสาม มีข้อยกเว้น / มุมกรณีบางอย่างที่จัดการแตกต่างกัน แต่รหัสส่วนใหญ่ได้รับการแก้ไขผ่านการค้นหาอย่างง่ายในแผนที่ทั้งสองนี้
การเห็นว่ารหัสตัวบันทึกคีย์แบบพื้นฐานคืออะไรฉันสามารถบอกได้ว่ามีบางอย่างผิดปกติกับสิ่งที่ฉันเห็นในไฟล์บันทึกรหัส (เช่นตัวอย่างที่วางไว้ด้านบน) ปรากฎว่าฉันควรจะใช้ไฟล์ vimrc ที่จำเป็นโดยกฎ VimGolf โดยเฉพาะในสายนี้
set t_RV= 
ผลลัพธ์ในการบันทึกที่ถูกต้อง ตัวอย่าง "ปรากฏบนหน้าจอ" ด้านบนจะมีลักษณะเช่นนี้:
^VGI0. ^[gvg^AZZ
ตอนนี้เราสามารถเห็นเส้นตรงจากสตริง "raw" นี้ไปยังรูปแบบการแสดงผลของ VimGolf