vi स्क्रीन के अंदर ताज़ा मुद्दे


2

मुझे एक ऐसी प्रणाली का उपयोग करना होगा जिसमें कुछ Citrix / Windows वर्चुअलाइजेशन के माध्यम से लॉगिन की आवश्यकता होती है जो अंततः रेडहैट ईएल 6 सिस्टम तक पहुंच सकता है जहां मैं कुछ वास्तव में अजीब व्यवहार का अनुभव कर रहा हूं जिसे व्यवस्थापक ठीक करने में सक्षम नहीं हैं।

मूल रूप से, viऔरvimदोनों तब तक ठीक काम करते हैं जब तक कि मैं किसी स्क्रीन के अंदर उपयोग नहीं करता। एक बार स्क्रीन के अंदर, गंभीर रेडव्यू मुद्दे होते हैं जो आवेषण के दौरान होते हैं अगर मैं प्रदर्शित प्रारंभिक सामग्री के बाहर जाता हूं (यानी फ़ाइल के अंत या मध्य में ले जाया जाता है जो स्क्रीन से अधिक लंबा हो सकता है, या मैं नीचे की ओर एक रेखा से नीचे स्क्रॉल करता हूं या दो)। जब ऐसा होता है, तो - INSERT - जो कि टर्मिनल स्क्रीन के निचले भाग में खींचा जाता है, सब कुछ एक लाइन में धकेल देता है। यदि आपके संपादन मामूली हैं (यानी चारों ओर घूमना नहीं है और विभिन्न लाइनों पर कई बदलाव किए जा रहे हैं), तो यह आमतौर पर ठीक है, लेकिन चीजें गलत तरीके से फिर से तैयार की जाती हैं (कभी-कभी vi से अतिरिक्त प्रतिक्रिया स्वयं पिछली पंक्ति को स्क्रॉल करती है ताकि आप दो से समाप्त हो जाएं - INSERT - लाइनें, या अन्य पाठ) लेकिन, यदि आप एक डालने के बाद चारों ओर घूमते हैं, खासकर यदि आप विंडो की सामग्री को स्क्रॉल करने या पूरी तरह से खींचने के लिए मजबूर करते हैं, यह कुल गड़बड़ है। कर्सर को लाइन के अंत तक ले जाना या जो भी स्क्रीन पर दिखाया गया है उसका पालन नहीं करना।

चीजों को थोड़ा अधिक निराशाजनक बनाने के लिए, इस अजीब प्रणाली को दो तरीकों से एक्सेस किया जा सकता है: 1 एक टर्मिनल सत्र के माध्यम से (एक वर्चुअलाइज्ड IE ब्राउज़र के माध्यम से) और 1 एक VNC डेस्कटॉप (एक ही वर्चुअलाइजेशन के माध्यम से)। दुर्भाग्य से, वीएनसी डेस्कटॉप कमांड लाइन के लिए पूरी तरह से अनुपयोगी है क्योंकि ताज़ा मुद्दों और अटक पात्रों (यादृच्छिक वर्णों को सैकड़ों बार दोहराया जा रहा है)। लेकिन, इन समस्याओं के बावजूद, vi स्क्रीन के अंदर काम करता है।

मैंने दोनों प्रकार के vi सत्रों से चर को फ़ाइलों में डंप कर दिया है और वे अलग-अलग हैं, लेकिन मुझे यह पता नहीं है कि vi यह जानने के लिए पर्याप्त नहीं है कि कौन से चर अपराधी हो सकते हैं।

FWIW, दोनों एक ही VIM 7.2.411 बाइनरी का उपयोग कर रहे हैं (समस्या / बिन / vi के साथ बनी रहती है) और स्क्रीन 4.00.03 दोनों एक ही मशीन पर हैं

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


पूर्ण समाधान नहीं है, लेकिन आप किसी भी समय सामान्य मोड ^Lमें स्क्रीन को वर्कअराउंड के रूप में फिर से उपयोग करने के लिए कर सकते हैं ।
डोपघोटी

1
मुझे लगता है कि आकार मान गलत हो सकते हैं, क्या आप कृपया stty sizeअंदर और बाहर तुलना कर सकते हैं screen? इसके अलावा क्या मूल्य हैं $TERM?
फक

स्क्रीन और बाहरी स्क्रीन में समान परिणाम मिलते हैं। TERM स्क्रीन है। लीनक्स और लिनक्स
user632657

FWIW, इसका एकमात्र समाधान tmux पर स्विच करना था, जो व्यवहार को प्रदर्शित नहीं करता है। Admins को संदेह है कि यह उस क्षेत्रीय सर्वर से संबंधित है जिसका उपयोग मैं linux सर्वर (एक वर्चुअलाइज्ड IE के माध्यम से) तक पहुँचने के लिए कर रहा हूँ, जो कुछ प्रमुख सूचनाओं को छानता है जो vi पर निर्भर करता है।
user632657

जवाबों:


1

मुद्दा यह हो सकता है कि आपकी स्क्रीन को टर्मिनल विंडो की अंतिम पंक्ति को हार्डस्टैटस लाइन के रूप में उपयोग करने के लिए कॉन्फ़िगर किया गया है, और आप हार्डस्टैटस लाइन को कॉन्फ़िगर करने से पहले अपने स्क्रीन आर्क में एक विंडो खोलें । क्या आपके स्क्रीन कॉन्फ़िगरेशन में ऐसा कुछ है?

screen 1
# ...
hardstatus alwayslastline "..."

इस स्थिति में, स्क्रीन कमांड द्वारा स्क्रीन स्क्रीन में खोले गए विंडो में कॉन्फ़िगर की गई लाइनों की सही संख्या नहीं है - यह हार्डस्टैटस लाइन द्वारा उपयोग की जाने वाली लाइन को ध्यान में नहीं रखता है। हालांकि, अन्य विंडो ठीक होनी चाहिए, ( stty sizeप्रारंभिक विंडो में आउटपुट की तुलना , स्क्रीनकेन और अन्य विंडो द्वारा खोली गई)।


मैंने इस मुद्दे के लिए यहाँ एक बग खोला है । यद्यपि यह रेट्रोस्पेक्ट में कुछ अर्थ देता है कि हार्डस्टैट विन्यास से पहले स्क्रीन कमांड का यह प्रभाव हो सकता है, यह उपयोगकर्ता के दृष्टिकोण से बहुत अप्रत्याशित है (कई कॉन्फ़िगरेशन फ़ाइलों में अनुक्रमण की धारणा नहीं है)। इसके अलावा, अजीब तरह से पर्याप्त है, अगर आप कुछ ऐसा करते हैं:

screen 1
screen 2
screen 3
# ...
hardstatus alwayslastline "..."

केवल विंडो 3 को गलत तरीके से कॉन्फ़िगर किया गया है।

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