2013-08-07 10 views
9

में पूरे वर्णमाला को लिखना मुझे कभी-कभी पूरे वर्णमाला abcd…z लिखने की आवश्यकता है और मुझे विम के सम्मिलित मोड में अक्षर द्वारा इसे अक्षर लिखने से नफरत है। क्या यह और अधिक कुशलतापूर्वक करने के लिए कोई विधि मौजूद है?विम

मुझे ga कमांड के बारे में पता है जो मुझे कर्सर के चरित्र के एएससीआई कोड देता है ... लेकिन मुझे अपने मानक समाधान के साथ इसे 1 से (उदाहरण के लिए) 5000 टाइप करने के बारे में कुछ भी नहीं पता है : a1ESCqqyyp^[email protected] ...

+5

... या कम तकनीक ': inoreab abc abcdefghijklmnopqrstuvwxyz' :) – glts

+0

यदि आपको वास्तव में पूरे वर्णमाला को अक्सर टाइप करने की आवश्यकता है तो एक abbrev जाने का तरीका है। इसे करने के लिए एक प्रोग्रामेटिक तरीका याद रखने के लिए इसे आमंत्रित करना बहुत आसान होगा। –

उत्तर

14

set nrformats+=alpha का उपयोग करना: कदम से

ia<Esc>qqylp<C-a>[email protected] 

कदम:

ia<Esc>  " Start with 'a' 
qqylp<C-a>q " @q will duplicate the last character and increment it 
[email protected]   " Append c..z 
+0

बहुत अच्छा लगता है, nrformats के बारे में नहीं पता था। धन्यवाद। –

+0

यदि आपने यहां 'nrformats' के बारे में पोस्ट नहीं किया है तो विकल्प निश्चित रूप से आखिरी होगा मुझे पता चल जाएगा! आपने इस विकल्प का उपयोग किस प्रकार किया ताकि आप इसके बारे में जानते हों? – user1146332

+0

मुझे इसे कभी भी उपयोग करने की याद नहीं है; मैं केवल [': सहायता विकल्प'] (http://vimdoc.sourceforge.net/htmldoc/options.html) के माध्यम से पढ़कर अपने अस्तित्व के बारे में जानता हूं। –

5

कैसे इस आदेश के बारे में:

:put =join(map(range(char2nr('a'),char2nr('z')),'nr2char(v:val)'),'') 

, a से z तक की सीमा में पात्रों में से ASCII मूल्यों इकट्ठा तो nr2char() समारोह की उन्हें नक्शा और वर्तमान बफर में परिणाम सम्मिलित :put = के साथ।

जब आप join( संलग्न करते हैं ... ,'') आपको प्रत्येक को एक अलग पंक्ति पर वर्ण मिलते हैं।

9

अपने खोल करता संभालो विस्तार इस एक बहुत सुरुचिपूर्ण समाधान है:

:r !printf '\%s' {a..z} 

:read! पढ़ता सीयू में बाहरी कमांड का आउटपुट रेंट बफर इस मामले में, यह खोल के विस्तार के बाद {a..z} पर लागू शैल के printf के आउटपुट को पढ़ता है।

0

आप Vim abbreviations या UltiSnips जैसे पूर्ण स्निपेट प्रबंधक प्लगइन का उपयोग करने का प्रयास कर सकते हैं। इसे स्थापित करने में कुछ क्षण लग सकते हैं, और आपको इसे वर्णमाला को एक संक्षिप्त नाम या स्निपेट के रूप में परिभाषित करने के लिए एक और बार टाइप करना होगा, लेकिन इसके बाद आप वर्णमाला या टेक्स्ट के किसी भी अन्य हिस्से को सम्मिलित करने में सक्षम होंगे बहुत अधिक आसानी से।