自動インデント途中解除のマクロを作りたNo.07291
石田 さん 13/12/25 19:22
 
 東京・板橋区在住の会社員の石田と申します。

普段、秀丸の自動インデント機能をオン 全角空白もインデント オンで利用してい
ますが、途中でインデントを解除したい時のためにマクロを作ろうとあれこれ試して
いるのですが、うまく行きません。
出来れば、shift+Enter キーに割り当てたいのですが。

例:
□ああああ(shift+Enter)
いいいいい

[ ]
RE:07291 自動インデント途中解除のマクロNo.07292
h-tom さん 13/12/25 19:57
 

h-tom です。

>普段、秀丸の自動インデント機能をオン 全角空白もインデント オンで利用してい
>ますが、途中でインデントを解除したい時のためにマクロを作ろうとあれこれ試して
>いるのですが、うまく行きません。
マクロヘルプに書いてある方法を使えばいいのでは?

[ ]
RE:07292 自動インデント途中解除のマクロNo.07293
石田 さん 13/12/25 20:33
 
>マクロヘルプに書いてある方法を使えばいいのでは?

キーボードマクロで作れました。
setcompatiblemode 0x0F;
insertreturn;
backspace;
endmacro;

[ ]
RE:07293 自動インデント途中解除のマクロNo.07295
山紫水明 さん 13/12/25 21:36
 
 石田さん,

>キーボードマクロで作れました。
>setcompatiblemode 0x0F;
>insertreturn;
>backspace;
>endmacro;

 インデントがスペースやタブ1個だけの場合はこれでいいのですが,2個以上
になるとこれだと不十分ということになります。
 次のようにしたらいかがでしょう。
//-------------------------------//
config "i0";//インデント解除
insertreturn;
config "i1";//インデント復帰
endmacro;
//-------------------------------//

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07295 自動インデント途中解除のマクロNo.07296
山紫水明 さん 13/12/25 21:45
 
 石田さん, 追伸です。

deletebefore を使う手もあるようです。
//-------------------------------//
insertreturn;
deletebefore;
endmacro;
//-------------------------------//

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07296 自動インデント途中解除のマクロNo.07297
K'zawa さん 13/12/25 22:02
 
K'zawaです。

単に改行ひとついれればよいのではないんですか?

insert "\n";

[ ]
RE:07296 自動インデント途中解除のマクロNo.07298
h-tom さん 13/12/25 22:11
 

h-tom です。

マクロの設定依存性について(Ver8.32対応版)
http://homepage3.nifty.com/kons/hidemaru/helpsite/hidemac/html/051_Dependence.html

「●インデント」を参照のこと。

[ ]
RE:07297 自動インデント途中解除のマクロNo.07299
山紫水明 さん 13/12/25 22:16
 
 K'zawaさん,
>単に改行ひとついれればよいのではないんですか?
>insert "\n";

 そうでしたね。insertrerturn と insert "\n" の違いを知っていたはずなの
にうっかりしていました
                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07299 自動インデント途中解除のマクロNo.07300
石田 さん 13/12/25 22:41
 
山紫水明さん、他のみなさん有り難う御座いました。
マクロヘルプは、カーソル移動系ばかり見ていて、
分かりませんでした。


[ ]
RE:07299 自動インデント途中解除のマクロNo.07301
K'zawa さん 13/12/26 10:39
 
K'zawaです。

インデントしない以外エンターキーと同じなら、下記になるかも。
(insert "\n"; で十分ならここまでする必要はないですが…)


setcompatiblemode 0x0A;

openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#n = getregnum( "OvwtCR" );
closereg;

if ( #n == 0 && overwrite && code != eof ) {
  moveto 0, y + 1;
} else {
  insert "\n";
}

[ ]