サクラエディタの検索が変わる!正規表現も自動生成するマクロ
サクラエディタを使い続けて20年
サクラエディタを使って、いったい何年たっただろうか?おそらく20年は経過しています。
文章を書くときも、ファイルを編集するときも、サクラエディタは長年使い続けてきた身近なエディタです。
これまであまり活用できていなかったマクロ
一方で、サクラエディタに搭載されているマクロ機能は、それほど活用できていなかったなあと回想します。
便利な機能があることは知っていても、自分でマクロを作るにはプログラミングの知識が必要です。ちょっとした作業を自動化したいと思っても、作り始めるまでのハードルがありました。
生成AIによって広がったマクロの可能性
でも、ここ数か月でマクロの活用範囲が劇的に広がりました。それは、生成AIが賢くなったからです。
マクロも生成AIに相談すれば、目的に合わせたコードを作ってくれます。もちろん、作成したコードをそのまま使えるとは限らず、動作を確認したり、使いやすいように修正したりする工夫は必要です。
生成AIで作ったマクロを公開します
生成AIを使えばマクロの作成は以前より身近になりましたが、実際に使える形に仕上げるまでには、試行錯誤やさまざまな工夫があります。そのため、完成したマクロには、それなりの価値があるのではないかと思っています。
ということで、これからはマクロを生成AIで作成し、実際に使いながら改善した成果物を公開することにしました。
今回紹介するのは、カーソル位置や選択範囲を利用して、複数のキーワードを検索できる highlightSeikiSearch.js です。
今回紹介するマクロ
サクラエディタで文章を編集していると、現在のカーソル位置にある単語や、括弧で囲んだ複数のキーワードをそのまま検索したくなることがあります。
今回紹介する highlightSeikiSearch.js は、カーソル位置の単語、括弧内の検索条件、または選択範囲を使って検索できるサクラエディタ用マクロです。複数キーワードのAND検索やOR検索にも対応しています。
マクロのダウンロード
以下のリンクからマクロファイルをダウンロードできます。
highlightSeikiSearch.jsをダウンロード
ダウンロードしたファイルを、サクラエディタのマクロフォルダーなど、管理しやすい場所へ保存してください。
サクラエディタを快適に使うキーボード
サクラエディタのマクロをキー割り当てに登録すると、検索や編集の操作をキーボードだけで実行できるようになります。文章を長時間入力したり、ショートカットキーを多用したりする方は、キーボードにもこだわると、より快適に作業できます。
テキスト編集やプログラミング用のキーボードとして人気があるのが、PFUのHHKB Professional Classic Type-Sです。コンパクトな日本語配列で、静音性にも配慮されています。サクラエディタを中心に文章作成やコード編集を行う方は、選択肢の一つとして検討してみてはいかがでしょうか。
この記事にはアフィリエイト広告を含みます。商品の詳細や最新の価格は、リンク先でご確認ください。
基本的な使い方
- サクラエディタで文章を開きます。
- 検索したい単語の上、または検索条件を囲んだ括弧の中にカーソルを置きます。
- マクロ一覧から highlightSeikiSearch.js を実行します。
- 検索結果が見つかると、現在位置から前方向へ検索されます。
マクロを頻繁に使う場合は、サクラエディタのキー割り当てに登録しておくと便利です。
単語を検索する
括弧で囲まずに単語の上へカーソルを置いて実行すると、その単語を文字どおりに検索します。
サクラエディタで「検索」という単語の上にカーソルを置いて実行
通常の単語検索では、検索条件を正規表現として解釈せず、記号も文字として扱います。
複数のキーワードをAND検索する
角括弧などの対応する括弧の中で、キーワードを空白で区切るとAND検索になります。
[東京 大阪]この例では、「東京」と「大阪」の両方を含む箇所を検索します。半角スペース、タブ、全角スペースに対応しています。
複数の候補をOR検索する
キーワードを半角の縦棒、または全角の縦棒で区切るとOR検索になります。
[東京|大阪]
[東京|大阪]この場合は、「東京」または「大阪」を含む箇所が検索対象になります。AND検索と組み合わせて、複数の検索候補を指定することもできます。
括弧で検索条件を指定する
カーソルが括弧の内側にある場合、括弧内全体が検索条件として使われます。次の括弧に対応しています。
[]""- 「」
()- ( )
- 【 】
例えば、次のように書いてカーソルを括弧内へ置きます。
[重要]
「東京 大阪」
(東京|大阪)
【確認】ダブルクォートでキーワードを明示すると、空白を含む文字列を1つのキーワードとして扱えます。
["東京 大阪"]この例では、「東京 大阪」という文字列を1つのキーワードとして検索します。
選択範囲を検索する
検索したい文字列を範囲選択してからマクロを実行すると、括弧で囲んでいなくても、選択範囲が検索条件になります。
長い検索条件や、別の場所からコピーした文字列を検索するときに便利です。
検索に使った正規表現を確認する
括弧内の検索条件から検索用の正規表現を作成した場合、その正規表現がクリップボードへコピーされます。検索条件を確認したり、サクラエディタのGREP検索などへ再利用したりできます。
検索条件に含まれる正規表現記号は、意図せず正規表現として解釈されないようにエスケープされます。
ヘルプを表示する
カーソル位置の単語、または選択範囲に help: が含まれている状態でマクロを実行すると、検索は行わず、使い方のヘルプを表示します。
表示されたヘルプはクリップボードにもコピーされるため、メモ帳などへ貼り付けて確認できます。
マクロの仕組み
このマクロは、次の順番で検索条件を決定します。
help:があるか確認し、あればヘルプを表示します。- カーソル位置を含む括弧を探し、括弧内を検索条件にします。
- 括弧がなければ、選択範囲を検索条件にします。
- 選択範囲もなければ、カーソル位置の単語を検索条件にします。
- 括弧内や選択範囲の条件は正規表現に変換して検索します。
- 通常の単語は正規表現記号をエスケープして検索します。
また、サクラエディタの桁数に合わせて、半角文字を1、全角文字を2としてカーソル位置を計算しています。日本語を含む行でも、括弧内の範囲を正しく扱えるようにしています。
使用時の注意点
- このマクロはサクラエディタのJavaScriptマクロとして実行してください。
- クリップボードへの正規表現コピーには、Windows PowerShellを使用します。
- 検索は現在位置から文書の前方向へ行われます。
- 括弧内では、空白がAND、縦棒がORとして解釈されます。
- 括弧内の引用符はキーワードを囲む記号として扱われ、検索時には取り除かれます。
まとめ
highlightSeikiSearch.js は、カーソル位置の単語検索から、複数キーワードのAND・OR検索までを1つのマクロで実行できる便利なツールです。
検索条件を本文中に括弧で書いておけば、その場所へカーソルを置くだけで検索できるため、複雑な検索を繰り返すときの手間を減らせます。サクラエディタを使っている方は、ぜひダウンロードして試してみてください。
正規表現を学ぶための参考書
このマクロでは、空白によるAND検索や、縦棒によるOR検索など、正規表現を利用しています。
正規表現をさらに詳しく学びたい方は、入門書を手元に置いておくと、検索条件を自分で工夫できるようになります。
コメント