如何在没有引号的emacs elisp中打印字符串?

时间:2014-01-06 14:48:06

标签: emacs elisp

* scratch * 缓冲区中,输入以下代码并使用Ctrl-J运行。

(defun tt ()
  (setq t1 1.735)
  (setq t2 3.278)
  (format "Test 1 is %f.\nTest 2 is %f.\n" t1 t2))
tt
(tt)
"Test 1 is 1.735000.
Test 2 is 3.278000.
"

如何在没有引号的情况下打印出来?

Test 1 is 1.735000.
Test 2 is 3.278000.

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

使用insert

(insert (tt))

这也将在最后添加nil - 插入

的结果

答案 1 :(得分:1)

“打印”如何/在哪里? (如果你想要更好的答案,那么在你的问题中要更准确。)

正如@ abo-abo所提到的,您可以将文本插入缓冲区(任何可以显示的缓冲区)。您还可以使用函数message echo区域中显示它。另请参阅pp函数系列(库pp.el,也许pp+.el)。

就双引号字符而言,它们不属于<{1}}性别或您的函数(format...)返回的字符串的一部分。 tt的某些用法会导致format字符作为字符串结果的一部分。例如,请注意"具有此效果,而%S则没有。

答案 2 :(得分:1)

而不是 scratch 缓冲区,尝试使用 eshell 缓冲区(例如,emacs中的shell,使用&#34; M-x eshell&#34;命令)调用它。 进入 eshell 缓冲区后,您可以&#34; defun&#34;功能。 您将获得没有引号的结果。

(我更喜欢使用 eshell ,因为您可以使用向上和向下键调用历史记录)

问候。