我正在尝试从一个小的Emacs Lisp实用程序中运行rgrep命令,但是出现了奇怪的错误。该命令的描述如下:
rgrep是一个交互式编译的Lisp函数。
(rgrep REGEXP&optional FILES DIR CONFIRM)
在以DIR为根目录的目录树中递归地grep文件名匹配shell模式FILES中的REGEXP。搜索限制于匹配的文件名。FILES可以使用在`
grep-files-aliases
`中定义的缩写,例如,输入代码“ch”等效于“*。[ch] ”。使用C-u前缀,您可以在执行之前编辑构造的Shell命令行。 使用两个C-u前缀,直接编辑并运行“grep-find-command”。
在缓冲区中收集输出。 当find异步运行时,您可以使用C-x `(M-x next-error)或grep输出缓冲区中的RET转到grep找到匹配项的行。
此命令与M-x lgrep和M-x grep-find共享参数历史记录。
我尝试执行:
(rgrep "something" "all" "~/projects/")
我得到了
*** Eval error *** Wrong type argument: stringp, nil
很明显,所有的参数都是字符串,所以我不明白这个空值是从哪里来的。
我正在Debian Testing系统上运行Emacs 23.3。
提前感谢您的帮助!
emacs -q
)。另外,在运行之前添加(setq debug-on-error t)
以获取回溯信息,这将提供更多信息。 - Trey Jackson