如何使用elisp创建一个特定于sqlite的shell?

时间:2013-12-03 13:18:25

标签: sqlite shell emacs elisp

我正在尝试学习如何使用elisp来自定义我的开发环境。我已经包含以下函数来创建命令M-x ipython,它打开一个IPython shell:

(defun ipython ()
  (interactive)
  (ansi-term "/usr/bin/ipython" "ipython"))

我在项目中使用sqlite,我想在emacs中更容易打开sqlite命令shell。这与上面的示例类似,但是我需要指定数据库文件。如果我按如下方式修改上述内容:

(defun sqlite3 (filename)
  (interactive "FDB file name: \n")
  (ansi-term "/usr/bin/sqlite3" "sqlite3")) ;; Oops, what do I do with the file name?

我卡住了,因为ansi-term函数只接受两个参数,一个是要运行的程序,另一个是重命名shell的可选名称。

是否有一种简单的方法来创建一个函数,允许我轻松打开一个sqlite shell,并提供将文件参数传递给sqlite的机会?

1 个答案:

答案 0 :(得分:3)

以下是代码:

(defun sqlite3 (file)
  (interactive "fDB file name:\n")
  (term-send-string
   (ansi-term "bash" "sqlite3")
   (format "sqlite3 %s\n" file)))