Die kurze Antwort auf jede Frage der Form "Gibt es eine Möglichkeit, _____ in Emacs?" ist immer "JA"
Brian Postow
Antworten:
4
Dieses kleine Stück Code von dieser Seite mit einer Wrapper-Funktion und einem Unterstrich, der den Bindestrich durch einen Unterstrich ersetzt, könnte leicht in einen Befehl umgewandelt werden, um dies zu tun. (Überprüfen Sie, ob die führenden Kappen zu Ihnen passen):
(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)))
das Paket string-inflectionist vollständiger jetzt: github.com/akicho8/string-inflection (Anmerkung , dass es auch string-inflection-camelize-lowerÄnderungen hello_worldan helloWorld).
Ehvince
2
Sie können dies nur zu Anzeigezwecken verwenden:
M-x glasses-mode
Wenn Sie ein Skript möchten, das den Text tatsächlich konvertiert, müssen Sie wahrscheinlich etwas Elisp schreiben. Diese Frage wird beim Stapelüberlauf besser gestellt.
Antworten:
Dieses kleine Stück Code von dieser Seite mit einer Wrapper-Funktion und einem Unterstrich, der den Bindestrich durch einen Unterstrich ersetzt, könnte leicht in einen Befehl umgewandelt werden, um dies zu tun. (Überprüfen Sie, ob die führenden Kappen zu Ihnen passen):
quelle
Emacs hat brillen Modus die Displays Namen mit Unterstrichen Camelcase dazwischen. (Siehe auch http://www.emacswiki.org/emacs/GlassesMode ).
Wenn Sie den Text der Datei tatsächlich ändern möchten,
M-x query-replace-regexp
ist dies wahrscheinlich geeignet.quelle
Moritz Bunkus hat eine Elisp-Funktion geschrieben, um zwischen CamelCase und c_style umzuschalten
quelle
string-inflection
ist vollständiger jetzt: github.com/akicho8/string-inflection (Anmerkung , dass es auchstring-inflection-camelize-lower
Änderungenhello_world
anhelloWorld
).Sie können dies nur zu Anzeigezwecken verwenden:
Wenn Sie ein Skript möchten, das den Text tatsächlich konvertiert, müssen Sie wahrscheinlich etwas Elisp schreiben. Diese Frage wird beim Stapelüberlauf besser gestellt.
quelle
Ich war in der Lage, dies über eine ganze Datei schnell mit nur einer Abfrage zu tun, um regulären Ausdruck zu ersetzen .
Das Suchmuster ist
\([a-z]+\)\([A-Z]\)\([a-z]+\)
und der Ersatz ist\1_\,(downcase \2)\3
.Das Ersatzmuster verwendet elisp direkt im Muster. Dies erfordert Emacs 22 oder höher.
Im Emacs-Dokumentationsstil:
quelle