( 投稿[563]の改良版です )
最近のサクラエディタは、検索する際に「単語単位で探す」をオンにすると、
複数の単語を検索できます。しかも5色までの色分けまでしてくれます。
この便利な機能を、手軽に使うためのマクロを書いてみました。
Ctrl+ダブルクリックに割り当てると便利です。
単語を追加するたびに、新しい色をつけて次々とハイライトしていけます。
空行や行末など単語がない場所で起動すると、ハイライトをクリアします。
SearchWordsPlus.js
-----------------------------------
// *************************************************
// SearchWordsPlus.js (Ver.2)
//
// 環境 : sakura2.0.6.0以降専用
// 機能 : 複数の単語で単語検索を行う
// 使用例: Ctrl+ダブルクリック に割り当てする。
// ダブルクリックに[Macro/投稿/116]の割り当て。
// 設定>タイプ別設定>カラー にて
// 検索文字列~5 の色を設定しておくこと。
// *************************************************
var strNewWord ;
var strLastWords ;
var strSearchWords ;
// -- 単語を選択 --
//Editor.SelectWord() ;
//<- マクロを Ctrl+ダブルクリックにアサインした場合、
// 「Ctrl+左クリック」の時点で既に単語選択されるため、
// ここはコメントアウトしてください。
// -- 選択単語を追加する --
strNewWord = Editor.GetSelectedString(0);
if ( strNewWord == "" ){
// -- 単語が存在しない場所で起動した場合はクリアする --
Editor.SearchClearMark(0);
Editor.SetCookie( "window", "SearchWords","");
} else {
// -- 単語を"SearchWords"というCookieに保存し、複数単語検索する --
strLastWords = Editor.GetCookie( "window", "SearchWords", "" );
strSearchWords = strLastWords + " " + strNewWord;
Editor.Left();
Editor.SearchNext( strSearchWords, 2051 );
//<- 2051 = 0x01+0x02+0x800 (単語単位+英大小区別+履歴非登録)
Editor.SetCookie( "window", "SearchWords", strSearchWords );
}
-----------------------------------
検索条件はプログラマ向けを想定しています。
Ver1は、前の検索文字列を取得するためにクリップボードを使っている点が難点でした。
Ver2では、サクラエディタ2.0.6.0以降の機能であるSetCookieを使用しています。
次のマクロと共存が可能です。
・[Macro/投稿/116] ダブルクリックして選択範囲と同じ単語をハイライト
http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F116-----------------------------------
S_SelectWord(0);
S_SearchClearMark(0);
-----------------------------------
私は、
・ダブルクリックを、上の(投稿/116)の1単語の単語検索
・Ctrl+ダブルクリックを、今回の複数単語の単語検索
というようにキー割り当てを設定し、併用して使っています。