2013-08-07 7 views
21

मैं विंडोज 8 (64-बिट) पर सिग्विन 1.7.22 (32-बिट) का उपयोग कर रहा हूं। सिग्विन के भीतर, मैं विम 7.3.1152 का उपयोग कर रहा हूं, जो डिफ़ॉल्ट संस्करण है।विंडोज 8 पर सिगविन में विम के लिए 'vi संगत' मोड को कैसे अक्षम करें?

व्यवहार कि कीड़े की तरह लग:

  1. जब मैं मैं प्रेस डालने मोड में प्रवेश करने, यह नीचे बाईं ओर स्थित -- INSERT -- कहना नहीं है। वास्तव में, यह कुछ भी नहीं कहता है। हालांकि, यह सही ढंग से व्यवहार करता है।

  2. जब मैं बैकस्पेस का उपयोग करके अक्षरों को हटाता हूं, तो अक्षर गायब नहीं होते हैं लेकिन कर्सर बाईं ओर जाता है।

  3. जब मैं सम्मिलित मोड में तीर कुंजियों का उपयोग करता हूं, तो यह कर्सर को स्थानांतरित करने के बजाय अक्षरों ए, बी, सी, और डी में प्रवेश करता है। तीर कुंजी सामान्य रूप से सम्मिलित मोड के बाहर काम करती है।

मैं वीम व्यवहार कैसे कर सकता हूं जैसा मैं उम्मीद करता हूं?

+0

क्यों लोग मेरे सवाल downvote किया? क्या मेरे प्रश्न में कुछ गड़बड़ है? मुझे सुधार करने के लिए प्रतिक्रिया की आवश्यकता है। – SerMetAla

+0

मैं डाउनवॉटेड। आप बग्स का दावा करते हैं कि बग नहीं बल्कि अपेक्षित व्यवहार है। आपके पास कोई सवाल नहीं है। – FDinoff

+0

क्या आपने मेरा जवाब भी आजमाया? क्या आपकी समस्या दूर हो गई? – FDinoff

उत्तर

21

nocompatible मोड में vim डाल करने के लिए निम्नलिखित सामग्री के साथ एक ~/.vimrc फ़ाइल बनाएँ (वास्तव में फ़ाइल की उपस्थिति मात्र पर्याप्त है।)

set nocompatible 

व्यवहार आप देख रहे हैं कि कैसे vi व्यवहार करने के लिए प्रयोग किया जाता है। ये बग नहीं हैं।

:h nocompatible


