Por "cuerda decorada" quiero decir algo como
#("foo" 0 4 (fontified t face font-lock-function-name-face))
... a diferencia de la "cadena simple"
"foo"
(Si el código Elisp lee una cadena directamente desde un búfer, puede decorarse así).
¿Cuál es la forma más sencilla de convertir una cadena decorada en una simple (quitando todas las decoraciones)?
Respuestas:
[Su cadena de propiedad se ve mal, tal vez la copió mal.
foo
tiene solo 3 caracteres, por lo que es imposible que se fontifique en los caracteres 0 a 4 (es decir, los caracteres 0, 1, 2 y 3, es decir, 4 caracteres). Yo uso 3 en lugar de 4 en el ejemplo aquí.]Consulte el manual de Elisp, nodo Cambio de propiedades . Allí verá esto, en función
remove-text-properties
(que también podría usar para hacer el trabajo):Como @Dan mencionó, también puede usar
substring-no-properties
, pero tenga en cuenta que devuelve una nueva cadena. No modifica el objeto de cadena real que le pasa. Ambosremove-text-properties
yset-text-properties
cambian la secuencia que les pasas.Por ejemplo:
Ambos
foo
ybar
ahora son justos"foo"
, sin propiedades.Pero:
Ahora
foo
no tiene propiedades perobar
aún las tiene.fuente