左または右方向に単語を選択するマクロ
左または右方向に単語を選択します。
連続して実行すると、指定方向の次の単語を選択します。
記号や改行は飛ばして、単語のみを選択します。
つまり、秀丸標準の単語選択(selectword)とは異なる動きをします。
日本語でも使えますが、英語のほうがより効果的です。
ソースコードの編集に適しています。
サルネン風単語範囲選択マクロと相性がいいです。
ダウンロード
更新履歴
- Version 1.00 (2023/8/28)
- 公開
ソースコード
左方向に単語を選択するマクロ
#x = x; #y = y;
disabledraw;
call CheckLeft;
while (code == 13) call CheckLeft; //行末の処理
call SelectLeft;
goto End;
CheckLeft: //単語の左を調べる
wordleft2;
if (!(x + y)) { //ファイル先頭の処理
call SelectLeft;
if (!selendcolumn) {
moveto #x, #y;
call SelectLeft;
}
goto End;
}
return;
SelectLeft: //左方向に単語を選択
wordrightsalnen2;
beginsel;
wordleft2;
endsel;
return;
End: //終了処理
enabledraw;
endmacro;
右方向に単語を選択するマクロ
#x = x; #y = y;
disabledraw;
call CheckRight;
if (column && code == 13) { //行末の処理
#col = column;
wordleft2;
wordrightsalnen2;
if (column < #col) { //単語左と単語右の範囲が一致しない場合
wordrightsalnen2;
call CheckRight;
}
}
wordleft2;
while (code == 13) { //行またぎの範囲は対象外
wordrightsalnen2;
call CheckRight;
wordleft2;
}
goto SelectRight;
CheckRight: //単語の右を調べる
wordrightsalnen2;
if (code == -1) { //ファイル末尾の処理
wordleft2;
if (code == 13) {
moveto #x, #y;
goto End;
}
goto SelectRight;
}
return;
SelectRight: //右方向に単語を選択
beginsel;
wordrightsalnen2;
endsel;
goto End;
End: //終了処理
enabledraw;
endmacro;
目的とする機能は単純ですが、左方向と右方向でソースコードはかなり異なります。
特に、右方向は改行周辺の処理がややこしく、相対的に長くなっています。