डालने मोड में विम अटक


52

मैं अपने वेब होस्ट के माध्यम से कई महीनों से विम का उपयोग कर रहा हूं (वे पोटीन का उपयोग करने की अनुमति देते हैं)। अचानक, escapeकुंजी अनुत्तरदायी बन गई है। मैं बस बाहर भागने से डालने या किसी अन्य मोड में मौजूद नहीं हो सकता। मुझे हिट करना है, F1जो मेरे लिए मदद लाता है और मुझे कमांड मोड में किक करता है।

मैं सबसे निश्चित हूं कि मेरे कीबोर्ड पर मेरी भागने की कुंजी ठीक काम कर रही है, क्योंकि मेरी सभी विंडोज़ शॉर्टकट शॉर्टकट हैं जो सामान्य रूप से एस्केप कुंजी का उपयोग करती हैं।

मुझे पता है कि यह एक हास्यास्पद सवाल है और मुझे यकीन है कि समाधान के बारे में देखने के लिए बहुत कुछ है। क्या मैं वास्तव में की जरूरत है एक ठोस नेतृत्व के रूप में जहां से शुरू करने के लिए लग रही है।

चीजें जो मदद कर सकती हैं:

  1. मैं पोटीन के माध्यम से विम का उपयोग कर रहा हूं
  2. मैं जेलशेल का उपयोग करके लॉग इन कर रहा हूं
  3. मैं जड़ नहीं हूं

आपकी टर्मिनल सेटिंग क्या हैं? यानी वास्तव में TERM पर्यावरण चर (दूरस्थ शेल में) के लिए क्या निर्धारित है?
क्वैककोट

$ TERM को 'xterm'
Levi Hackwith

