सबसे पहले, map
और noremap
इसमें समान हैं कि प्रत्येक सामान्य, दृश्य, चयन और ऑपरेटर लंबित मोड के लिए एक साथ मैपिंग बनाते हैं । विम विवरण में यह :help map-overview
:
Overview of which map command works in which mode. More details below.
COMMANDS MODES ~
:map :noremap :unmap Normal, Visual, Select, Operator-pending
:nmap :nnoremap :nunmap Normal
:vmap :vnoremap :vunmap Visual and Select
:smap :snoremap :sunmap Select
:xmap :xnoremap :xunmap Visual
:omap :onoremap :ounmap Operator-pending
:map! :noremap! :unmap! Insert and Command-line
:imap :inoremap :iunmap Insert
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
:cmap :cnoremap :cunmap Command-line
उपरोक्त सहायता के अनुसार, यदि आप मानचित्रण को एक विशिष्ट मोड तक सीमित रखना चाहते हैं, तो आपको पहले से प्रस्तुत करना होगा:
'एन' (सामान्य के लिए), 'वी' (दृश्य और चयन के लिए), 'सी' (कमांड के लिए), 'एक्स' (विजुअल मोड के लिए), 'एस' (चयन के लिए), 'ओ' (ऑपरेटर के लिए लंबित) )।
उदाहरण के लिए,
nmap n nzz
एक सामान्य मोड बनाएगा, की पुनरावर्ती मैपिंग n
।
अब, noremap
का केवल गैर-पुनरावर्ती संस्करण है map
।
तो गैर-पुनरावर्ती मानचित्रण क्या है? विम के पास इसका उत्तर भी है :help map-recursive
:
If you include the {lhs} in the {rhs} you have a recursive mapping. When
{lhs} is typed, it will be replaced with {rhs}. When the {lhs} which is
included in {rhs} is encountered it will be replaced with {rhs}, and so on.
This makes it possible to repeat a command an infinite number of times. The
only problem is that the only way to stop this is by causing an error. The
macros to solve a maze uses this, look there for an example. There is one
exception: If the {rhs} starts with {lhs}, the first character is not mapped
again (this is Vi compatible).
For example: >
:map ab abcd
will execute the "a" command and insert "bcd" in the text. The "ab" in the
{rhs} will not be mapped again.
इसका एक उदाहरण निम्नलिखित मानचित्रण है:
:imap j k
:imap k j
अब, v, j की जगह k और k को j के साथ अनंत बार जोड़ देगा, और इसलिए आपको एक त्रुटि दिखाएगा कि आपने एक पुनरावर्ती मैपिंग बनाई है।
यही कारण है कि आम तौर पर यह सिफारिश की जाती है कि आप लगभग हमेशा (सिवाय जब आपके पास <Plug>
मैपिंग या समान है) गैर-पुनरावर्ती मैपिंग का उपयोग करें। जब आप अनजाने में पुनरावर्ती मैपिंग बनाते हैं तो यह Vim हैंग होने से रोकता है। इसलिए गैर-पुनरावर्ती मैपिंग विम में कमांड मैप करने का अधिक सुरक्षित तरीका है।
हाथ में उपरोक्त जानकारी के साथ, हम देख सकते हैं कि कमांड :noreabbrev
का सिर्फ गैर-पुनरावर्ती संस्करण है :abbrev
।
आप :abbrev
केवल डालने, बदलने और कमांड मोड में उपयोग कर सकते हैं । :abbrev
संक्षिप्तिकरण बनाने के लिए उपयोग किया जाता है, (उर्फ शॉर्टकट जो विम का विस्तार कर सकता है)। संक्षिप्त विस्तार का उपयोग :map
/ :noremap
मैपिंग बनाने के लिए, :abbrev
/ :noreabbrev
संक्षिप्त बनाने के लिए, या जब भी आप अपने टाइपिंग का विस्तार करना चाहते हैं।