दिलचस्प पोस्ट
किसी सामग्री स्क्रिप्ट का उपयोग करके पृष्ठ संदर्भ में कोड डालें ViewPager से केंद्रित दृश्य प्राप्त करें IntelliJ टूलटिप JavaDocs दिखाता है कॉलम में एक सीएसएस वर्ग जोड़ना @grant मान सेट होने पर `विंडो` (लक्ष्य पृष्ठ) ऑब्जेक्ट कैसे एक्सेस करें? रेल 3 में 'config.autoload_paths' में लिब जोड़ना मेरे मॉड्यूल को स्वत: लोड नहीं करता है आईओएस सिम्युलेटर गेम्स बहुत धीमे (कम एफपीएस) चलाते हैं AngularJS – एनजी-मॉडल का उपयोग करने वाला निर्देश बनाएं Javax.net.ssl.SSLHandshakeException का समाधान किया जा रहा है: sun.security.validator.ValidatorException: PKIX पथ बिल्डिंग विफल हुई त्रुटि? फ़ंक्शन में मैं एक दो-आयामी सरणी के संदर्भ को कैसे पारित कर सकता हूं? नेविगेशन नियंत्रक स्टैक, सबव्यूज़ या मोडल कंट्रोलर का उपयोग किए बिना दृश्य नियंत्रकों के परिवर्तन का एनीमेट करें? त्रुटि: Servlet जार लोड नहीं है … आक्रमण वर्ग: javax / servlet / Servlet.class हायफन (-) चरित्र से शुरू होने वाली फाइल नाम के साथ मैं कैसे काम कर सकता हूं? वेक्टर ड्रेनेबल – क्या यह एंड्रॉइड के प्री-लॉलीपॉप संस्करणों के लिए किसी तरह उपलब्ध है? स्काला की उपज क्या है?

रिमैप, नॉरमैप, नॉरमॅप और vnoremap मैपिंग कमांड के बीच अंतर क्या है?

रिमैप, नॉरमैप, नॉरमॅप और vnoremap मैपिंग कमांड के बीच अंतर क्या है?

वेब के समाधान से एकत्रित समाधान "रिमैप, नॉरमैप, नॉरमॅप और vnoremap मैपिंग कमांड के बीच अंतर क्या है?"

remap एक ऐसा विकल्प है जो मैपिंग को पुनरावर्ती रूप से काम करता है डिफ़ॉल्ट रूप से यह चालू है और मैं सुझाता हूं कि आप इसे उसी तरह छोड़ दें शेष मैपिंग कमांड हैं , जो नीचे वर्णित हैं:

:map और :noremap विभिन्न मानचित्रण आदेशों के पुनरावर्ती और गैर-पुनरावर्ती संस्करण हैं। इसका अर्थ यह है कि यदि आप ऐसा करते हैं:

 :map j gg :map Q j :noremap W j 

j gg लिए मैप किया जाएगा Q भी gg लिए मैप किया जाएगा, क्योंकि j को रिकर्सिव मैपिंग के लिए विस्तारित किया जाएगा। W लिए मैप किया जाएगा (और नहीं gg ) क्योंकि j गैर-रिकर्सिव मानचित्रण के लिए विस्तारित नहीं किया जाएगा।

अब याद रखें कि विम एक मॉडल संपादक है इसमें एक सामान्य मोड, दृश्य मोड और अन्य मोड हैं।

मैपिंग के प्रत्येक सेट के लिए, एक मैपिंग है जो सामान्य, विज़ुअल, सेलेक्ट और ऑपरेटर मोड ( :map और :noremap ) में काम करता है, जो कि सामान्य मोड ( :nmap और :nnoremap :noremap ) में काम करता है, एक दृश्य मोड में :vmap और :vnoremap ) और इतने पर।

इस पर अधिक मार्गदर्शन के लिए, देखें:

 :help :map :help :noremap :help recursive_mapping :help :map-modes 

मुझे लगता है कि vim दस्तावेज़ीकरण इन आदेशों के नामकरण के पीछे के अर्थ को समझाया होगा। बस आपको बता रहे हैं कि वे क्या करते हैं, नाम याद रखने में आपकी सहायता नहीं करता है।

