回答:
このラッパー関数とアンダースコアがハイフンをアンダースコアに置き換えたこのページのこの小さなコードは、それを実行するコマンドに簡単に変換できます。(それがあなたに合うように先頭のキャップを扱うことを確認してください):
文字列をキャメルケース解除するためのサンプルEmacsLispコード(http://www.friendsnippets.com/snippet/101/から):
(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を切り替えるためのelisp関数を作成しました
string-inflection
はより完全になりました:github.com/akicho8/string-inflection(string-inflection-camelize-lower
に変更hello_world
することもあることに注意してくださいhelloWorld
)。
クエリを正規表現に置き換えるだけで、ファイル全体でこれをすばやく実行できました。
検索パターンは\([a-z]+\)\([A-Z]\)\([a-z]+\)
で、置換は\1_\,(downcase \2)\3
です。
置換パターンは、パターン内でelispを使用します。これにはEmacs 22以降が必要です。
emacsドキュメントスタイル:
M-C-% \([a-z]+\)\([A-Z]\)\([a-z]+\) RET \1_\,(downcase \2)\3