2009-07-09 10 views
170

में सभी टेक्स्ट को लोअरकेस में कैसे परिवर्तित करें Vim में सभी टेक्स्ट को लोअरकेस में कैसे परिवर्तित करते हैं? क्या यह भी संभव है?विम

+0

हमारे पास अपरकेस में सभी वर्णों के साथ बहुत सारे HTML पृष्ठ हैं। यह मुझे लोअरकेस में सब कुछ फिर से लिखने का समय बचाता है। – ksuralta

+2

प्रश्न संपादित करने से पहले, यह सभी पाठों को छोटे कैप्स में परिवर्तित करने का तरीका था। जाहिर है, टेक्स्ट को लोअरकेस में बदलने के लिए एक उपयोग केस है। – lemonad

+5

वीआईएम वेबसाइट का उत्तर है: http://vim.wikia.com/wiki/Switching_case_of_characters धन्यवाद। – fnds

उत्तर

106
  1. तुम सच में small caps मतलब है, तो कोई, कि संभव नहीं है - बस के रूप में यह संभव है किसी भी text editor में बोल्ड या इटैलिक करने के लिए पाठ परिवर्तित करने के लिए (के रूप में word processor के खिलाफ) नहीं है। यदि आप टेक्स्ट को लोअरकेस में कनवर्ट करना चाहते हैं, तो एक दृश्य ब्लॉक बनाएं और u (या U को अपरकेस में कनवर्ट करने के लिए दबाएं) दबाएं। कमांड मोड में Tilde (~) कर्सर के नीचे वर्ण के मामले को उलट देता है।

  2. यदि आप छोटे कैप्स में विम में सभी टेक्स्ट देखना चाहते हैं, तो आप guifont विकल्प को देखना चाहेंगे, या :set guifont=* टाइप करें यदि आपका विम स्वाद जीयूआई फ़ॉन्ट चयनकर्ता का समर्थन करता है।

+26

मुझे लगता है कि यह उल्लेखनीय है कि आपको टेक्स्ट के ब्लॉक को कम करने के लिए एक दृश्य ब्लॉक बनाने की आवश्यकता नहीं है। 'guu' एक लाइन को कम करेगा, और' gu [motion] 'उस गति के लायक पाठ को कम करेगा। इसी तरह, 'जीयूयू' और 'जीयू [गति]' उसी तरह काम करते हैं, केवल अपरकेस के लिए। –

+1

असल में, अधिकांश अक्षरों के लिए छोटे कैप्स भी संभव हैं, ᴀʙcᴅᴇꜰɢʜıᴊᴋʟᴍɴoᴘʀsᴛᴜvwxʏz का उपयोग कर। – gerrit

+0

हालांकि यह सिर्फ एक हैक है। ये नियमित रूप से छोटे कैप्स के रूप में उपयोग करने के लिए नहीं हैं और फोंट द्वारा अच्छी तरह से समर्थित नहीं हैं। (मेरी डेस्कटॉप मशीन पर, एफ अजीब रूप से प्रस्तुत करता है, मेरे फोन पर यह बिल्कुल उदाहरण नहीं देता है, उदाहरण देने के लिए।) वैसे भी, यूनिकोड का दिलचस्प हिस्सा, धन्यवाद! – zoul

337

मुझे लगता है कि आप पाठ को कम करना चाहते हैं। समाधान बहुत आसान है:

ggVGu 

स्पष्टीकरण:

  1. gg - पाठ की पहली पंक्ति को जाता है
  2. वी - दृश्य चयन पर बदल जाता है, लाइन मोड में
  3. जी - फ़ाइल के अंत में जाता है (फिलहाल आपके पास पूरा टेक्स्ट चुना गया है)
  4. यू - लोअरकेस चयनित क्षेत्र
+76

या ggguG अगर आप इसे दृश्य चयन के बिना करना चाहते हैं। : सहायता gu – DrAl

+24

यह स्वीकार्य उत्तर – marcosdsanchez

+11

अपरकेस (उदाहरण के लिए 'ggVGU') –

7

आप यूनिक्स का स्वाद के तहत

:0,$!tr "[A-Z]" "[a-z]" 
+4

के लिए पूंजी 'यू' का उपयोग करना चाहिए स्क्वायर ब्रैकेट अनिवार्य हैं, और एक बार जब आप उन्हें हटा देते हैं, तो उद्धरण आवश्यक नहीं हैं। ':%!tr ए-जेड ए-जेड – ephemient

+0

'!' बाहरी शेल कमांड इंगित करता है, इसलिए '$ man tr' (': help tr' के विपरीत) से पता चलता है कि 'tr'' अनुवाद 'के लिए है। –

22

कई एक बिल्ली त्वचा के तरीके चला रहे हैं ... यहाँ रास्ता नहीं है मैं तो बस posted के बारे में:


