La
format-time-string
función toma una cadena y reemplaza un conjunto de construcciones especiales en esa cadena (caracteres precedidos por %
) con algún texto específico.
Me gustaría implementar una funcionalidad como esa en una función propia:
- Tengo una alista entre caracteres y símbolos como:
'((?n . name) (?r . reputation))
. - La función debe tomar una cadena como
"My name is %n, and my rep is %r"
. - Debe reemplazar
%n
y%r
con el valor de las variablesname
yreputation
, y devolver el resultado. - Debe manejarse
%%
igual queformat-time-string
(reemplazarlo con%
).
¿Cuál es la forma más fácil de implementar esta función?
¿Hay una biblioteca o función que facilite esto? Manejar %%
correctamente es importante.
Dado que elisp tiene facilidades bastante primitivas para manejar cadenas, es mejor poner su cadena de formato en un búfer e iterar sobre eso:
Una sutileza menor: esto no se rompe cuando hay un solitario
%
al final de la cadena porquechar-after
regresanil
al final del búfer.fuente
Aquí hay un código que uso para una cadena de formato-tiempo para un calendario falso:
fuente