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 replaceで開くctrlf
  • ボックスに次のように入力し^[ \t]+ますSearch for
  • 小切手regular expressions
  • クリックreplace all
于 2013-01-12T00:05:56.590 に答える