क्यों cmd-r मैक पर विम गड़बड़ करता है? यह वास्तव में क्या करने की कोशिश कर रहा है?


19

वेब डेवलपर होने के बाद से यह लगातार चलाएं, 'cmd-r' में तीर कुंजियों को किसी भी मोड में काम करने से रोकने का साइड इफेक्ट है, लेकिन मैं कल्पना नहीं कर सकता कि यह उद्देश्य है और मैं नहीं खोज पा रहा हूं किसी भी प्रलेखन के रूप में यह वास्तव में क्या करना चाहिए है।

संपादित करें: जाहिरा तौर पर यह वास्तव में एक मैक टर्मिनल कमांड, 'भेजें रीसेट' है, इसलिए मुझे लगता है कि यह अब "रीसेट रीसेट कमांड का क्या उद्देश्य है?" बताते हैं कि मैं इसे विम डॉक्स में क्यों नहीं पा सका।

जवाबों:


16

इस झुंझलाहट से बचने के लिए, मैं कमांड-आर को रीमेक कुंजी मैपिंग में "इग्नोर" करने के लिए रिमैप करता हूं।

यहाँ छवि विवरण दर्ज करें


धन्यवाद। यह बहुत कष्टप्रद हो रहा था।
सोच रहा था

10

स्क्रीन का उपयोग न करने पर भी मेरे साथ ऐसा होता है और मैंने पाया है कि मैं टर्मिनल चलाने वाले विम को हटाकर सामान्यता में लौट सकता हूं (मैंने इसे tmux के साथ भी परीक्षण किया है, लेकिन स्क्रीन पर नहीं:

:!clear

6

इस सवाल का जवाब यहां दिया गया है: जब OSX पर स्क्रीन चलती है, तो कमांड + आर सभी स्क्रीन के पार तीर कुंजियों को गड़बड़ कर देता है

कॉपी किया गया उत्तर:

एक अच्छा सा विम वकील के रूप में, मैं आपको अपने कर्सर कुंजी के रूप में hjkl का उपयोग करने के लिए सीखने के लिए बाध्य महसूस करता हूं। समस्या की खोज के आधे रास्ते में, मुझे लगा कि यह रहस्यमय तरीके से तय हो गया है, जब तक मुझे एहसास नहीं हुआ कि मैं वास्तविक तीर कुंजियों के बजाय hjkl का उपयोग कर रहा हूं।

वैसे भी, अब एक असली जवाब के लिए।

अपनी सभी स्क्रीन को बंद करने और पुनरारंभ करने के बजाय, आप टर्मिनलों के बीच स्क्रीन की क्षमता का लाभ उठा सकते हैं। अपने टर्मिनल से स्क्रीन को अलग करने के लिए CTRL + A CTRL + D को हिट करें, फिर स्क्रीन -D -R को रीटचैट पर चलाएँ। यह आपके तीर कुंजी को फिर से काम करना चाहिए।

यदि आप स्क्रीन में नहीं हैं, लेकिन सिर्फ विम में हैं, तो आप CTRL + Z और उसी प्रभाव के लिए fg टाइप कर सकते हैं।

आप विम में कर्सर कुंजी समस्या के आसपास भी काम कर सकते हैं, लेकिन रीसेट में अन्य टर्मिनल विकल्प बदल सकते हैं, इसलिए यह ऐसा करने के लिए सुरक्षित है जैसा कि ऊपर वर्णित है कि आप अन्य यादृच्छिक डिस्प्ले / कीबोर्ड समस्याएं देखते हैं। यदि आप किसी भी तरह से रेमपिंग चाहते हैं, तो वे यहां हैं:

map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>

मोटा विवरण:

विम और स्क्रीन दोनों टर्मिनल का प्रबंधन करने के लिए ncurses लाइब्रेरी का उपयोग करते हैं। चीजों में से एक ncurses तब कर रही है जब यह VT100- संगत टर्मिनल का नियंत्रण लेता है, तीर कुंजियों को "एप्लिकेशन मोड" में बदल रहा है, जो उन कोड को बदलता है जो वे उत्सर्जित करते हैं। उदाहरण के लिए, अप-एरो की, Esc से परिवर्तन [[Esc से A. O O के लिए VT100 नियंत्रण कोड है जो यह करने के लिए उत्सर्जित होता है Esc [? 1 ज। Command + R द्वारा भेजा गया टर्मिनल रीसेट कमांड कर्सर कीज़ को डिफ़ॉल्ट पर रीसेट करता है।

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

VT100 नियंत्रण कोड: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm


हाँ, पाया कि मैंने पोस्ट करने के बाद, "कमांड + आर द्वारा भेजा गया टर्मिनल रीसेट कमांड कर्सर कुंजियों को डिफ़ॉल्ट रूप से रीसेट करता है।", अभी भी यह जानना बहुत अच्छा होगा कि ऐसा क्यों होता है। मैं ईमानदारी से ज्यादातर यह जानने में दिलचस्प हूं कि इस आदेश का उपयोग क्या है, हालांकि इसका जवाब नहीं है।
ग्लिफ़ग्रिफ़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.