首页 > 解决方案 > search-forward 和其他搜索函数的返回类型是什么?

问题描述

我正在尝试编写一个交互式函数,该函数通过目录搜索单词或名称并返回包含有效搜索结果的文件。我试图以一种非常简单的方式编写它,但我检查有效搜索结果的方式是:

(point-min)
(if(search-forward thing-to-find)
 (do-thing))

每当我对此进行测试时,它只会添加无论如何都没有有效结果的目录。我必须自己编写一个搜索单词的算法吗?我只是需要一些指导。

标签: searchemacs

解决方案


我试过阅读文档,它没有告诉我任何关于返回类型的信息。

不对。 C-hf search-forward说:

将 point 设置为找到的事件的结尾,并返回 point

Point 是缓冲区中的字符位置——一个整数。
C-hf pointC-hig (elisp)Point

不幸的是,文档字符串中缺少search-forward对 NOERROR 参数的解释,您可以在类似的文档字符串中找到详细信息re-search-forward

可选的第三个参数 NOERROR 指示当搜索失败时如何处理错误。如果它为 nil 或省略,则发出错误;如果是 t,则简单地返回 nil 并且什么也不做;如果既不是 nil 也不是 t,则移动到搜索的极限并返回 nil。

因此,这些函数在成功时返回一个整数,或者在失败时返回nil(如果 NOERROR 非零)或发出错误信号。

M-x report-emacs-bug使用 报告文档问题search-forward


推荐阅读