使用EmacsClient创建包含文本的新缓冲区

Use*_*er1 7 emacs elisp

我有一个程序可以将文本发送到任何其他程序进行进一步分析(例如sed,grep等).我希望它将数据发送到Emacs并在那里进行分析.我该怎么办?EmacsClient默认采用文件名,这是一个数据字符串而不是文件,我真的不想创建和删除文件只是为了向Emacs发送数据.

EmacsClient有一个"eval"命令行选项,让您执行lisp代码而不是打开文件.是否有一个简单的lisp函数,它将使用给定的文本打开一个新的缓冲区?

编辑:我正在寻找类似的东西:

emacsclientw.exe -eval (open-new-buffer 'hello world')

并且会自动显示一个新缓冲区,其中包含"hello world"一词.我不确定如何设置缓冲区的名称.希望自动编号的东西.

Tre*_*son 6

这符合您的要求:

emacsclient -e '(open-buffer-with "some\nstuff\nhere")'

(defun open-buffer-with (txt)
  "create a new buffer, insert txt"
  (pop-to-buffer (get-buffer-create (generate-new-buffer-name "something")))
  (insert txt))
Run Code Online (Sandbox Code Playgroud)

显然,您可以自定义open-buffer-with以执行您想要的操作.

您可能需要查看类似的问题: 如何获得基本的App < - > Emacs集成?.