जवाबों:
टिम पोप के abolish.vimबीच में बदल सकते हैं camelCase, MixedCase, snake_case, और UPPER_CASE, साथ ही करने के लिए परिवर्तित (एक तरह से) dash-case।
में से किसी पर कर्सर fooBar, FooBar, foo_bar, या FOO_BARऔर उपयोग
crc में परिवर्तित करने के लिए fooBarcrm में परिवर्तित करने के लिए FooBarcr_या crsमें परिवर्तित करने के लिएfoo_barcru में परिवर्तित करने के लिए FOO_BARcr- में परिवर्तित करने के लिए foo-barहाँ वहाँ है , और एक बोनस के रूप में वहाँ एक है विपरीत दिशा के रूप में अच्छी तरह से जाने के लिए!
विकी से बोली कि अगर यह चला जाए तो:
" 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
vnoremap tos :s/\C\(\U\&\S\)\([A-Z]\)/\1_\l\2/g<CR>
lh-dev भी नामकरण शैलियों के बीच बदलने के लिए आदेश प्रदान करता है:
:NameConvert snake
कर्सर को स्नेक_केस के नीचे शब्द में बदल देगा।
:%ConvertNames/\<m_\k\+(/getter/gc
पैटर्न की प्रत्येक घटना को एक गेटर नाम में बदल देगा, यह मानते हुए कि उपयोगकर्ता परिवर्तन की पुष्टि करता है ( :h :s_flags)
समर्थित शैलियाँ दो प्रकार की हैं:
मैंने इस तरह एक कमांड बनाई:
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। आदेश खुद को @@रजिस्टर में रखता है ताकि आप दबाकर कार्रवाई दोहरा सकें @@।