Ctrl-[काम करता है ? अगर तुम दबाओ Ctrl-vतो क्या मिलता है ? इसे जैसा दिखाना चाहिए ^[
अगली सूचना तक रोक दिया गया।

Ctrl- [काम किया है। रॉक ऑन! इससे मुझे बहुत निराशा होती है। क्या कोई मौका है कि आप समझा सकें कि escअब काम क्यों नहीं करता है? इसके अलावा, कृपया अपनी टिप्पणी एक उत्तर के रूप में पोस्ट करें ताकि मैं इसे स्वीकार कर सकूं।
लेवी हैकिथ

इसे पढ़ते समय मेरा पहला विचार: "ओह, उसने अपना 'तोड़ दिया मुझे यहाँ
डैनियल

जवाबों:


16

के Ctrl-[बजाय का उपयोग करने का प्रयास करें Esc

क्या परिणाम है:

python -c "print ord(raw_input('char '))"

जब तुम दबाओ Escऔर Enter? यह "27" होना चाहिए। Ctrl-Vफिर दबाने का नतीजा क्या है Esc?

क्या आपने यह देखने के लिए पुट्टी में सभी सेटिंग्स की जाँच की है कि क्या वे उचित हैं?

क्या आप रिमोट सिस्टम पर बैश का उपयोग कर रहे हैं? के आउटपुट को देखें

bind -p | grep -i '\\e' | less

और देखें कि क्या आपको कुछ असामान्य दिखाई देता है। क्या आपके पास फाइल है ~/.inputrc? यह देखने के लिए कि क्या कुछ असामान्य है, इसकी सामग्री देखें।

अपने को देखो ~/.vimrcऔर देखो कि क्या सब कुछ ठीक है।


Ctrl-c को इन्सर्ट-मोड को भी समाप्त करना चाहिए ('' 'कुछ कीबोर्ड पर आने के लिए थोड़ा मुश्किल है)
akira

1
मैंने पायथन लिपि को चलाया और यह एक रिक्त तार के रूप में वापस आया। मैं यह कैसे तय करुं? मैं पोटीन का उपयोग कर रहा हूं।
कीथ

@ कीथ: क्या आपने किसी अन्य नैदानिक ​​सुझाव की कोशिश की?
अगली सूचना तक रोक दिया गया।

ctrl + [जो भी कारण के लिए मेरे लिए काम किया है, मुझे पता नहीं है कि मैंने अपनी विम को अटकाने के लिए क्या किया।
डेरेक अडायर

147

मैंने गलती से Ctrl+ मारा था s, और इन्सर्ट मोड में फंस गया था। इससे बाहर निकलने के लिए Ctrl+ का उपयोग करें q


7
वह आवेषण मोड नहीं है XOFF। आप सॉफ्टवेयर प्रवाह नियंत्रण को अक्षम कर सकते हैं stty -ixon(इसे अपने साथ जोड़ें ~/.bashrc)। तब वह कीस्ट्रोके कुछ और के लिए बाध्य होने के लिए उपलब्ध होगा। बश में डिफ़ॉल्ट रूप से यह forward-search-history(Ctrl-r के विपरीत) बाध्य है । Ctrl-q (Bash quoted-insert) भी उपलब्ध होगा।
अगली सूचना तक रोक दिया गया।

@ डेनिस विलियम्सन .bash_profileएक बेहतर जगह नहीं होगी? गैर-इंटरैक्टिव शेल में इसे बंद करने की कोई आवश्यकता नहीं है, क्या यह है?
पियोट्र डोब्रोगोस्ट

1
@PiotrDobrogost: "जब एक इंटरेक्टिव शेल जो कि लॉगिन शेल नहीं है, शुरू होता है, तो बैश पढ़ता है और ~ / .bashrc से कमांड निष्पादित करता है, अगर वह फाइल मौजूद है।" .bash_profileकेवल तभी निष्पादित किया जाता है जब बैश एक लॉगिन शेल होता है। "तो, आम तौर पर, आपके ~ / .bash_profile में लाइन होती है if [ -f ~/.bashrc ]; then . ~/.bashrc; fi"
आगे की सूचना तक रोक दिया गया।

@ डेनिसविलियम्सन आप सही हैं। मेरे कहने का मतलब यह है कि केवल इंटरेक्टिव शेल में सॉफ्टवेयर फ्लो कंट्रोल को निष्क्रिय करने का कोई अर्थ नहीं है। यदि यह सच है, तो बाद में यह बताने का एक तरीका खोजने के लिए समझ में आएगा कि क्या कोई शेल इंटरैक्टिव है और केवल इस मामले में सॉफ़्टवेयर प्रवाह नियंत्रण को अक्षम करता है।
पियोट्र डोब्रोगोस्ट

@PiotrDobrogost: देखो मेरा उत्तर करने के लिए "मैं पार्टी में देख सकते हैं कि एक खोल इंटरैक्टिव मोड में चल रहा है?"
अगली सूचना तक रोक दिया गया।

4

शायद आप इन्सर्ट मोड का उपयोग कर रहे हैं ।

'Insertmode' 'im' 'noinsertmode' 'noim'
बूलियन (डिफ़ॉल्ट बंद) Mim
Vim इस तरीके से काम करता है कि इन्सर्ट मोड डिफॉल्ट मोड है। यदि आप विम को एक मॉडल संपादक के रूप में उपयोग करना चाहते हैं तो उपयोगी है। के लिए प्रयुक्त | evim |
[...]
- CTRL-Oएक सामान्य मोड कमांड निष्पादित करने के लिए उपयोग करें । i_CTRL-O |)। जब यह एक मानचित्रण होता है, तो इसे निष्पादित किया जाता है जैसे कि 'इन्सर्टमोड' बंद था। मैपिंग समाप्त होने तक सामान्य मोड सक्रिय रहता है। - CTRL-Lकई सामान्य मोड कमांड निष्पादित करने के लिए उपयोग करें , फिर Escइंसर्ट मोड पर वापस जाने के लिए उपयोग करें। ध्यान दें कि CTRL-Lकर्सर को छोड़ा गया है, जैसे कि जब 'सम्मिलन' सेट नहीं किया जाता है। | i_CTRL-एल |

मैं ~/.vimrcनिम्नलिखित पंक्ति जोड़ने के लिए संपादन का सुझाव देता हूं :

set noinsertmode         "disable insert mode

1
मेरे मामले में यह इन्सर्ट मोड में अटक गया क्योंकि मैंने कमांडलाइन में गलती से `-y` का उपयोग कर लिया था जैसा कि मैनुअल में कहा गया था: -y स्टार्ट विम को आसान मोड में, जैसे एक्ज़ीक्यूटेबल को" एवीम "या" ईव्यू "कहा जाता था। Vim क्लिक-एंड-टाइप एडिटर की तरह व्यवहार करता है। इस "आसानी मोड" से बाहर निकलने के लिए बस <Sandbock
ton

0

मुझे यह समस्या थी, लेकिन एहसास हुआ कि यह गलती से SCIM इनपुट मोड को "अन्य - RAW CODE" में बदल रहा था। मैंने इसे वापस अंग्रेजी / कीबोर्ड में बदल दिया और कोई और समस्या नहीं हुई।

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