Vim में सभी टेक्स्ट को लोअरकेस में कैसे बदलें


211

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


हम बड़े अक्षरों में सभी पात्रों के साथ HTML पृष्ठों की एक बहुत कुछ है। यह मुझे लोअरकेस में सब कुछ फिर से टाइप करने का समय बचाता है।
ksuralta

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

6
VIM वेबसाइट का उत्तर है: vim.wikia.com/wiki/Switching_case_of_characters धन्यवाद।
fnds

जवाबों:


122
  1. यदि आप वास्तव में छोटे कैप का मतलब रखते हैं , तो नहीं, यह संभव नहीं है - जिस तरह किसी भी टेक्स्ट एडिटर में टेक्स्ट को बोल्ड या इटैलिक में बदलना संभव नहीं है (जैसा कि वर्ड प्रोसेसर के विपरीत है )। यदि आप पाठ को लोअरकेस में बदलना चाहते हैं, तो एक विजुअल ब्लॉक बनाएं और दबाएं u(या Uअपरकेस में कन्वर्ट करने के लिए)। टिल्ड ( ~) कमांड मोड में कर्सर के नीचे वर्ण के मामले को उलट देता है।

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


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

1
दरअसल, usingc usingı lettersoᴛᴜscvwxʏz का उपयोग करते हुए, अधिकांश पत्रों के लिए स्मॉलकैप भी संभव है।
gerrit

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

2
यह उत्तर गलत है। user80168 का सही उत्तर है।
वेन कर्मकार

400

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

ggVGu

स्पष्टीकरण:

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

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

18
Uअपरकेस (जैसे ggVGU) के लिए पूंजी का उपयोग करें
नाथन वालेस

42

मैंगल्डफ़ोर्ड के समाधान के समान, लेकिन कम और आम आदमी के अनुकूल

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


3
:%s/.*/\L&पर्याप्त होगा ( पूरी पंक्ति का चयन करने के gबाद से ध्वज की आवश्यकता नहीं है .*)
गॉर्डन गुस्ताफसन

1
के रूप में :%s/./\L&/g, के बाद से / जी / एक ऑपरेशन है कि लाइन के लिए वैश्विक है दर्शाता है। हालाँकि मुझे क्या मिलता है &। ऐसा क्यों जरूरी है?
ब्रैडेन बेस्ट

1
&इसके लिए यहाँ खड़ा है what was matched by the pattern, इसलिए इसे इस प्रकार समझा जा सकता है: .*द्वारा प्रतिस्थापित करें \Lowercase(what was matched by the pattern)। ध्यान दें कि .विश्व स्तर पर मिलान करने की तुलना में धीमी गति से है.*
Camusensei

39

इस कमांड मोड विकल्प का उपयोग करें

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.

27

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


:%s/[A-Z]/\L&/g

इसी तरह ऊपरी मामले के लिए:


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

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


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

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

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

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

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


मुझे लगता है कि वहाँ नहीं है, लेकिन @mangledorf के उत्तर के लिए वांछित वर्णों को बदलने के लिए कम-से-सहज प्रतिस्थापन आदेश है, जो निचली सीढ़ी के लिए एस्केप सीक्वेंस "\ L &", और अपरकेस के लिए "\ U &" के साथ है। क्या मुझे हो जाता है &। \ L और \ U सही अर्थ बनाते हैं, लेकिन क्यों &आवश्यक है?
ब्रैडेन बेस्ट

9

उपयोग ggguG

gg: पहली पंक्ति में जाता है। गुजरात: लोअरकेस में परिवर्तन। G: अंतिम पंक्ति में जाता है।


कलानिधि के उत्तर से यह कैसे भिन्न होता है?
MSeifert

इसे 0 पर लाने के लिए तैयार किया गया, जो एक उत्तर के लिए एक पर्याप्त स्कोर है जो पिछले एक की एक प्रति है। @ शेफर्ट नेगेटिव स्कोर को गलत / हानिकारक समाधान के लिए आरक्षित किया जाना चाहिए
टिटौ

7

आमतौर पर Vu(या VUअपरकेस के लिए) पूरी लाइन को लोअरकेस में बदलने के लिए पर्याप्त है क्योंकि Vपहले से ही पूरी लाइन का चयन करता है ताकि कार्रवाई को लागू किया जा सके।

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

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

उदाहरण के लिए, v- वास्तविक दृश्य मोड, और संबंधित V- दृश्य रेखा, और Ctrl+ Q- दृश्य ब्लॉक मोड (जो आपको ब्लॉक का चयन करने की अनुमति देता है, एक महान विशेषता कुछ अन्य उन्नत संपादकों को भी आमतौर पर Altकुंजी पकड़कर और पाठ का चयन करके प्रदान करते हैं)।


6

यदि आप यूनिक्स के स्वाद के तहत चल रहे हैं

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

4
वर्गाकार कोष्ठक अतिशय होते हैं, और एक बार जब आप उन्हें हटा देते हैं, तो उद्धरण आवश्यक नहीं होते हैं। :%!tr A-Z a-z
अपरिपक्व जूल 13'09

!एक बाहरी शेल कमांड, तो यह संकेत करता है $ man tr(के रूप में करने का विरोध किया :help tr) पता चलता है कि trके लिए है translate
ब्रैडेन बेस्ट

बस अन्य तरीके से::%0,$!tr [:upper:] [:lower:]
अल्बर्टोवर

2

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

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