【发布时间】:2010-02-11 13:04:59
【问题描述】:
我有一个名为 go-to-url 的命令,我在我的 lisp 代码中调用它,它会打开一个网页,我只是将一个值字符串传递给它:
(go-to-url "www.yahoo.com")
不过,最好在 M-x 命令行中使用此功能。有没有办法做到这一点?我试过的都没有用
【问题讨论】:
我有一个名为 go-to-url 的命令,我在我的 lisp 代码中调用它,它会打开一个网页,我只是将一个值字符串传递给它:
(go-to-url "www.yahoo.com")
不过,最好在 M-x 命令行中使用此功能。有没有办法做到这一点?我试过的都没有用
【问题讨论】:
您将使用交互式表单:
(defun go-to-url (url)
(interactive "sURL: ")
(do-your-stuff url))
这样,您可以在 lisp 中和 M-x: go-to-url 中使用 go-to-url,系统会提示您输入参数。
另请参阅我对您其他问题的回复:Emacs: Is there a way to create a interactive script using Emacs?
【讨论】:
已经有一个函数“browse-url”,它会提示您浏览该网址,或者您可以编辑/创建一个。
对于接受数字参数的函数,您也可以使用 C-u 然后键入您想要传递给您执行的命令的值。
【讨论】:
在 Icicles 中,在任何 minibuffer 使用期间(无论是否完成),您都可以按到 insert a string that was saved in a variable or a register 的键。
默认情况下,使用的变量是 icicle-input-string,但如果您使用前缀 arg(即 C-u C-=),则会提示您输入要使用的变量。完成候选包括所有字符串值变量。
您可以使用命令icicle-save-string-to-variable 将字符串(例如复杂的正则表达式)保存到变量中。同样,默认情况下,变量是 icicle-input-string,但带有前缀 arg 会提示您输入变量。
您也可以随时通过点击 M-: 并输入 Lisp sexp 来在 minibuffer 中插入一个字符串以进行评估。结果被漂亮地打印并插入到 minibuffer 中。 (在 Icicles 中,M-: 会打开一个递归小缓冲区,它会打印得很漂亮。)
【讨论】: