बाहर निकलने के बाद vim टेक्स्ट नहीं दिखाने के लिए bash डिस्प्ले कैसे सेट करें?


28

मेरा प्रश्न सरल है, लेकिन मुझे इसे आसानी से समझाना / समझाना कठिन है।

मैं विभिन्न खातों के साथ कई यूनिक्स बॉक्स में लॉग इन करता हूं। मैं पाठ के लिए 2 अलग-अलग चीजें देखता हूं user1और user2पाठ फ़ाइलों का संपादन करता हूं

user1

जब मैं टाइप करता हूं vim filename, विम खुलता है और मैं फाइल को एडिट करता हूं। जब मैं इसे बंद करता हूं, तो फ़ाइल से पूरा पाठ समाप्त हो जाता है, और मैं पहले से मौजूद Teminals 'कमांड / आउटपुट को देखता हूं।

user2

जब मैं टाइप करता हूं vim filename, विम खुलता है और मैं फाइल को एडिट करता हूं। जब मैं इसे बंद करता हूं, तो फ़ाइल का वह भाग जो डिस्प्ले पर मौजूद था, जबकि मैं vimअभी भी डिस्प्ले में दिखाता था, और पिछले सभी टर्मिनल डिस्प्ले को स्क्रॉल किया गया है। यहां तक ​​कि अगर फ़ाइल सिर्फ 1 लाइन थी, विम से बाहर निकलने के बाद, प्रदर्शन पहली पंक्ति दिखाता है, बाकी सभी के साथ ~और मैं स्क्रीन के निचले भाग में कमांड प्रॉम्प्ट देखता हूं।

विवरण

$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ vim --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:08:36)

मैंने vimrcदोनों उपयोगकर्ताओं के लिए फ़ाइलों की तुलना की है , और मुझे सभी सेटिंग्स के बारे में पता है, और इस व्यवहार से संबंधित कोई भी सेटिंग / कॉन्फ़िगरेशन नहीं मिला है।

क्या यह व्यवहार शेल कॉन्फिग से संबंधित है? मैं चीजों को कैसे सेट करूं, ताकि मुझे user1परिदृश्य में दिखाए अनुसार व्यवहार मिले ?

मैं इसका वर्णन आसानी से नहीं कर पा रहा हूँ, यह भी गूगल के लिए कठिन लग रहा है, क्योंकि मुझे नहीं पता कि इस तरह के व्यवहार के लिए कौन सा कीवर्ड देखना है। मुझे पता है, अगर मैं आगे विस्तार करना चाहिए।


कर रहे हैं user1और user2उसी या अन्य मशीनों पर खातों?
जसोनव्रीयन '

@ajonwryan एक ही मशीन पर लॉग इन करना भी एक ही परिदृश्य दिखाता है। @ warl0ck इसके लिए धन्यवाद।
mtk

1
यदि आप इस व्यवहार को लागू करना चाहते हैं, लेकिन अपने टर्मिनल प्रकार को बनाए रखना चाहते हैं, तो अपने .bashrc या .profile पर एक पंक्ति जोड़ें, जो उर्फ ​​vi = "/ usr / bin / vi $ *; स्पष्ट"
Criggie

जवाबों:


24

उस व्यवहार के कारणों में से प्रत्येक उपयोगकर्ता के लिए टर्मिनल की स्थापना होगी।

उदाहरण के लिए:

  • User1 TERM = xterm का उपयोग कर रहा है , इस मामले में जब आप vim से बाहर निकलेंगे तो यह टर्मिनल को साफ कर देगा।
  • User2 TERM = vt100 का उपयोग कर रहा है , इस मामले में जब आप vim से बाहर निकलेंगे तो यह टर्मिनल को साफ नहीं करेगा।

टर्मिनल 2 उपयोगकर्ता के साथ क्या प्रयोग कर रहा है इसकी जाँच करें echo $TERMऔर user2 के लिए समान सेट करें। बैश के लिए:

अवधि = टर्म; निर्यात अवधि


+1 सटीक / संपूर्ण समाधान। धन्यवाद !!! नहीं सोचा था कि यह इतना आसान था। क्या आप कृपया बता सकते हैं कि क्या TERMहै? या कुछ संसाधन लिंक की ओर इशारा करते हैं? मुझे यह समझने की जरूरत है। क्या यह तभी प्रभावित होता है जब हम इससे जुड़ते हैं putty?
mtk

