Alg*_*bra 1 syntax emacs elisp character
函数 insert 的示例演示为:
(with-temp-buffer
(insert "hello" ?\s "world" ?\n)
(buffer-string))
Run Code Online (Sandbox Code Playgroud)
?这里是什么意思?
?\s和?\n是读取字符的语法。第一个是空格字符的读取语法;第二个字符NEWLINE(也称为 Control J,有时显示为^J,其中 ^J 是换行符。
在 Emacs Lisp 中,字符是正整数。它们可以写成 ASCII 代码(值)的数字,Lisp 阅读器可以在这样写时读取它们:32(for \s) 和10(for \n)。但是 Elisp 也提供了由 引入的字符读取语法?,并且这两个字符有自己的?语法。其他更普通的字符可以只加前缀?:?s读作字符s,?@读作字符@。
与仅使用整数相比,?读取语法对人类更具可读性:115(for ?s) 和64for ?@。但是你总是可以只使用整数——字符就是整数。
你的例子:(insert "hello" ?\s "world" ?\n)。函数insert接受字符串和字符作为其参数。在这种情况下,您传递 string "hello"、 character ?\s(空格字符)、 string"world"和 character ?\n(换行符、Control J)。
请参阅 Elisp 手册,节点基本字符语法。