1

我正在尝试在 jEdit 中创建一个宏。我试图从缓冲区中每一行的开头删除所有空白。这是我试图这样做的 jEdit 宏(即 Java)代码:

textArea.goToBufferStart(false);
//Set up SearchAndReplace defaults
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(false);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());

public int replace(String from, String to) {
  //must be reg-ex escaped prior to call
  SearchAndReplace.setSearchString(from);
  SearchAndReplace.setReplaceString(to);
  return SearchAndReplace.replaceAll(view);
}

boolean done = false;
while (!done) {
  int count = replaced("\\n ", "\\n");
  found = (count > 0);
}

jEdit 5.0 附带的文档表明该调用SearchAndReplace.replaceAll(view)返回发生替换的缓冲区的数量。但是当我执行它时,我得到一个错误,表明它没有返回一个 int,而是一个布尔值。

虽然如果它确实返回一个 int 会很好,但我希望能够知道在特定缓冲区(我正在执行宏的唯一一个缓冲区)中发生的替换的具体计数。

所以,我一定是在接近这个错误。关于如何实现预期效果的任何建议,从每一行的开头删除所有空格?顺便说一句,宏目前有意忽略第一行。我知道这是一个缺陷,稍后会更正。

谢谢你能给我的任何方向。

4

1 回答 1

0

如果要从每一行的开头去除空格,只需

  • search and replacectrl+打开f
  • ^[ \t]+在框中输入Search for
  • 查看regular expressions
  • 点击replace all
于 2013-01-12T00:05:56.590 回答