आंदोलनों को कैमल कैस या स्नेक_केस कैसे बनाएं?


20

एक पहचानकर्ता बनाने वाले कई शब्दों को अलग करने के लिए या तो कैमकेलेज या स्नेक_केस का उपयोग करना आम है। यह अच्छा होगा अगर "शब्द" आंदोलनों (होगा b, w, e) उन भीतरी पहचानकर्ता सीमाओं का पता लगाने जाएगा।

यह व्यवहार कैसे प्राप्त किया जा सकता है? (प्लगइन / vimrc / ...?)


1
मैं इसके लिए भी जानना चाहूंगाsnake_case
मार्टिन टूरनोइज

आप iskeywordसेटिंग के साथ कुछ करने में सक्षम हो सकते हैं , लेकिन मुझे डर है कि इसके कई अतिरिक्त दुष्प्रभाव होंगे ... (देखें :help word)।
मार्टिन टूरनोइज

@Carpetsmoker मुझे लगा कि इसके लिए काम किया है snake_case। ऐसा लगता है कि यह नहीं है, यह quesiton में शामिल है।
जैस्पर

4
VimWiki ने आपको कवर किया है: vim.wikia.com/wiki/Moving_through_camel_case_words मैं किसी बिंदु पर उचित उत्तर लिखूंगा यदि कोई व्यक्ति मुझे इसके लिए नहीं हराता है।
रिच

मैं व्यक्तिगत रूप से एक समूचे शब्द को एक शब्द के रूप में देखता हूं और केस या अंडरस्कोर के कारण आधे शब्द को तोड़ने के विचार को पसंद नहीं करता। आम तौर पर मैं का उपयोग fऔर tकुंजी भीतरी शब्द आंदोलनों का प्रबंधन करने के।
सुकिमा

जवाबों:


11

प्लगइन CamelCaseMotion क्या आप चाहते हैं। डिफ़ॉल्ट रूप से यह कुंजी का मानचित्रण ,w, ,b, ,eजो सामान्य के बराबर हैं w, b, e। यह CamelCase और snake_case दोनों के लिए काम करता है:

उदाहरण:

camelCaseWord

उपयोग करने d,wसे दूर हो जाएगा camel; इसे फिर से उपयोग करने से दूर हो जाएगा Case

या साँप के मामले में:

snake_case_word

d,wहटा देगा snake_, और दूसरी बार हटा देगा case_

"इनर" गतियों (जैसे कि diw) को भी उम्मीद के मुताबिक काम करना चाहिए (जैसे di,w)।

आप चाहें, तो आप भी डिफ़ॉल्ट रद्द कर सकते थे w, bऔर, eसाथ:

map <silent> w <Plug>CamelCaseMotion_w
map <silent> b <Plug>CamelCaseMotion_b
map <silent> e <Plug>CamelCaseMotion_e
sunmap w
sunmap b
sunmap e
omap <silent> iw <Plug>CamelCaseMotion_iw
xmap <silent> iw <Plug>CamelCaseMotion_iw
omap <silent> ib <Plug>CamelCaseMotion_ib
xmap <silent> ib <Plug>CamelCaseMotion_ib
omap <silent> ie <Plug>CamelCaseMotion_ie
xmap <silent> ie <Plug>CamelCaseMotion_ie

2
ध्यान दें कि इस प्लगइन के डिफ़ॉल्ट मैपिंग शैडो ,आदेश (दोहराने पिछले f/ t/ F/ Tगति), जिसका अर्थ है आप कि आदेश का उपयोग करना चाहते हैं, आप एक देरी (द्वारा विन्यस्त के लिए इंतज़ार करना होगा 'timeoutlen')। सौभाग्य से, प्लगइन आपको अपने चयन के वैकल्पिक मैपिंग का उपयोग करने की अनुमति देता है।
tommcdo

: इस प्लगइन, यानी के साथ कुछ दुष्प्रभाव होने लगते हैं dwपर , key);जब कर्सर है पर k, (newline सहित) पूरी पंक्ति को हटाने के लिए लगता है, जबकि मैं तो बस उम्मीद keyहटा दिया जाना चाहिए ...
मार्टिन Tournoij

1
मुझे यह प्लगइन बेहतर लगा। हटाने के साथ गति का संयोजन ठीक से काम करता है, और यह कोष्ठक पर भी रुकता है।
पास्चलीस

मामूली बिंदु, लेकिन पहले उदाहरण में यह निश्चित रूप से हटा देगा camelऔर फिर Case, नहीं Word?
वरीय_नोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.