मैं vim कमांड लाइन पर perl रेगुलर एक्सप्रेशन का उपयोग करना चाहता हूं। उदाहरण के लिए, वर्तमान लाइन पर शब्दों को कैपिटल करने के लिए, आप टाइप कर सकते हैं:
:s/(\w+)/\u$1/g
मैं vim कमांड लाइन पर perl रेगुलर एक्सप्रेशन का उपयोग करना चाहता हूं। उदाहरण के लिए, वर्तमान लाइन पर शब्दों को कैपिटल करने के लिए, आप टाइप कर सकते हैं:
:s/(\w+)/\u$1/g
जवाबों:
आप किसी बाहरी कमांड के जरिए किसी भी लाइन या रेंज की लाइन को फिल्टर कर सकते हैं। जैसे, आप कर सकते हैं:
:.!perl -pe "s/(\w+)/\u\1/g"
जो उस पर्ल कमांड के जरिए करंट लाइन को फिल्टर करेगा। (यहां :कमांड लाइन मोड में जाने के लिए, और .जो वर्तमान लाइन का मतलब है; आप एक लाइन रेंज या %संपूर्ण लाइन के लिए भी निर्दिष्ट कर सकते हैं , आदि)
यदि आप प्रतिस्थापन के पैटर्न में निर्मित विम का उपयोग करना चाहते हैं, तो आप जो निकटतम आएंगे वह विम के "बहुत ही जादुई" विकल्प, \ v का उपयोग करना है, जैसे:
:s/\v(\w+)/\u\1/g
देखें :help patternऔर :help substituteअधिक जानकारी के लिए। मुझे नहीं लगता कि "बहुत जादू" पर्ल के पैटर्न के समान है, लेकिन बहुत करीब है। वैसे भी, आप हमेशा पर्ल का उपयोग कर सकते हैं यदि आप इसके साथ अधिक सहज हों, जैसा कि ऊपर।
(विशेष रूप से व्यवहार किया जाता {है: "0 '-' 9 ',' ए '-' जेड ',' ए '-' जेड 'और को छोड़कर सभी एएससीआईआई अक्षर '_' का एक विशेष अर्थ है। " धन्यवाद!
नहीं, आप उस तरीके से पर्ल रेगुलर एक्सप्रेशन का उपयोग नहीं कर सकते। पर्ल नियमित अभिव्यक्ति घटकों के लिए विम समकक्ष सीखने में मदद के लिए, देखें
:help perl-patterns
हालाँकि, आप पर्ल को बाहरी फ़िल्टर के रूप में उपयोग कर सकते हैं, जैसा कि frabjous द्वारा समझाया गया है। यदि आप अपने Vim को +perlफीचर के साथ संकलित कर रहे हैं, तो आप पर्ल इंटरफ़ेस का उपयोग करके विम के भीतर पर्ल कमांड को निष्पादित कर सकते हैं । देख
:help if_perl.txt
:help perl-patternsने उस एक चीज़ को हल कर दिया है जिसे मैं पहले विम के बारे में नफरत करता था
आप भी उपयोग कर सकते हैं:
/\v"your regex"
के बजाय:
/"your regex"
nnoremap / /\vऔर vnoremap / /\v.vimrc को जोड़कर स्वयं की सहायता भी कर सकते हैं ताकि जब आप /इसे टाइप करें तो यह केवल काम करे।
यहाँ http://vim.wikia.com/wiki/Perl_compatible_ अनियमित_expressions से एक समाधान है
:perldo s/(\w+)/\u$1/g
( :verउस के साथ सत्यापित करें +perlया इसमें +perl/dynसंकलित किया गया है।)
Eregex.vim प्लगइन का उपयोग करें । यह बहुत उपयोगी है और मुझे इससे कोई समस्या नहीं है।