我想在 ielm 中打印一个字符串。我不想打印打印的表示,我想要字符串本身。我想要这样的结果:
ELISP> (some-unknown-function "a\nb\n")
a
b
ELISP>
我看不出有什么办法可以做到这一点。明显的函数是 print
和 princ
,但它们给了我可打印的表示:
ELISP> (print "* first\n* second\n* third\n")
"* first\n* second\n* third\n"
我玩过 pp
和 pp-escape-newlines
,但它们仍然转义其他字符:
ELISP> (setq pp-escape-newlines nil)
nil
ELISP> (pp "a\n")
"\"a
\""
这可能吗?对于检查大字符串,message
不会剪切它。
最佳答案
直接插入缓冲区怎么样?
(defun p (x) (move-end-of-line 0) (insert (format "\n%s" x)))
这让你:
ELISP> (p "a\nb\n")
a
b
nil
ELISP>
编辑:使用format
能够打印字符串以外的内容。
关于emacs - 如何使用 ielm 在 Emacs lisp 中打印字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17118305/