:%s/[A-Z]/\L&/g 
इसी तरह अपर केस के लिए

:


:%s/[a-z]/\U&/g 

मैं इस तरह से पसंद करता हूं क्योंकि मैं इस निर्माण का उपयोग कर रहा हूं (:%s/[pattern]/replace/g) हर समय यह अधिक प्राकृतिक है।

+0

मुझे लगता है कि पिछले उदाहरण में एक टाइपो है ('ऊपरी मामले के लिए भी इसी तरह)) - रेगेक्स को' [ए-जेड] 'के बजाय [ए-जेड] में बदलना चाहिए। – monojohnny

+1

':% s /./ \ U &/g' भी काम करता है। यह संख्याओं और गैर-वर्णमाला वर्णों को अनदेखा करता है। मुझे '' 'क्या मिलता है। \ U (या \ L) अपने आप से पर्याप्त क्यों नहीं है? क्या हम इसके लिए स्पष्टीकरण प्राप्त कर सकते हैं? –

+2

'&' मिलान की गई स्ट्रिंग के लिए स्टैंड-इन है। तो '\ U &' मिलान की गई स्ट्रिंग को कैपिटल करता है ताकि इसका उपयोग प्रतिस्थापन के लिए किया जा सके। –

32

और mangledorf के समाधान की तरह, लेकिन छोटे आम ​​आदमी अनुकूल

:%s/.*/\L&/g

+2

'% s /.*/ \ L &' पर्याप्त होगा ('g' ध्वज की आवश्यकता नहीं है '। *' पूरी लाइन का चयन करती है) –

+0

जैसा कि '% s /./ \ L &/g' होगा, चूंकि/जी/एक ऑपरेशन को दर्शाता है जो लाइन के लिए वैश्विक है। मुझे क्या मिलता है, हालांकि, '&' है। यह जरूरी क्यों है? –

19
  • टॉगल मामले छ ~ फिर एक आंदोलन के साथ "हैलो" को "हैलो"।
  • जीयूयू के साथ अपरकेस "हेल्लो" से "हेल्लो" तो एक आंदोलन।
  • लोअरकेस "हेलो" से "हैलो" को फिर एक आंदोलन के साथ।

उदाहरण और अधिक जानकारी यह पढ़ कृपया के लिए: http://vim.wikia.com/wiki/Switching_case_of_characters

+0

मुझे आश्चर्य है कि इसके लिए एक पूर्व आदेश है या नहीं। –

+0

मुझे लगता है कि वहां नहीं है, लेकिन इसके लिए कम से कम सहज ज्ञान युक्त प्रतिस्थापन कमांड है जिसके लिए वांछित अनुक्रम "\ L &" के साथ वांछित वर्णों को प्रतिस्थापित करने के लिए @ mangledorf के उत्तर में और अपरकेस के लिए "\ U &" है। मुझे '' 'क्या मिलता है। \ एल और \ यू सही समझ में आता है, लेकिन 'और' क्यों आवश्यक है? –

2

मैं ने वही समस्या थी, और मुझे ":%s/old/new/g" उपयोग करना चाहता था, लेकिन दो आदेशों का उपयोग करते समाप्त हो गया:

:0 
gu:$ 
28

इस प्रयोग आदेश मोड विकल्प

ggguG 


gg - Goto the first line 
g - start to converting from current line  
u - Convert into lower case for all characters 
G - To end of the file. 
2

आमतौर पर वीयू (या वीअपरकेस के लिए यू) पहले से ही खिलाफ कार्रवाई लागू करने के लिए पूरी लाइन का चयन करता है के रूप में वी लोअरकेस में पूरी लाइन चालू करने के लिए पर्याप्त है।

टिल्डा (~) व्यक्तिगत पत्र के मामले बदलता है, ऊंट मामले या इसी तरह की हो जाती है।

यह वास्तव में बहुत अच्छा है कि विभिन्न अवसरों से निपटने के लिए विम के कई अलग-अलग तरीके हैं और उन तरीकों को कैसे व्यवस्थित तरीके से व्यवस्थित किया जाता है।

उदाहरण के लिए, वी - सच दृश्य मोड, और संबंधित वी - दृश्य लाइन, और Ctrl +क्यू - दृश्य ब्लॉक मोड (क्या आप ब्लॉक का चयन करने के लिए अनुमति देता है, कुछ के लिए एक महान सुविधा अन्य उन्नत संपादक आमतौर पर Alt कुंजी और टेक्स्ट का चयन करके ऑफ़र करते हैं)।

-1

उपयोग ggguG

gg: पहली पंक्ति को जाता है। gu: लोअरकेस में बदलें। जी: अंतिम पंक्ति पर जाता है।

+0

कलानिधि के जवाब से यह अलग कैसे है? – MSeifert