ป้องกัน Vim จากการล้างเครื่องหลังจากออก


15

ถ้าฉันทำ:

$ less file

และกดqเพื่อออกlessฉันยังเห็นข้อความเดียวกับที่ฉันเห็นบนหน้าจอเมื่อlessยังทำงานอยู่

อย่างไรก็ตามถ้าฉันทำ

$ vim file

และ:qเทอร์มินัลของฉันว่างเปล่า ...

ภาพหน้าจอของเทอร์มินัลของฉันหลังจากออกจากlessและvim:

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะป้องกันสิ่งนี้ได้ไหม? นี้เป็นเพียงบนระบบลินุกซ์ของฉัน ระบบ FreeBSD ฉันใช้งานได้จริงตามที่คาดไว้ (โดยใช้ซอฟแวร์ / ตั้งค่าเดียวกันทุกรอบTERMคือxterm-colorสำหรับทั้งสองvim -u NONEไม่ได้สร้างความแตกต่าง)

ตัวอย่างของสิ่งที่ฉันต้องการ:

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


18

โดยค่าเริ่มต้น VIM เมื่อยกเลิกจะส่งสตริงที่กำหนดค่าด้วยตัวเลือกt_teไปยังสถานีโฮสต์เพื่อบอกให้ล้างหน้าจอ เพื่อหลีกเลี่ยงมันเพียงแค่:set t_te=ส่งอะไรไปยังสถานีและหลีกเลี่ยงการล้างหน้าจอ ดู:help termรูปแบบข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของเทอร์มินัล


2

ในขณะที่คุณใช้ xterm คุณสามารถใช้บัฟเฟอร์หน้าจอหลักและสำรองสำหรับการสลับหน้าจอได้เช่นเดียวกับในส่วนนี้จาก. vimrc ของฉัน

if &term == "linux"
    set t_ti=^[[?1049h
    set t_te=^[[?1049l
endif                                                       

หมายเหตุ: ^[จะไม่ข้อความตัวอักษรเป็นตัวหนีใช้Ctrl+ vตามด้วยEscการใส่

คำสั่ง vim เหล่านี้เพิ่มคำสั่งที่เกี่ยวข้องซึ่งอาจหายไปจากรายการ linux terminfo ข้อมูลเพิ่มเติมได้ที่

:help xterm-screens

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