La réponse courte à toute question du formulaire "Y a-t-il un moyen de _____ dans emacs?" est toujours "OUI"
Brian Postow
Réponses:
4
Ce petit morceau de code de cette page , avec une fonction wrapper et un trait de soulignement remplaçant le tiret par un trait de soulignement, pourrait facilement être transformé en une commande pour ce faire. (Vérifiez qu'il traite les majuscules pour vous convenir):
(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)))
le paquet string-inflectionest plus complet maintenant: github.com/akicho8/string-inflection (note qu'il ya aussi string-inflection-camelize-lowerdes changements hello_worldà helloWorld).
Ehvince
2
À des fins d'affichage uniquement, vous pouvez utiliser ceci:
M-x glasses-mode
Si vous voulez un script qui convertit réellement le texte, j'imagine que vous devrez écrire un peu d'élisp. Cette question est mieux posée en cas de débordement de pile.
Réponses:
Ce petit morceau de code de cette page , avec une fonction wrapper et un trait de soulignement remplaçant le tiret par un trait de soulignement, pourrait facilement être transformé en une commande pour ce faire. (Vérifiez qu'il traite les majuscules pour vous convenir):
la source
Emacs a un mode lunettes qui affiche les noms des chameaux avec des soulignements entre les deux. (Voir aussi http://www.emacswiki.org/emacs/GlassesMode ).
Si vous souhaitez réellement modifier le texte du fichier
M-x query-replace-regexp
est probablement approprié.la source
Moritz Bunkus a écrit une fonction elisp pour basculer entre CamelCase et c_style
la source
string-inflection
est plus complet maintenant: github.com/akicho8/string-inflection (note qu'il ya aussistring-inflection-camelize-lower
des changementshello_world
àhelloWorld
).À des fins d'affichage uniquement, vous pouvez utiliser ceci:
Si vous voulez un script qui convertit réellement le texte, j'imagine que vous devrez écrire un peu d'élisp. Cette question est mieux posée en cas de débordement de pile.
la source
J'ai pu le faire rapidement sur un fichier entier avec juste une requête remplacer regexp .
Le modèle de recherche est
\([a-z]+\)\([A-Z]\)\([a-z]+\)
et le remplacement est\1_\,(downcase \2)\3
.Le modèle de remplacement utilise elisp directement dans le modèle. Cela nécessite Emacs 22 ou une version ultérieure.
Dans le style de documentation emacs:
la source