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
%ny%rcon el valor de las variablesnameyreputation, 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-afterregresanilal final del búfer.fuente
Aquí hay un código que uso para una cadena de formato-tiempo para un calendario falso:
fuente