我正在尝试学习如何使用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的机会?
答案 0 :(得分:3)
以下是代码:
(defun sqlite3 (file)
(interactive "fDB file name:\n")
(term-send-string
(ansi-term "bash" "sqlite3")
(format "sqlite3 %s\n" file)))