サクラエディタの検索が変わる!正規表現も自動生成するマクロ

サクラエディタ

サクラエディタの検索が変わる!正規表現も自動生成するマクロ

サクラエディタを使い続けて20年

サクラエディタを使って、いったい何年たっただろうか?おそらく20年は経過しています。

文章を書くときも、ファイルを編集するときも、サクラエディタは長年使い続けてきた身近なエディタです。

これまであまり活用できていなかったマクロ

一方で、サクラエディタに搭載されているマクロ機能は、それほど活用できていなかったなあと回想します。

便利な機能があることは知っていても、自分でマクロを作るにはプログラミングの知識が必要です。ちょっとした作業を自動化したいと思っても、作り始めるまでのハードルがありました。

生成AIによって広がったマクロの可能性

でも、ここ数か月でマクロの活用範囲が劇的に広がりました。それは、生成AIが賢くなったからです。

マクロも生成AIに相談すれば、目的に合わせたコードを作ってくれます。もちろん、作成したコードをそのまま使えるとは限らず、動作を確認したり、使いやすいように修正したりする工夫は必要です。

生成AIで作ったマクロを公開します

生成AIを使えばマクロの作成は以前より身近になりましたが、実際に使える形に仕上げるまでには、試行錯誤やさまざまな工夫があります。そのため、完成したマクロには、それなりの価値があるのではないかと思っています。

ということで、これからはマクロを生成AIで作成し、実際に使いながら改善した成果物を公開することにしました。

今回紹介するのは、カーソル位置や選択範囲を利用して、複数のキーワードを検索できる highlightSeikiSearch.js です。

今回紹介するマクロ

サクラエディタで文章を編集していると、現在のカーソル位置にある単語や、括弧で囲んだ複数のキーワードをそのまま検索したくなることがあります。

今回紹介する highlightSeikiSearch.js は、カーソル位置の単語、括弧内の検索条件、または選択範囲を使って検索できるサクラエディタ用マクロです。複数キーワードのAND検索やOR検索にも対応しています。

マクロのダウンロード

以下のリンクからマクロファイルをダウンロードできます。

highlightSeikiSearch.jsをダウンロード

ダウンロードしたファイルを、サクラエディタのマクロフォルダーなど、管理しやすい場所へ保存してください。

サクラエディタを快適に使うキーボード

サクラエディタのマクロをキー割り当てに登録すると、検索や編集の操作をキーボードだけで実行できるようになります。文章を長時間入力したり、ショートカットキーを多用したりする方は、キーボードにもこだわると、より快適に作業できます。

テキスト編集やプログラミング用のキーボードとして人気があるのが、PFUのHHKB Professional Classic Type-Sです。コンパクトな日本語配列で、静音性にも配慮されています。サクラエディタを中心に文章作成やコード編集を行う方は、選択肢の一つとして検討してみてはいかがでしょうか。

この記事にはアフィリエイト広告を含みます。商品の詳細や最新の価格は、リンク先でご確認ください。

基本的な使い方

  1. サクラエディタで文章を開きます。
  2. 検索したい単語の上、または検索条件を囲んだ括弧の中にカーソルを置きます。
  3. マクロ一覧から highlightSeikiSearch.js を実行します。
  4. 検索結果が見つかると、現在位置から前方向へ検索されます。

マクロを頻繁に使う場合は、サクラエディタのキー割り当てに登録しておくと便利です。

単語を検索する

括弧で囲まずに単語の上へカーソルを置いて実行すると、その単語を文字どおりに検索します。

サクラエディタで「検索」という単語の上にカーソルを置いて実行

通常の単語検索では、検索条件を正規表現として解釈せず、記号も文字として扱います。

複数のキーワードをAND検索する

角括弧などの対応する括弧の中で、キーワードを空白で区切るとAND検索になります。

[東京 大阪]

この例では、「東京」と「大阪」の両方を含む箇所を検索します。半角スペース、タブ、全角スペースに対応しています。

複数の候補をOR検索する

キーワードを半角の縦棒、または全角の縦棒で区切るとOR検索になります。

[東京|大阪]
[東京|大阪]

この場合は、「東京」または「大阪」を含む箇所が検索対象になります。AND検索と組み合わせて、複数の検索候補を指定することもできます。

括弧で検索条件を指定する

カーソルが括弧の内側にある場合、括弧内全体が検索条件として使われます。次の括弧に対応しています。

  • []
  • ""
  • 「」
  • ()
  • ( )
  • 【 】

例えば、次のように書いてカーソルを括弧内へ置きます。

[重要]
「東京 大阪」
(東京|大阪)
【確認】

ダブルクォートでキーワードを明示すると、空白を含む文字列を1つのキーワードとして扱えます。

["東京 大阪"]

この例では、「東京 大阪」という文字列を1つのキーワードとして検索します。

選択範囲を検索する

検索したい文字列を範囲選択してからマクロを実行すると、括弧で囲んでいなくても、選択範囲が検索条件になります。

長い検索条件や、別の場所からコピーした文字列を検索するときに便利です。

検索に使った正規表現を確認する

括弧内の検索条件から検索用の正規表現を作成した場合、その正規表現がクリップボードへコピーされます。検索条件を確認したり、サクラエディタのGREP検索などへ再利用したりできます。

検索条件に含まれる正規表現記号は、意図せず正規表現として解釈されないようにエスケープされます。

ヘルプを表示する

カーソル位置の単語、または選択範囲に help: が含まれている状態でマクロを実行すると、検索は行わず、使い方のヘルプを表示します。

表示されたヘルプはクリップボードにもコピーされるため、メモ帳などへ貼り付けて確認できます。

マクロの仕組み

このマクロは、次の順番で検索条件を決定します。

  1. help: があるか確認し、あればヘルプを表示します。
  2. カーソル位置を含む括弧を探し、括弧内を検索条件にします。
  3. 括弧がなければ、選択範囲を検索条件にします。
  4. 選択範囲もなければ、カーソル位置の単語を検索条件にします。
  5. 括弧内や選択範囲の条件は正規表現に変換して検索します。
  6. 通常の単語は正規表現記号をエスケープして検索します。

また、サクラエディタの桁数に合わせて、半角文字を1、全角文字を2としてカーソル位置を計算しています。日本語を含む行でも、括弧内の範囲を正しく扱えるようにしています。

使用時の注意点

  • このマクロはサクラエディタのJavaScriptマクロとして実行してください。
  • クリップボードへの正規表現コピーには、Windows PowerShellを使用します。
  • 検索は現在位置から文書の前方向へ行われます。
  • 括弧内では、空白がAND、縦棒がORとして解釈されます。
  • 括弧内の引用符はキーワードを囲む記号として扱われ、検索時には取り除かれます。

まとめ

highlightSeikiSearch.js は、カーソル位置の単語検索から、複数キーワードのAND・OR検索までを1つのマクロで実行できる便利なツールです。

検索条件を本文中に括弧で書いておけば、その場所へカーソルを置くだけで検索できるため、複雑な検索を繰り返すときの手間を減らせます。サクラエディタを使っている方は、ぜひダウンロードして試してみてください。

正規表現を学ぶための参考書

このマクロでは、空白によるAND検索や、縦棒によるOR検索など、正規表現を利用しています。
正規表現をさらに詳しく学びたい方は、入門書を手元に置いておくと、検索条件を自分で工夫できるようになります。




コメント