विम में सिंगल कैरेक्टर डालें?


25

विम (7.2) में, rएक एकल वर्ण को दूसरे के साथ बदलने के लिए एक सामान्य मोड कमांड है। उदाहरण के लिए, टाइपिंग rXकर्सर के नीचे एक वर्ण को बदल देगी Xऔर फिर आपको सामान्य मोड में लौटा देगी ।

क्या किसी एकल वर्ण को सम्मिलित करने और फिर सामान्य मोड पर लौटने के लिए एक सामान्य-मोड कमांड है?


1
संभावित क्रॉस साइट डुप्लिकेट: stackoverflow.com/questions/1557893/…
Ciro Santilli 中心 法轮功::

व्यापक समाधान के लिए vim.wikia.com/wiki/Insert_a_single_character देखें ।
मैक्सिम सुसलोव

जवाबों:


6

MelBurslan सही है कि यह सुविधा मूल रूप से मौजूद नहीं है, लेकिन उपयोगकर्ता-परिभाषित कमांड बनाना वास्तव में इसे बनाने के बारे में जाने का तरीका नहीं है। मैंने कुछ मिनटों के लिए टिंकर किया और इसके साथ आया:

:nmap <silent> ,s "=nr2char(getchar())<cr>P

जो एक रजिस्टर से "पुट" पाठ को शामिल करते हुए कुछ विम चाल का उपयोग करता है, इस मामले में "अभिव्यक्ति" रजिस्टर। रजिस्टर में प्लग किया जा रहा अभिव्यक्ति " nr2char(getchar())" है जो एकल वर्ण स्ट्रिंग लौटाएगा।

इस तरह से मैंने मैपिंग का कारण यह है कि उपयोगकर्ता इनपुट "मिडवे" के माध्यम से एक मैपिंग मुश्किल है और अप्रत्याशित रूप से व्यवहार कर सकता है; यहां तक ​​कि यह मानचित्रण कर्सर को स्थिति क्षेत्र में गिरा देगा जबकि उपयोगकर्ता को वर्ण लिखने के लिए प्रतीक्षा करनी होगी।


8

हमें जॉनी के लिए धन्यवाद के लिए नीचे टिप्पणी में इस भयानक जवाब दे:

":nmap <C-i> i_<Esc>r"

वह मानचित्र नियंत्रण + i को एकल वर्ण सम्मिलित करता है, और यह बहुत ही संक्षिप्त रूप से करता है।

आपकी vimrc फ़ाइल में, यह इस तरह दिखेगा:

nnoremap <C-i> i_<Esc>r

मैंने अंतरिक्ष का उपयोग करने के लिए अपनी मैपिंग को बदल दिया, और आप अपनी पसंद की कुंजी में अपना बदलाव कर सकते हैं:

nnoremap <Space> i_<Esc>r

1
यह सबसे संक्षिप्त और सरल उत्तर है।
दयलांतेपिगुय

4

जहां तक ​​मुझे पता है, vi संपादक के किसी भी व्यापक रूप से वितरित अवतार में ऐसा कोई कार्य नहीं है, लेकिन, विम में कस्टम कमांड बनाने की सुविधा है। यह पहले यहां चर्चा की जा चुकी है: इस सूत्र में

आप अपने कस्टम कमांड को बनाने में सक्षम हो सकते हैं जो आप करना चाहते हैं।


3
यहाँ एक अक्षर डालने के लिए Ctrl-I को मैप करने का कमांड दिया गया है: ": nmap <Ci> i_ <esc> r"
जॉनी

2

ऐसा करने का एक सरल तरीका कट xऔर पुट pकमांड का उपयोग करना है । कहते हैं कि *वह चरित्र है जिसे आप सम्मिलित करना चाहते हैं। का उपयोग कर डालें i * Esc। फिर मारा x। इससे किरदार कट जाएगा। अब, आप pएकल चरित्र डालने के लिए हिट कर सकते हैं । यदि आपको उस चरित्र को 300 बार सम्मिलित करने की आवश्यकता है, तो आप टाइप कर सकते हैं 300p:।

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