सम्मिलित मोड में बैकस्पेस वर्णों को मिटा नहीं रहा है


10

मैं vi के लिए नया हूं , वास्तव में मैंने आज से vi सीखना शुरू कर दिया है और मैं बैकस्पेस कुंजी के व्यवहार में फंस गया हूं । असल में जब मैंने पहली बार अपनी उबंटू की चाबी सामान्य रूप से काम कर रही थी, तो मेरे उबंटू 12.04 पर vi निकाल दिया, लेकिन इसके बाद यह अजीब व्यवहार करने लगा है। जब भी मैं डालने के मोड में बैकस्पेस दबाता हूं तो यह चरित्र को मिटाने के बजाय केवल एक स्थान को बाईं ओर ले जाता है। मैं डिफ़ॉल्ट बैकस्पेस कार्यक्षमता कैसे प्राप्त कर सकता हूं? कृपया ध्यान दें कि मैं विम स्थापित करना या nocompatibilty सेट नहीं करना चाहता।


5
यही पारंपरिक vi व्यवहार है। यदि आपको nocompatibility सेट करने का विकल्प मिला है, तो आप पहले से ही उपयोग कर रहे हैं vim
स्टीफन चेज़लस

मुझे पता नहीं है कि vi उबंटू पर स्थापित है। मेरे अनुभव में लिनक्स दुनिया में vi सिर्फ एक प्रतीकात्मक लिंक है। यदि आप वास्तविक वी सीखना चाहते हैं या तो एनवीआई या हेयरलूम प्रोजेक्ट vi स्थापित करें।
प्रेड्रैग पुंसोवैक

जवाबों:


6

कभी-कभी viआदेश एक उर्फ ​​के लिए होता है vimऔर जब बुलाया जाता viहै तो इसका vi-mode सक्षम करता है।

यहां तक ​​कि पारंपरिक मोड में बैकस्पेस चरित्र को हटा रहा है, लेकिन इसे तुरंत हटाए जाने के रूप में प्रदर्शित नहीं करता है। (ESC दबाने के बाद वर्ण समाप्त हो गए हैं।)

लगता है कि आपको viवर्णित व्यवहार के साथ आने वाले का उपयोग करना है या इसका उपयोग करना है, vimजो कि आपकी अपेक्षा के अनुरूप करने में सक्षम है।


9
  1. चेकआउट करें कि क्या वास्तव में आपके viद्वारा सादे का उपयोग किया जा रहा है

    $ vi --version | head -n 1

    यह मेरी मशीन पर देता है (डेबियन 7)

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)

    vim की तरह व्यवहार करने के लिए विम बनाया जा सकता है। यह कमांडलाइन के viबजाय कमांड देकर किया जा सकता है vim, जहां viकेवल एक सिम्-लिंक है vim, जिस स्थिति में vi मोड में विम खोला गया है। आप इससे जांच कर सकते हैं :set compatible?

  2. जैसा कि पिछले उत्तर द्वारा बताया गया है, बैकस्पेस का प्रभाव सक्षम insert modeहोने के बाद छोड़ने पर ही दिखाई देता set compatibleहै।

नोट: vi- संगत मोड में, आप पाठ पर बैकस्पेस नहीं कर सकते हैं जो पहले दर्ज किया गया था (प्रवेश करने से पहले insert mode) या ईओएल या इंडेंटेशन इन insert mode। देख :help 'bs'

    'backspace' 'bs'        string  (default "")
                            global
                            {not in Vi}
    Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
    mode.  This is a list of items, separated by commas.  Each item allows
    a way to backspace over something:
    value   effect
    indent  allow backspacing over autoindent
    eol     allow backspacing over line breaks (join lines)
    start   allow backspacing over the start of insert; CTRL-W and CTRL-U
            stop once at the start of insert.

    When the value is empty, Vi compatible backspacing is used.
    For backwards compatibility with version 5.4 and earlier:
    value   effect
      0     same as ":set backspace=" (Vi compatible)
      1     same as ":set backspace=indent,eol"
      2     same as ":set backspace=indent,eol,start"

उनके अर्थ को समझने के लिए अलग-अलग सेटिंग्स आज़माएँ: वर्ण / लाइन विराम प्रविष्ट करें और इन्सर्ट मोड में डालें, एक्ज़िट और रीइंटर इन्सर्ट मोड और फिर बैकस्पेसिंग आज़माएँ।

वे उपयोगकर्ता जो vi व्यवहार से परिचित नहीं हैं और सादे vi का उपयोग करने पर जोर नहीं देते (वैसे भी अनुशंसित नहीं है) चाहिए :set backspace=indent,eol,start। डेबियन पर Afaik आमतौर पर इस सेटिंग के साथ एक सिस्टम-वाइड कॉन्फिग फ़ाइल स्थापित की जाती है।

आप के माध्यम से वर्तमान सेटिंग प्राप्त कर सकते हैं :set bs?


5

यदि यह पहले से ही नहीं है, तो .vimrc नामक उपयोगकर्ता होम डायरेक्टरी में एक नई फ़ाइल बनाएँ। यहाँ हम vi के साथ एक ही समय में बनाएँगे और संपादित करेंगे

sudo vi ~/.vimrc

निम्नलिखित कमांड्स जोड़ें, जिसमें संगतता मोड और बैकस्पेस कुंजी मिटा कार्यक्षमता शामिल है:

set nocp
set backspace=indent,eol,start

फ़ाइल का उपयोग करके सहेजें और बाहर निकलें

:wq

संगतता मोड को बंद करने से तीर कुंजियों के उपयोग की अनुमति मिलती है जो पुराने vi लोग करने के लिए उपयोग किए जाते हैं।

चूँकि हम फ़ाइल बनाते समय sudo'd करते हैं, फ़ाइल का स्वामित्व संभवतः रूट होगा। आप फाइल को यूजर को चॉइस कर सकते हैं।

मेरे मामले में यह एक रास्पबेरी पाई के लिए था, इसलिए उपयोगकर्ता और समूह पी है:

chown pi:pi ~/.vimrc

अब फिर से आग लगा दें और आनंद लें!


1
set nocpमेरे लिए चाल
लुई एम



0

मेरे घर निर्देशिका में .vimrc बनाना जिसमें केवल शामिल हैं

nocp सेट करें

बैकस्पेस के साथ मेरी समस्या को ठीक किया स्क्रीन डिक एस से चरित्र को नहीं हटाया।

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