java - 创建 jEdit 宏,找出有多少实例 SearchAndReplace 写入缓冲区的正确方法是什么

标签 java macros jedit

我正在尝试在 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/

相关文章:

java - 将制表符分隔的文件加载到 jdbc 中

macros - 定义多个顶级形式的 Racket 宏?

c++ - #define inside an enum 或如何扩展枚举

c++ - 在#define 宏中转义# 符号?

java - 如何创建包装jedit源代码的netbeans 7.3项目?

java - 用于搜索/查找的目录路径中正则表达式中的通配符?

java - GWT 客户端中的静态类、方法和字段

java - 将消息从服​​务器发送到 Android 应用程序

java - XSSF(Apache POI) - 从数据透视表中的单列值添加多列标签

macos - 如何修复 JEdit 5.1.0 以免提示 Java SE 6?