我正在尝试在 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,而是返回 boolean。
虽然如果它确实返回一个 int 那就太好了,但我希望能够知道特定缓冲区(我正在执行宏的唯一缓冲区)内发生的替换的具体计数。
所以,我的做法一定是错误的。关于如何实现我的预期效果,删除每行开头的所有空格,有什么建议吗?顺便说一句,宏目前有意忽略第一行。我知道这是一个缺陷,稍后会纠正它。
感谢您给我的任何指导。
最佳答案
如果您想从每一行的开头去除空格,只需
- 使用 ctrl+f 打开
搜索并替换
- 在
搜索
框中输入^[\t]+
: - 检查
正则表达式
- 点击
全部替换
关于java - 创建 jEdit 宏,找出有多少实例 SearchAndReplace 写入缓冲区的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244186/