从Trey Jackson的起始链接,似乎有一个教程,介绍如何为elisp 构建 一个程序化界面到一个劣质过程sqlite,例如sqlite-query<f>
.它基于屏幕抓取comint缓冲区,仅用于此目的(例如,不重用sql.el).以下是从该引用复制的不完整示例.
;; this is emacs lisp code
(defun sqlite-query ( sql-command )
(set-buffer sqlite-output-buffer) ;1
(erase-buffer) ;2
(comint-redirect-send-command-to-process
sql-command
sqlite-output-buffer
(get-buffer-process sqlite-process-buffer) nil) ;3
(accept-process-output
(get-buffer-process sqlite-process-buffer)
1) ;need to wait to obtain results
(let* ((begin (goto-char (point-min))) ;4
(end (goto-char (point-max)))
(num-lines (count-lines begin end))
(counter 0)
(results-rows ()))
(goto-char (point-min))
(while ( < counter num-lines)
(setq results-rows (cons (chomp (thing-at-point 'line)) results-rows))
(forward-line)
(setq counter (+ 1 counter)))
(car `(,results-rows))))
Run Code Online (Sandbox Code Playgroud)
不幸的是,看起来没有任何现成的东西,但也许它是一种很好的方法,可能比尝试使用另一种中间语言更好.
(除此之外,我发现连接sqlite和emacs的Widget GUI界面的例子很有趣.)