vim
विम में कुंजी मैपिंग
खोज…
परिचय
विम कुंजी मैपिंग को अपडेट करने से आपको दो प्रकार की समस्याओं को हल करने की अनुमति मिलती है: कुंजी को उन अक्षरों को फिर से असाइन करना जो अधिक यादगार या पहुंच योग्य हों, और उन कार्यों के लिए मुख्य कमांड बनाना जो किसी के पास नहीं हैं। यहाँ आप विभिन्न तरीकों के बारे में जानेंगे [फिर से] मुख्य कमांड मैप करें, और जिस संदर्भ में वे लागू होते हैं (यानी विम मोड)
बुनियादी मानचित्रण
नक्शा अवलोकन
एक महत्वपूर्ण अनुक्रम को map
वेरिएंट में से एक का उपयोग करके दूसरे प्रमुख अनुक्रम में फिर से मैप किया जा सकता है।
उदाहरण के रूप में, निम्न विशिष्ट map
सम्मिलित मोड से बाहर निकल जाएगा जब आप त्वरित क्रम में j k दबाते हैं:
:inoremap jk <Esc>
मानचित्र संचालक
इसके कई प्रकार हैं :map
विभिन्न मोड के लिए :map
।
आदेश | मोड |
---|---|
:map :noremap :unmap | सामान्य, दृश्य और ऑपरेटर-लंबित मोड |
:map! :noremap! :unmap! | इन्सर्ट और कमांड-लाइन मोड |
:nmap , :nnoremap , :nunmap | सामान्य स्थिति |
:imap :inoremap :iunmap | सम्मिलित करें और बदलें मोड |
:vmap :vnoremap :vunmap | दृश्य और चयन मोड |
:xmap :xnoremap :xunmap | दृश्य विधा |
:smap :snoremap :sunmap | मोड का चयन करें |
:cmap :cnoremap :cunmap | कमांड-लाइन मोड |
:omap :onoremap :ounmap | ऑपरेटर लंबित मोड |
आमतौर पर, आपको इसका उपयोग करना चाहिए :noremap
वेरिएंट ; यह मानचित्रण प्रतिरक्षा को पुनरावृत्ति और पुनरावृत्ति बनाता है।
नक्शा कमान
- आप सभी मैपिंग का उपयोग करके प्रदर्शित कर सकते हैं
:map
(या उपरोक्त विविधता में से एक)। - किसी विशिष्ट कुंजी अनुक्रम के लिए वर्तमान मानचित्रण प्रदर्शित करने के लिए, उपयोग करें
:map <key>
जहां<key
><key
का अनुक्रम है - Esc की तरह स्पेशल कीज़ को
<>
संकेतन, जैसे<Esc>
का उपयोग करके मैप किया जाता है। प्रमुख कोड की पूरी सूची के लिए, http://vimdoc.sourceforge.net/htmldoc/intro.html#keyode देखें -
:nmapclear
- सभी सामान्य मोड मानचित्र को साफ़ करें -
:nunmap
- एक सामान्य मोड मैप को अनमैप करें - आप को बदलने के द्वारा एक दृश्य की चाबी के बीच अधिक से अधिक समय कॉन्फ़िगर कर सकते हैं
timeout
औरttimeout
चर
उदाहरण
-
imap jk <Esc>
: इन्सर्ट मोड में टाइपिंगjk
आपको सामान्य मोड में वापस लाएगा -
nnoremap tt :tabnew<CR>
: सामान्य मोड मेंtt
टाइप करने पर एक नया टैब पेज खुलेगा -
nnoremap <Cj> <Cw>j
: टाइप करना<Cj>
-
vmap <Cc> \cc
: दृश्य मोड में<Cc>
vmap <Cc> \cc
टाइप करने से\cc
(NERDCommenter कमांड लाइन पर टिप्पणी करने के लिए) निष्पादित हो जाएगी। जैसा कि यह एक प्लगइन मानचित्रण पर निर्भर करता है, आप उपयोग नहीं कर सकते हैं:vnoremap
यहाँ:vnoremap
!
नक्शा नेता कुंजी संयोजन
लीडर कुंजी को एक कुंजी-बाइंडिंग के साथ मैपिंग बनाने के तरीके के रूप में इस्तेमाल किया जा सकता है जिसे अंतिम उपयोगकर्ता द्वारा ओवरराइड किया जा सकता है।
लीडर डिफ़ॉल्ट रूप से \ key है। इसे ओवरराइड करने के लिए, एंड-यूज़र को निष्पादित करना होगा :let g:mapleader='somekey(s)'
मैपिंग को परिभाषित करने से पहले :let g:mapleader='somekey(s)'
।
एक विशिष्ट परिदृश्य में, मैपवॉल्डर को .vimrc
में सेट किया गया है, और प्लगइन्स उनके लीडिंग को बदलने के लिए उनके मैपिंग के कीबाइंडिंग भाग में <Leader>
उपयोग करते हैं।
प्लगइन में, हम निम्न के साथ मैपिंग को परिभाषित करेंगे:
:nnoremap <Leader>a somecomplexaction
यह एक महत्वपूर्ण संयोजन \ + के लिए somecomplexaction कार्रवाई को मैप करेगा।
नेता के बिना एक कार्रवाई नहीं बदलती है।
प्लगइन्स कीबाइंडिंग को अनुकूलित करने के लिए अधिक जगह छोड़ने के लिए <Plug>Mappings
का उपयोग करना भी संभव है।
बुनियादी मानचित्रण (आसान शॉर्टकट) का चित्रण।
अधिकांश पाठ संपादकों में, वर्तमान दस्तावेज़ को सहेजने के लिए मानक शॉर्टकट Ctrl + S (या macOS पर Cmd + S ) है।
विम में यह सुविधा डिफ़ॉल्ट रूप से नहीं है, लेकिन इससे चीजों को आसान बनाने के लिए मैप किया जा सकता है। .vimrc
फ़ाइल में निम्न पंक्तियाँ जोड़ने से काम चल जाएगा।
nnoremap <c-s> :w<CR>
inoremap <c-s> <c-o>:w<CR>
nnoremap
कमांड Ctrl + s से :w
(फ़ाइल में वर्तमान सामग्री लिखने के लिए) आदेश को inoremap
जबकि inoremap
कमांड Ctrl + S :w
कमांड को मैप करता है और इन्सर्ट मोड में वापस लौटता है ( <co>
एक कमांड के लिए सामान्य मोड में जाता है कर्सर की स्थिति में बदलाव किए बिना, बाद में मोड डालने के लिए रिटर्न देता है, जो अन्य समाधान जैसे <esc>:w<cr>a
यह सुनिश्चित नहीं कर सकता है)।
इसी तरह,
" This is commented, as Ctrl+Z is used in terminal emulators to suspend the ongoing program/process.
" nnoremap <c-z> :u<CR>
" Thus, Ctrl+Z can be used in Insert mode
inoremap <c-z> <c-o>:u<CR>
" Enable Ctrl+C for copying selected text in Visual mode
vnoremap <c-c> <c-o>:y<CR>
PS: हालाँकि यह ध्यान दिया जाना चाहिए कि ssh (या PuTTY) का उपयोग करते समय Ctrl + S अपेक्षित रूप से काम नहीं कर सकता है। इसका समाधान इस दस्तावेज़ के दायरे में नहीं है, लेकिन यहां पाया जा सकता है।