Подтвердить что ты не робот

Как преобразовать список в строку в Emacs Lisp

Как преобразовать список в строку, чтобы я мог вызвать insert или message с ним? Мне нужно отобразить c-offsets-alist, но я получил Wrong type argument: char-or-string-p для вставки или Wrong type argument: stringp для сообщения.

4b9b3361

Ответ 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