आप टर्मिनल सेटिंग को पोटीनी सत्र में निर्दिष्ट कर सकते हैं, लेकिन उपयोगकर्ता इसे अपने पर्यावरण चर पर निर्दिष्ट कर सकते हैं। TERM आपके टर्मिनल प्रकार को परिभाषित करेगा और साथ ही कुछ में और विशेषताएं होंगी जो अन्य, उदाहरण के लिए, xterm रंगों का समर्थन करता है और यह पंक्तियों और स्तंभों को स्वचालित रूप से अपडेट करेगा। यदि आप vt100 का उपयोग करते हैं, तो यह 80 पंक्तियों को डिफ़ॉल्ट रूप से 80 स्तंभों से करेगा जब आप अपने टर्मिनल का आकार बदल लेंगे तो आप देखेंगे कि यह 240080 तक चिपक जाता है। इस unix.stackexchange.com/questions/43945/… को चेक करें , यह मुझसे बेहतर समझा सकता है।
बिट्सऑफनिक्स

यह टर्मिनल व्यवहार है, शेल नहीं। टर्मिनल एमुलेटर सेटिंग्स वही हैं जो आप कनेक्ट करने के लिए उपयोग करते हैं। अंतर को यहाँ विवरणों में समझाया गया है: unix.stackexchange.com/questions/4126/…
लियोनिद

@ लियोनिड, बिल्कुल नहीं, यदि आप पोटीन का उपयोग करते हैं तो आप परिभाषित कर सकते हैं और यह तब अद्यतन करेगा जब उपयोगकर्ता टीएएमई परिभाषित नहीं करता है। यदि उपयोगकर्ता ने इसे परिभाषित किया है, तो आप सही हैं, इससे कोई फर्क नहीं पड़ता कि यह उपयोगकर्ता के वातावरण पर सेटिंग को प्रबल करेगा।
बिट्सऑफनिक्स

बस इस समाधान के बारे में एक नोट: YMMV। यह हमेशा "xterm" नहीं होता है। FreeBSD 10 पर dmenu के साथ dwm (डायनेमिक विंडो मैनेजर) का उपयोग करके मुझे परिदृश्य पाने के लिए "rxvt" का उपयोग करके टर्मिनल को नकली करना पड़ा। आप अपनी ~ / .vimrc फ़ाइल में "set term = rxvt" जोड़कर भी शब्द सेटिंग को छोड़ सकते हैं। ।
रायडर

18

इस तरह का व्यवहार एकमात्र ऐसी चीज थी जिसने मुझे प्रयोग करने से दूर रखा screen। यह "स्क्रीन" टर्मिनल का उपयोग करता है और इसे "xterm" में बदलने से कोई मदद नहीं मिली।

जोड़ा जा रहा है altscreen on~ / .screenrc में विकल्प इसे हल। स्क्रीन के मैनुअल से:

altscreen on|off

If set to on, "alternate screen" support is enabled in virtual terminals, just like in xterm.  Initial setting is `off'.

@Fox ओपी TERM का उपयोग करने के बारे में कुछ भी उल्लेख नहीं करता है, इसलिए यह सिर्फ वैकल्पिक उत्तर हो सकता है। वैसे भी यह पृष्ठ स्क्रीन समस्या के लिए भी चलते समय बहुत ऊपर है।
बार्टबिजबोयż

2
यह किया चाल! कीवर्ड: "
जे टेलर

0

मैंने इन सभी विकल्पों की कोशिश की है लेकिन परिणाम वह नहीं है जिसकी मुझे उम्मीद थी। !clearपूरी स्क्रीन को साफ कर देगा और पहले के बैश कमांड्स को पीछे नहीं छोड़ेगा।

सरल और सही समाधान कनेक्शन-> डेटा के तहत पोटीन सेटिंग्स में टर्मिनल विवरण के तहत टर्मिनल प्रकार स्ट्रिंग xtermऔर टर्मिनल गति सेट करना है 38400,38400

सेटिंग्स सहेजें और आप जाने के लिए अच्छे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.