emacs - 如何使用 ielm 在 Emacs lisp 中打印字符串?

标签 emacs elisp read-eval-print-loop

我想在 ielm 中打印一个字符串。我不想打印打印的表示,我想要字符串本身。我想要这样的结果:

ELISP> (some-unknown-function "a\nb\n")
a
b
ELISP>

我看不出有什么办法可以做到这一点。明显的函数是 printprinc,但它们给了我可打印的表示:

ELISP> (print "* first\n* second\n* third\n")
"* first\n* second\n* third\n"

我玩过 pppp-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/

相关文章:

emacs - 定义一个调用另一个emacs命令的emacs命令(保留交互式内容)

emacs - 如何更改 emacs 中的空白颜色?

operators - 为什么 Perl 6 REPL 中没有保留新的运算符定义?

emacs - 如何在SLIME REPL中停止正在运行的操作?

emacs - 如何在 Emacs 中找到建议功能的 defadvice?

emacs - 将行号与linum-mode对齐?

vim - 文本编辑器和基于文本文件的超链接

clojure - 在 clojurescript 中编写 clojurescript REPL

emacs - etag 的默认正则表达式

emacs - 如何在 Emacs Lisp 中将函数的词法绑定(bind)传递给 'eval'?