La respuesta corta a cualquier pregunta de la forma "¿Hay alguna forma de _____ en emacs?" Siempre es "SÍ"
Brian Postow
Respuestas:
4
Este pequeño fragmento de código de esta página , con una función de contenedor y un guión bajo que reemplaza el guión por un guión bajo, podría convertirse fácilmente en un comando para hacerlo. (Compruebe que trata las tapas principales a su medida):
(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)))
el paquete string-inflectiones más completa ahora: github.com/akicho8/string-inflection (nota que hay también string-inflection-camelize-loweral cambio hello_worlda helloWorld).
Ehvince
2
Solo para fines de visualización, puede usar esto:
M-x glasses-mode
Si quieres un script que realmente convierta el texto, imagino que tendrías que escribir algo de elisp. Esa pregunta se hace mejor en el desbordamiento de pila.
Respuestas:
Este pequeño fragmento de código de esta página , con una función de contenedor y un guión bajo que reemplaza el guión por un guión bajo, podría convertirse fácilmente en un comando para hacerlo. (Compruebe que trata las tapas principales a su medida):
fuente
Emacs tiene modo de gafas que muestra nombres de camello con guiones bajos en el medio. (Ver también http://www.emacswiki.org/emacs/GlassesMode ).
Si realmente desea cambiar el texto del archivo,
M-x query-replace-regexp
probablemente sea adecuado.fuente
Moritz Bunkus escribió una función elisp para alternar entre CamelCase y c_style
fuente
string-inflection
es más completa ahora: github.com/akicho8/string-inflection (nota que hay tambiénstring-inflection-camelize-lower
al cambiohello_world
ahelloWorld
).Solo para fines de visualización, puede usar esto:
Si quieres un script que realmente convierta el texto, imagino que tendrías que escribir algo de elisp. Esa pregunta se hace mejor en el desbordamiento de pila.
fuente
Pude hacer esto en todo un archivo rápidamente con solo una consulta reemplazar regexp .
El patrón de búsqueda es
\([a-z]+\)\([A-Z]\)\([a-z]+\)
y el reemplazo es\1_\,(downcase \2)\3
.El patrón de reemplazo usa elisp directamente en el patrón. Esto requiere Emacs 22 o posterior.
En el estilo de documentación de emacs:
fuente