बाहर निकलने के बाद टर्मिनल को साफ करने से विम को रोकें


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 का उपयोग कर रहे हैं आप स्क्रीन स्वैपिंग के लिए इसके मुख्य और वैकल्पिक स्क्रीन बफ़र्स का उपयोग कर सकते हैं, जैसा कि myvimrc से इस खंड में है।

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

नोट: ^[है नहीं शाब्दिक पाठ, यह एस्केप वर्ण, इस्तेमाल होता है Ctrl+ vके बाद Escडालने के लिए।

ये vim कमांड प्रासंगिक कमांड जोड़ते हैं जो linux termfo प्रविष्टि से गायब हो सकते हैं। पर अधिक जानकारी

:help xterm-screens

हम्म, अभी भी कुछ भी नहीं लगता है? यह काम करता है जैसे कि मैं उपयोग करता हूं set t_te=, लेकिन यह अधिक करने वाला है, मुझे लगता है?
मार्टिन टूरनोइज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.