查找替换-参数超出范围?

查找替换-参数超出范围?

使用:2012-03-25 在 allspice 上发布的 GNU Emacs 23.3.1 (x86_64-pc-linux-gnu,GTK+ 版本 2.24.10),由 Debian 修改

我正在尝试做一些简单的查找和替换。没什么大不了的。我甚至没有使用正则表达式。这是简单的字符串替换。META-%,String1,String2。应该很简单。最近,我遇到了一个我不明白的非常奇怪的错误。来自消息

Mark set
replace-match-maybe-edit: Args out of range: 597, 607

我打开了一个较长的 .sql 文件,我想更改一些日期字符串。我输入了两个字符串,然后点击了感叹号以告诉 emacs 我想更改所有可用的字符串,结果出现了这个奇怪的 Args 超出范围错误。最近我遇到过几次这种情况。几天前我确实尝试过 ECB,但我决定不使用它,但我很确定我已经从 init.el 中删除了所有 ECB 内容。这里面有一些杂乱无章的东西,但并不荒谬,这个错误只是在最近几天才开始出现的。

我用 Google 搜索了一下,但似乎什么也没找到。您觉得呢?

在我最近的例子中,我正在替换日期字符串:

Query replace (default 2012-04-01 -> 2001-01-01): 

在过去几天的其他情况下,我进行了更简单的查找和替换,并获得了类似的结果。

答案1

您的 init 文件中的某些内容(或由其加载的内容)干扰了正常replace.el代码(例如建议它),或者该代码有错误。您永远不应该看到错误Args out of range

replace-match-maybe-edit在库中定义replace.el。在 init 文件中,执行(load-library "replace.el")然后(debug-on-entry 'replace-match-maybe-edit),然后逐步调试器以查看哪里出了问题。

或者,如果您认为初始化文件中的某些内容导致了问题,请以递归方式对初始化文件进行二分查找,直到找到罪魁祸首代码。

相关内容