मैं VIm में अगले अंडरस्कोर तक कैसे बदल सकता हूं?


60

यदि मेरे पास यह पाठ है, और मेरा कर्सर पहले वर्ण पर है:

www.foo.com

मुझे पता है कि मैं कर सकता हूं:

  • cwपहली अवधि तक बदलने के लिए, क्योंकि a word(लोअरकेस w) किसी विराम चिह्न या सफेद स्थान पर समाप्त होता है
  • cWपूरे पते को बदलने के लिए, क्योंकि एक Word(अपरकेस w) केवल व्हाट्सएप पर समाप्त होता है

अब, अगर मेरे पास यह है:

stupid_method_name

और इसे इसे बदलना चाहते हैं?

awesome_method_name

दोनों cwऔर cWपूरी बात बदल देते हैं, लेकिन मैं सिर्फ अंडरस्कोर से पहले टुकड़े को बदलना चाहता हूं।

मेरी कमबैक तकनीक है c/_, 'जब तक आप किसी खोज में अगला अंडरस्कोर नहीं मारते हैं, तब तक अर्थ बदल जाता है', लेकिन मेरे लिए, यह भी सभी अंडरस्कोर को खोज शब्दों के रूप में हाइलाइट करने का कारण बनता है, जो थोड़ा कष्टप्रद है।

क्या कोई विशिष्ट वस्तु है wया Wजिसमें अंडरस्कोर शामिल नहीं है?


इसमें गलत क्या है :nohl?
इग्नासियो वाज़केज़-अब्राम्स

मैं करना चाहते हैं खोज शब्दों समय के सबसे अधिक प्रकाश डाला जा सके; बस जब मैं एक आंदोलन के रूप में खोज का उपयोग करता हूं। (मैंने भी सिर्फ यही सवाल पूछा था: superuser.com/questions/244042/… )
नाथन लॉन्ग

जवाबों:


82

आप कर सकते हैं cf_। च खोजे गए चरित्र को उजागर नहीं करेगा।

ct_यदि आप _ को शामिल नहीं करना चाहते हैं, तो आप भी कर सकते हैं ।


15
आप f, t, F और T को भ्रमित कर रहे हैं fFचरित्र को पीछे ले जाता है; tचरित्र से ठीक पहले आगे बढ़ता है; और Tलक्ष्य चरित्र के दाईं ओर पीछे की ओर बढ़ता है। तो आपका दूसरा उदाहरण होना चाहिए था ct_
गैरीजॉन

2
अब मेरा जवाब सही है। क्षमा करें और धन्यवाद।
डबलफेस

4
ct_बिल्कुल वही है जो मैं चाहता था। यह अब मेरे नियमित वर्कफ़्लो का हिस्सा बन गया है। धन्यवाद!
नाथन लॉन्ग

1
यह भी अविश्वसनीय रूप से विस्तार योग्य है और इसलिए शक्तिशाली है। मुझे लगता है कि आप किसी भी चरित्र को f या t के बाद रख सकते हैं और यह अगले (या कैप्स के लिए प्रचलित) घटना के लिए जाएगा। धन्यवाद।
डोम

2
विम कभी विफल नहीं होता है, केवल एक ही समझ सकता है कि यह क्या सक्षम है!
बेंजामिन आर

64

इसे अपने .vimrc में रखें:

set iskeyword-=_

तब _ को एक शब्द सीमा (हालांकि एक WORD सीमा नहीं) के रूप में माना जाएगा, और cw का उपयोग केवल "कमाल" बदलने के लिए किया जा सकता है, और पूरी बात को बदलने के लिए cW।

देख:

:help iskeyword

तथा

:help word

अधिक जानकारी के लिए।


6
यह जानना बहुत अच्छा है कि मैं अपनी स्वयं की शब्द सीमाओं को परिभाषित कर सकता हूं, लेकिन कुछ विचार के बाद, मुझे लगता है कि सबसे अच्छा समाधान है ct_जैसा कि डबलफेस नीचे कहता है, क्योंकि यह संक्षिप्त है और डिफ़ॉल्ट विम व्यवहार है।
नाथन लॉन्ग

यह मेरा व्यक्तिगत पसंदीदा है
Jay

2
मुझे यह पसंद है, लेकिन यह php में मेरे सिंटैक्स रंग कोडिंग को तोड़ता है।
आरोन सरेन

मैं इसे कैसे परेशान या टॉगल कर सकता हूं?
बहे

1

कैमलकेमोशन एक बहुत ही आसान विम प्लगइन है जो आपको अंडरस्कोर या कैमलकेस नोटेशन का उपयोग करते समय शब्दों के माध्यम से स्थानांतरित करने की अनुमति देता है। इस प्लगइन का उपयोग करके आप कई पारंपरिक vim मोशन कमांड के सामने अल्पविराम लगा सकते हैं जो आपको अंडरस्कोर या कैमलकेस नोटेशन में पूर्ण शब्दों के रूप में शब्दों का इलाज करने की अनुमति देगा।

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