पर एक नज़र vim में संगत मोड vi से यथासंभव का अनुकरण करने की कोशिश करता है ले लो।

  1. --insert-- vi का हिस्सा नहीं है, इसलिए यह संगत मोड में नहीं दिखाया गया है।
  2. मेरा मानना ​​है कि वी ने स्क्रीन का आलसी रेड्रो किया था और जब तक आप सामान्य मोड में वापस नहीं निकले, तब तक अपडेट नहीं किया। बैकस्पेस भी उपयोग करने योग्य है केवल वर्तमान सामग्री में दर्ज की गई सामग्री पर ही काम करता है। कुल मिलाकर यह बहुत उपयोगकर्ता के अनुकूल नहीं है।
  3. तीर कुंजियों को बचने के क्रम में भागने के लिए भेजा जाता है (अक्षरों के साथ भागने के बाद)। ^[ से बचें। ^[OA मेरे कंप्यूटर पर है शायद यह आपके जैसा कुछ है। vim इसे एक भागने के रूप में देखता है (सामान्य मोड पर वापस चला जाता है), और ओ (वर्तमान से ऊपर एक रेखा जोड़ें) और ए जो आप अपनी स्क्रीन पर दर्ज ए देखें। इसका मतलब यह है कि संगत मोड में vim से बचने वाले वर्णों को सही ढंग से समझ नहीं आता है। सबसे अधिक संभावना है क्योंकि वी ने उन्हें व्याख्या नहीं की थी (न ही इसे इस्तेमाल करने के लिए डिजाइन किया गया था)।

set nocompatible फिक्स समस्याओं 1 और 3

मैं set backspace=indent,eol,start समस्या को ठीक करना चाहिए 2.

+0

धन्यवाद। यह सुझाव समस्या 1 और 3 को हल करता है, लेकिन इसमें अभी भी समस्या है 2. जैसे, जब मैं हटाता हूं, तो हटाए गए अक्षरों को स्क्रीन से गायब नहीं किया जाता है। स्क्रीन repaint नहीं है। एक कार्य-आस-पास बाहर निकलने के लिए है और उसके बाद सम्मिलित मोड पुनः दर्ज करें, जो एक स्क्रीन पेंटेंट को मजबूर करता है। यह चारों ओर एक उपयोगी काम है, लेकिन यह अभी भी सही नहीं है। – SerMetAla

+1

@SerMetAla vimrc फ़ाइल – FDinoff

+0

पर सेट बैकस्पेस = इंडेंट, ईओएल, स्टार्ट 'जोड़ने का प्रयास करें, वास्तव में आवश्यक नहीं है क्योंकि यह निश्चित रूप से सेट है जब यह थ्रेरे का ~/.vimrc है लेकिन यह चोट नहीं पहुंचाता है और कुछ में उपयोगी हो सकता है स्थितियों। – romainl

3

इस महीने पहले पूछा गया था लगता है, लेकिन मैं किसी और को जो मुठभेड़ों के लिए भविष्य में संदर्भ के उत्तर देते यह समस्या।

मुझे इस मुद्दे से बस काटा गया था।इस पोस्ट में सूचीबद्ध सभी सलाह, और इस मंच पर अन्य पोस्टों में (अन्य मंचों पर पोस्ट का उल्लेख नहीं करना) कम से कम कुछ लोगों के लिए काम नहीं करता है। आखिरकार मैंने असली मुद्दा निकाला।

साइगविन पर विम, किसी भी कारण से (कम से कम यह मेरे लिए मामला था) आपके द्वारा डाली गई। Vimrc का उपयोग नहीं करता है। आइए मान लें कि आप उदाहरण को अपनी कार्यशील निर्देशिका में कॉपी करते हैं, या ऑनलाइन से कुछ .vimrc कॉपी करते हैं। या हो सकता है कि आप स्क्रैच से एक नया बना लें, और सभी सेटिंग्स को यहां अच्छे लोगों को दें और कहीं और अनुशंसा करें (बैकस्पेस = blahblah सेट करें, nocompatible सेट करें, इसे सेट करें, इसे सेट करें)। यह काम नहीं करता है। क्यूं कर? क्योंकि किसी भी कारण से (कम से कम मेरे मामले में) vim उस vvrrc को नहीं देख रहा है जिसे आपने अभी बनाया है। वह सब के प्यार के पवित्र, टाइप नहीं है वर्ग कोष्ठक के लिए

vim -u [/INSERT/PATH/TO/.vimrc] 

:

समाधान एक विशेष .vimrc उपयोग करने के लिए vim पर विवश करने इतना की तरह कमांड लाइन पर -u में पास करके है या शब्द "/INSERT/PATH/TO/.vimrc" शब्दशः। कृपया अपने मस्तिष्क का प्रयोग करें।

वैसे भी, यह मेरी समस्याओं का समाधान करता है और मैं डिफ़ॉल्ट उदाहरण का उपयोग करने में सक्षम था। Vimrc और अन्य उपहारों का उल्लेख न करने के लिए सम्मिलित मोड में उचित हटाने और बैकस्पेस व्यवहार प्राप्त करने में सक्षम था।

आप इस तरह अपने .bashrc में vim आदेश अन्य नाम पर हो सकती है:

alias vim='vim -u [/INSERT/PATH/TO/.vimrc]' 
+0

आपने .vimrc कहां रखा? पथ '~/.vimrc' होना चाहिए।यदि यह काम नहीं करता है तो 'vim --version' के आउटपुट की जांच करें और उपयोगकर्ता vimrc से शुरू होने वाली रेखा की तलाश करें (या तुरंत इसे' vim --version | grep 'उपयोगकर्ता vimrc'' के साथ ढूंढें)। यह लाइन आपको बताएगी कि विम वीमआरसी की तलाश में है। सबसे अधिक संभावना है कि आप सही जगह पर vimrc नहीं डाल रहे थे। – FDinoff

+0

ओएमजी धन्यवाद। मैं विंडोज 8 पर सिग्विन का उपयोग कर रहा हूं और विम - वर्जन ने दिखाया कि यह $ HOME/.virc की तलाश में था। मेरे .vimrc को .virc पर ले जाने से यह काम करता है। – yic

0

के बारे में ए, बी, सी, विम में तीर कुंजी के लिए विकास, जोड़ने:

:set term=cons25 

को ~/.vimrc एक आकर्षण की तरह काम किया।

स्रोत: http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell

+0

एक दुष्प्रभाव के रूप में एक vimrc फ़ाइल बनाने के रूप में nocompatible सेट करता है। – FDinoff

संबंधित मुद्दे