Как преобразовать список в строку, чтобы я мог вызвать 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