スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



サクラエディタマクロ 逆インデント(複数行選択時も)

サクラエディタの逆インデントは範囲選択しないといけない。キー操作がまんどい。
このマクロは単一行なら範囲選択不要で、複数行選択ならまとめてアンインデント。
ただ、改行だけの行は削除されてしまう。
実行後のカーソル桁位置は行末。
(function(){
s = (GetSelectedString(0) ? GetSelectedString(0) : GetLineStr(0)).replace(
/^ |^\s|(\r\n|\n|\r)/gm,'$1');

switch(IsTextSelected()){
case 2: return;
case 0: s = s.replace(/\r\n|\n|\r/,'');
LineDeleteToStart();
LineDeleteToEnd();
}
InsText(s);
})();
IsTextSelected()の戻り値2はボックス選択状態で、何もせず復帰。
ちなみに、グローバルのトップレベルでreturnしても関数の外にあるといってJSのエラーになるが、
関数で全体を囲い、それ自体を最後の();でトップレベルから呼び出すようにしておけば、returnする位置でマクロ実行から抜けることができる。

0の選択なしでは行頭行末改行まで削除し、その後InsText()で挿入。
複数行選択の有無にかかわらずこれでうまくいくので、ラッキーなコードか。
スポンサーサイト



comment

Secret

while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。