เหตุใด MacVim จึงเริ่มแตกต่างกันในการเรียกใช้อื่น ๆ


13

ฉันสังเกตุเมื่อฉันนั่งลงเพื่อทำงานบน MacBook ของฉันในวันนี้ว่าเมื่อเร็ว ๆ นี้มีบางสิ่งบางอย่าง.gvimrcที่ทำให้ฉันรู้สึกแย่เมื่อเทียบกับการตั้งค่าของฉัน: เมื่อฉันเปิดตัว MacVim ทุกอย่างดูปกติยกเว้นหน้าต่างของฉันเล็กมาก ) อยากรู้อยากเห็นผมพยายามverbose set columns?ที่บอกผมว่า "180, ชุดสุดท้ายจาก ~ / .gvimrc" แม้ว่าหน้าต่างก็เห็นได้ชัดว่าไม่ 180 คอลัมน์กว้าง set columns=180คืนค่าหน้าต่างเป็นความกว้างที่คาดไว้

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

ถ้าฉันใช้: mvim -u NONE -c "set columns=100"ฉันจะได้หน้าต่างดังนี้: MVV 1

หากฉันรันคำสั่งเดียวกันทั้งหมดอีกครั้งฉันจะได้รับสิ่งนี้: mvim 2

verbose set co?รายงาน 100 และ 66 ตามลำดับในทั้งสองกรณีระบุว่า "ชุดล่าสุดจากอาร์กิวเมนต์ -c" การทำซ้ำคำสั่ง launch ทำให้สถานะหน้าต่างเป็นทางเลือก

ฉันพยายามที่จะ nuking .viminfoระหว่างวิ่ง; มันไม่มีผลกระทบ

ฉันใช้ MacVim snapshot 74 ในขณะนี้แม้ว่าฉันจะเป็นรุ่นก่อนหน้านี้เมื่อสิ่งนี้เริ่มเกิดขึ้นและอัปเกรดเพื่อดูว่ามันเป็นเพียงแค่การกำหนดเวอร์ชัน ฉันใช้งาน 10.10.3 และเป็นไปได้ว่าพฤติกรรมนี้เกิดจากข้อผิดพลาดเฉพาะของ MacVim ที่โผล่ขึ้นมาเนื่องจากการอัปเดตระบบปฏิบัติการ (ซึ่งเพิ่งเกิดขึ้นเมื่อเร็ว ๆ นี้) อย่างไรก็ตามถ้าฉันติดตั้ง MacVim บนแล็ปท็อปของภรรยาของฉัน (ใช้งานระบบปฏิบัติการเวอร์ชันเดียวกัน) พฤติกรรมนั้นจะไม่ทำซ้ำ

ฉันกำลังสูญเสีย สิ่งใดในโลกที่อาจทำให้เกิดพฤติกรรมนี้


แก้ไข: หลังจากตรวจแก้จุดบกพร่องอย่างต่อเนื่องฉันสังเกตเห็นว่าดูเหมือนจะทำซ้ำวิธีนี้เท่านั้นหากฉันมีจอภาพภายนอกเชื่อมต่อกับแล็ปท็อป นี่ทำให้ฉันเชื่อว่าเป็นข้อบกพร่องบางอย่าง

คำตอบ:


16

หลังจาก spelunking ฐานรหัส MacVim สองสามชั่วโมงฉันคิดว่าฉันเห็นว่าทำไมสิ่งนี้ถึงเกิดขึ้น

เมื่อ MacVim เริ่มทำงานจะอ่านตำแหน่งหน้าต่างที่บันทึกไว้ก่อนหน้านี้จากNSUserDefaultsและพยายามกู้คืนตำแหน่งนั้น ในตอนนี้หน้าต่างยังไม่ปรากฏขึ้นจริงและเป็นที่มาของค่าเริ่มต้น (อาจเป็นระบบปฏิบัติการที่เลือก) ซึ่งมักจะอยู่บนหน้าจอ 'หลัก' หากตำแหน่งก่อนหน้าของหน้าต่างอยู่บนจอภาพอื่นการเปลี่ยนตำแหน่งของหน้าต่างจะทำให้เกิดเหตุการณ์ "ปรับขนาด" (อาจเป็นไปได้ว่านี่เป็นเรื่องใหม่หรือเป็นข้อผิดพลาดใน 10.10.3 เนื่องจากเหตุการณ์ "ปรับขนาดที่สอดคล้องกัน" ไม่ใช่ สร้าง)

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


แก้ไข: การเปลี่ยนแปลงนี้แก้ไขข้อผิดพลาดฉันคิดว่า มันทำให้หน้าต่างปรับขนาดไม่ให้เผยแพร่ลงในแบ็กเอนด์เป็นกลุ่มจนกว่าจะมีการนำเสนอหน้าต่าง


1
ลิงก์เสียซึ่งเป็นความอัปยศเพราะฟังดูน่าสนใจ (เช่น: ฉันชอบการใช้คำว่า "spelunking"): D
Wildcard

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