Emacs 如何将输出从一个外部进程导入另一个外部进程?

Emacs 如何将输出从一个外部进程导入另一个外部进程?,emacs,elisp,Emacs,Elisp,我编写了一个函数,它获取所选区域的内容,然后通过两个外部进程运行它。实际上,我想要复制的行为是M-| smartypants-2 | ascii2uni-a D-q 以下函数可以工作,但需要两次调用调用进程区域,并将第一个进程的输出临时存储在缓冲区中。有更好的方法吗 (定义将ascii转换为unicode(&e可选) 将ascii标点符号(引号、破折号和省略号)转换为其unicode等效符号 (交互式“r”) (let((输出缓冲区(生成新缓冲区“*ASCII到Unicode输出*”)) (调用

我编写了一个函数,它获取所选区域的内容,然后通过两个外部进程运行它。实际上,我想要复制的行为是
M-| smartypants-2 | ascii2uni-a D-q

以下函数可以工作,但需要两次调用
调用进程区域
,并将第一个进程的输出临时存储在缓冲区中。有更好的方法吗

(定义将ascii转换为unicode(&e可选)
将ascii标点符号(引号、破折号和省略号)转换为其unicode等效符号
(交互式“r”)
(let((输出缓冲区(生成新缓冲区“*ASCII到Unicode输出*”))
(调用处理区域b e“smartypants”nil输出缓冲区nil“-2”)
(设置缓冲区输出缓冲区)
(调用处理区域(最小点)(最大点)“ascii2uni”t输出缓冲区为零“-a”“D”“-q”)
(切换到缓冲区其他窗口输出缓冲区)))

只要在shell中使用管道命令,以下操作就可以完成:

(定义将ascii转换为unicode(beg end)
(交互式“r”)
(shell命令
(格式为“smartypants-2%s | ascii2uni-ADQ”
(shell引号参数(缓冲区子字符串beg end()(())))
切换到
*Shell命令输出*
查看输出