小编Rog*_*gon的帖子

Emacs:打印 UTF-8 缓冲区

在 Emacs 中,关于 UTF-8 的一切似乎都运行良好。问题是,我有时想打印出一封包含 Unicode 字符的电子邮件(我使用 mu4e 作为我的 MUA)。

\n\n

我通常会在 a 中包含类似以下内容的内容mu4e:view

\n\n
    From: A Person\n    To: Me\n    Subject: Notes on Chapter 9\n    Date: Tue 22 Sep 2015 13:46:44 CEST\n    Maildir: /mymaildir/INBOX\n    User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)\n\n      \xe2\x80\xa2 \xe2\x80\x9cfor open platforms\xe2\x80\x9d -> \xe2\x80\x9cfor \\textit{open platforms}, as defined in\n        [123].  Such platforms include frobbing devices and home-assistant\n        foobars.\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是,当我这样做时M-x ps-print-buffer,纸上的物理输出如下所示:

\n\n
    ...\n\n      ? ?for open platforms? -> ?for \\textit{open platforms}, as defined in\n …
Run Code Online (Sandbox Code Playgroud)

printing unicode emacs utf-8

5
推荐指数
1
解决办法
1221
查看次数

使用Racket进行语言扩展,通过宏定义辅助函数

我现在已经坚持了几个小时的问题.我正在尝试使用Racket的语言扩展功能来定义DSL.我想做类似下面的伪代码.最后,我想在DSL中输入生成函数和宏,并且大多数现在似乎都可以工作,问题是提供的定义应该与声明处于同一级别.这甚至可能吗?现在已经晚了,我肯定我错过了一些非常微不足道的东西.问题的最基本的例子是:

tinylang.rkt:

#lang racket

; here we redefine module begin.
(provide (all-defined-out)
         (except-out (all-from-out racket) #%module-begin)
         (rename-out [module-begin #%module-begin])
         )

(define-syntax (module-begin stx)
  (syntax-case stx ()
    [(_ stmts ...)
     #`(#%module-begin
       (define (hello) (print "Yes!") (newline))
       ; (provide (for-syntax hello))
       (print "Function defined.")
       stmts ...   )]))
Run Code Online (Sandbox Code Playgroud)

现在我尝试在其他地方使用这种新语言:

try.rkt:

#lang s-exp "tinylang.rkt"
(hello)
Run Code Online (Sandbox Code Playgroud)

但是在加载第二个模块时,我收到错误"hello:模块中的未绑定标识符:hello".

macros language-extension racket

4
推荐指数
1
解决办法
343
查看次数

标签 统计

emacs ×1

language-extension ×1

macros ×1

printing ×1

racket ×1

unicode ×1

utf-8 ×1