विम वैश्विक सबस्टेशन एक पंक्ति में सभी मैचों को प्रतिस्थापित नहीं करता है


12

कभी-कभी मेरे वैश्विक सबसिस्टम एक पंक्ति में सभी मैचों को स्थानापन्न नहीं करते हैं। यह इस तथ्य से पुष्ट होता है कि मैं इसे देख सकता हूं जब मैं पुष्टि के साथ प्रतिस्थापन करता हूं, तो एक मैच कई संभावित मैचों के साथ एक पंक्ति में पाया जाता है, लेकिन फिर यह दूसरी पंक्ति में जाता है।

मैं gया gcपूरी फ़ाइल के साथ काम करने वाले मापदंडों का उपयोग करता हूं %

इस फाइल पर:

hello hello
hello
hello hello hello
hello

अगर मुझे %s/hello/goodbye/gमिलता है

goodbye hello
goodbye
goodbye hello hello
goodbye

मेरे पास .vimrcखोज / प्रतिस्थापित के बारे में सब कुछ है

set hlsearch
set ignorecase
set incsearch

3
कृपया, हमें एक वास्तविक दुनिया का उदाहरण दें और हमें अपना दिखाएं vimrc
रोमेल

2
के उत्पादन में क्या है :echo &gdऔर अगर आप एक 2 क्या होता है gइस तरह झंडा: %s/hello/goodbye/ggया यदि आप को दूर gझंडा पूरी तरह से? यदि आउटपुट :echo &gdहै 1, तो set nogdefaultअपने अंत में जोड़ने का प्रयास करें vimrc
user9433424

1
ठीक! मुझे पता नहीं क्यों लेकिन डिफ़ॉल्ट रूप से इसे 0 पर सेट किया गया था, इसलिए मैंने कहा set nogdefaultकि जैसे आपने कहा था और यह अब काम करता है, वैसे। धन्यवाद!
निकोलस स्कॉटो डि पेरो

जवाबों:


12

हो सकता है कि आपने या एक प्लगइन ने विकल्प को सक्षम किया हो 'gdefault'gजब भी आप कोई प्रतिस्थापन करते हैं, तो यह विकल्प ध्वज को स्वचालित रूप से जोड़ता है ।

इसलिए, जब आप सक्षम होने पर ध्वज gको मैन्युअल रूप से जोड़ते हैं 'gdefault', तो ऐसा लगता है जैसे आपके पास 2 gध्वज थे, जिनका प्रभाव किसी के समान नहीं है। इसलिए, विम केवल हर पंक्ति पर पैटर्न की पहली घटना का विकल्प है।

डिफ़ॉल्ट रूप से, इस विकल्प को अक्षम किया गया है, लेकिन यकीन है कि यह है, तो आप अपने के अंत में जोड़ सकते हैं बनाने के लिए vimrc: set nogdefault

वैकल्पिक रूप से, यदि आपको संदेह है कि कोई प्लगइन विकल्प को सक्षम कर सकता है, तो आप इसे नीचे ट्रैक कर सकते हैं: verb set gd?

या आप उस विकल्प के लिए अभ्यस्त हो सकते हैं जिसका अर्थ है कि जब आप किसी पैटर्न की सभी घटनाओं को स्थानापन्न करना चाहते हैं, तो आप gध्वज को नहीं जोड़ते हैं (क्योंकि gdefaultयह पहले से ही था), और जब आप केवल पैटर्न की पहली घटना का विकल्प चाहते हैं एक पंक्ति में, आप gध्वज जोड़ते हैं (क्योंकि 2 gध्वज समान नहीं है)।

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