Как преобразовать список в строку, чтобы я мог вызвать insert или message с ним? Мне нужно отобразить c-offsets-alist, но я получил Wrong type argument: char-or-string-p для вставки или Wrong type argument: stringp для сообщения.
Как преобразовать список в строку в Emacs Lisp
Ответ 1
Я не уверен, чего вы пытаетесь достичь, но format преобразует "материал" в строки. Например:
(format "%s" your-list)
вернет представление вашего списка. message использует формат внутри, поэтому
(message "%s" your-list)
напечатает его
Ответ 2
(format) будет вставлять скобки в строку, например:
ELISP> (format "%s" '("foo" "bar"))
"(foo bar)"
Таким образом, если вам нужен аналог Ruby/JavaScript-like join(), есть (mapconcat):
ELISP> (mapconcat 'identity '("foo" "bar") " ")
"foo bar"
Ответ 3
Или
(prin1-to-string your-string)
Наконец-то что-то особенное
(princ your-string)
Ответ 4
M-x pp-eval-expression RET c-offsets-alist RET