जवाबों:
इस पेज से कोड का एक छोटा सा , एक आवरण समारोह और एक अंडरस्कोर के साथ एक अंडरस्कोर की जगह, आसानी से ऐसा करने के लिए एक कमांड में बदल दिया जा सकता है। (जाँच करें कि यह आपके लिए उपयुक्त कैप का इलाज करता है):
नमूना EmacsLisp कोड un-CamelCase एक स्ट्रिंग ( http://www.friendsnippets.com/snippet/1014 से ):
(defun un-camelcase-string (s &optional sep start)
"Convert CamelCase string S to lower case with word separator SEP.
Default for SEP is a hyphen \"-\".
If third argument START is non-nil, convert words after that
index in STRING."
(let ((case-fold-search nil))
(while (string-match "[A-Z]" s (or start 1))
(setq s (replace-match (concat (or sep "-")
(downcase (match-string 0 s)))
t nil s)))
(downcase s)))
Emacs में ग्लास-मोड है जो बीच में अंडरस्कोर के साथ कैमलकेस नामों को प्रदर्शित करता है। ( Http://www.emacswiki.org/emacs/GlassesMode पर भी देखें )।
यदि आप वास्तव में फ़ाइल M-x query-replace-regexp
का पाठ बदलना चाहते हैं तो शायद उपयुक्त है।
Moritz Bunkus ने CamelCase और c_style के बीच टॉगल करने के लिए एक शानदार कार्य लिखा
string-inflection
अब और अधिक पूर्ण हो गया है: github.com/akicho8/string-inflection (ध्यान दें कि वहाँ भी string-inflection-camelize-lower
बदलना hello_world
है helloWorld
)।
केवल प्रदर्शन उद्देश्यों के लिए, आप इसका उपयोग कर सकते हैं:
M-x glasses-mode
यदि आप एक स्क्रिप्ट चाहते हैं जो वास्तव में पाठ को रूपांतरित करता है, तो मुझे लगता है कि आपको कुछ सटीक लिखना होगा। स्टैक ओवरफ्लो पर यह सवाल बेहतर तरीके से पूछा गया है।
मैं इसे एक पूरी फाइल के साथ जल्दी से करने में सक्षम था, सिर्फ एक क्वेरी रिपेज xp के साथ ।
खोज पैटर्न है \([a-z]+\)\([A-Z]\)\([a-z]+\)
और प्रतिस्थापन है \1_\,(downcase \2)\3
।
प्रतिस्थापन पैटर्न पैटर्न में सही का उपयोग करता है। इसके लिए 22 या बाद के Emacs की आवश्यकता होती है।
Emacs प्रलेखन शैली में:
M-C-% \([a-z]+\)\([A-Z]\)\([a-z]+\) RET \1_\,(downcase \2)\3