कैमलकेस को लोअरकेस_विथ_संडर्सकोर्स में बदलने के लिए मैम मैक्रो


12

क्या CamelCase को लोअरकेस_विथ_संडर्सकोर्स और इसके विपरीत में परिवर्तित करने के लिए विम मैक्रो है?

जवाबों:


19

टिम पोप के abolish.vimबीच में बदल सकते हैं camelCase, MixedCase, snake_case, और UPPER_CASE, साथ ही करने के लिए परिवर्तित (एक तरह से) dash-case

में से किसी पर कर्सर fooBar, FooBar, foo_bar, या FOO_BARऔर उपयोग

  • crc में परिवर्तित करने के लिए fooBar
  • crm में परिवर्तित करने के लिए FooBar
  • cr_या
    crsमें परिवर्तित करने के लिएfoo_bar
  • cru में परिवर्तित करने के लिए FOO_BAR
  • cr- में परिवर्तित करने के लिए foo-bar

सही समाधान
नील जी

टिम पोप कमाल हैं। इतने सारे महान प्लगइन्स।
हेंड्रिक

6

हाँ वहाँ है , और एक बोनस के रूप में वहाँ एक है विपरीत दिशा के रूप में अच्छी तरह से जाने के लिए!

विकी से बोली कि अगर यह चला जाए तो:

" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul

और विपरीत दिशा के लिए:

" Change selected text from name_like_this to NameLikeThis.
vnoremap ,c :s/_\([a-z]\)/\u\1/g<CR>gUl

धन्यवाद! यह लगभग सही है, मेरे vim को छोड़कर, यह CamelCase नाम के पहले अक्षर को नहीं बदलता है। मुझे यकीन नहीं है कि क्यों।
नील जी।

बहुत अच्छा। मैंने पाया कि मुझे साँप के लिए ऊंट की दिशा में यह बदलाव करने की ज़रूरत थी:vnoremap tos :s/\C\(\U\&\S\)\([A-Z]\)/\1_\l\2/g<CR>
योना

1

lh-dev भी नामकरण शैलियों के बीच बदलने के लिए आदेश प्रदान करता है:

:NameConvert snake

कर्सर को स्नेक_केस के नीचे शब्द में बदल देगा।

:%ConvertNames/\<m_\k\+(/getter/gc

पैटर्न की प्रत्येक घटना को एक गेटर नाम में बदल देगा, यह मानते हुए कि उपयोगकर्ता परिवर्तन की पुष्टि करता है ( :h :s_flags)

समर्थित शैलियाँ दो प्रकार की हैं:


1

मैंने इस तरह एक कमांड बनाई:

command! Ctl
    \ exec "norm \"xygn" |
    \ let @y = substitute(@x, "\\([^A-Z]\\)\\([A-Z]\\)", "\\1_\\2", "g") |
    \ let @y = tolower(@y) |
    \ exec "norm cgn\<C-r>y" |
    \ let @@ = ":Ctl\n"

आपको पहले एक स्ट्रिंग की खोज करनी होगी जिसे आप बदलना चाहते हैं /nameToReplaceऔर फिर आप चलाते हैं :Ctl, और अगला खोज मैच बन जाएगा name_to_replace। आदेश खुद को @@रजिस्टर में रखता है ताकि आप दबाकर कार्रवाई दोहरा सकें @@

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