map सभी रिकर्सिव मानचित्रण आदेशों का "रूट" है रूट फॉर्म "सामान्य", "दृश्य + चयन", और "ऑपरेटर-लंबित" मोड पर लागू होता है।

noremap सभी गैर-पुनरावर्ती मानचित्रण आदेशों का "रूट" है रूट फ़ॉर्म उसी प्रकार के map पर लागू होता है

(ध्यान दें कि map! जैसे मोड ! भी हैं जो कि डालने और कमांड लाइन पर लागू होते हैं।)

इस संदर्भ में "रिकर्सिव" का अर्थ क्या है इसके लिए नीचे देखें।

एक मोड अक्षर तैयार करना जैसे कि मानचित्रण कार्य करता है उस मोड को संशोधित करें। यह लागू मोड की सूची का एक सबसेट चुन सकता है (उदाहरण के लिए केवल "दृश्य"), या अन्य तरीकों का चयन करें, जिसे map लागू नहीं होता है (जैसे "डालें") ।

help map-modes आपको कुछ तालिकाओं को दिखाया जाएगा जो मैपिंग किस तरीके से लागू होता है इसे कैसे नियंत्रित करें।

मोड अक्षर:

  • n : केवल सामान्य
  • v : दृश्य और चयन करें
  • o : ऑपरेटर-लंबित
  • x : दृश्य केवल
  • s : केवल चयन करें
  • i : डालें
  • c : कमांड लाइन
  • l : डालें, कमांड लाइन, regexp- खोज (और अन्य। सामूहिक रूप से "लैंग- Arg" छद्म मोड) कहा जाता है

" पुनरावर्ती " का अर्थ है कि मैपिंग को एक परिणाम के रूप में विस्तारित किया जाता है, फिर परिणाम का विस्तार दूसरे परिणाम के रूप में किया जाता है, और इसी तरह।

जब इन में से एक सत्य है, तो विस्तार बंद हो जाता है:

  1. परिणाम अब और कुछ और करने के लिए मैप नहीं किया गया है
  2. एक गैर-रिकर्सिव मैपिंग लागू की गई है (अर्थात "नोरमैप" [या इसके आईने में से एक] अंतिम विस्तार है)।

उस बिंदु पर, अंतिम परिणाम के विम की डिफ़ॉल्ट "अर्थ" लागू / क्रियान्वित किया जाता है।

" गैर-पुनरावर्ती " का अर्थ है कि मैपिंग केवल एक बार विस्तारित होती है, और वह परिणाम लागू / निष्पादित होता है।

उदाहरण:

  nmap KH nnoremap HG nnoremap G gg 

उपरोक्त कारण K को H में विस्तार करने के लिए, फिर H को विस्तार करने के लिए और बंद करने के लिए H यह nnoremap की वजह से रोकता है, जो तुरंत बढ़ता है और तुरंत बंद हो जाता है G का अर्थ निष्पादित किया जाएगा (यानी "अंतिम पंक्ति में कूदो")। अधिकतर एक गैर-पुनरावर्ती मानचित्रण को एक विस्तार श्रृंखला में कभी भी लागू किया जाएगा (यह होने का आखिरी विस्तार होगा)

G से gg का मानचित्रण केवल तब लागू होता है जब आप G दबाते हैं, लेकिन यदि आप K दबाते हैं तो नहीं। यह मैपिंग K को प्रभावित नहीं करता है, भले ही G को रिकर्सिव या नहीं मैप किया गया हो, लेकिन यह 2 लाइन है क्योंकि K के विस्तार को रोकता है, इसलिए 3 लाइन का इस्तेमाल नहीं किया जाएगा।

सावधानी, vnoremap और vmap दृश्य और चयन मोड में काम करते हैं। केवल विज़ुअल मोड में मानचित्रण रखने के लिए, xmap और xnoremap उपयोग करें

एक अंतर यह है कि:

  • :map nvo == सामान्य + (विजुअल + चयन) + ऑपरेटर लंबित है
  • :map! ic == डालें + कमांड लाइन मोड है

जैसा कि help map-modes तालिका पर कहा गया है।

इसलिए: map सभी मोड में मैप नहीं करता है

सभी मोडों को मैप करने के लिए आपको दोनों की जरूरत है :map और :map!