|
|
| 1行目: |
1行目: |
| Mery エディタ マクロ: オフインデント ( inuuik )
| |
| <pre>
| |
| インデントをはずす(オフ・インデント)
| |
|
| |
|
| 「自動インデントを有効にする」にしているときに、
| |
| Shift キーを押しながら Enter キーを押す(Shift+Enter)と、
| |
| インデントをしないで次の行頭にカーソルが移動するマクロ。
| |
|
| |
| その行だけのインデントはずしで、自動インデントは有効のまま。
| |
| あとの行でインデントしたときは、つぎに Enter を押すと、
| |
| その次の行頭がインデントされる。
| |
|
| |
| オフインデント(Shift+Enter).js
| |
|
| |
| 下の内容を、上の名前のファイルにして、My Macros に置く。
| |
| そこから Mery で開いて、マクロ - これを選択、
| |
| ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
| |
| </pre>
| |
|
| |
| <source lang="javascript">
| |
| // - ------------------------ --------------------------------------------------
| |
| // オフインデント(Shift+Enter)
| |
| //
| |
| // revised inuuik 2014-01-27
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
| var y = s.GetActivePointY(mePosView);
| |
|
| |
| if (!s.OverwriteMode || y === document.GetLines(meGetLineView)) {
| |
| // 挿入モードか、カーソルが最終行にある上書きモードなら、
| |
| // 現在行の下にカーソル桁位置以降の文字列を含む新しい行を挿入
| |
| // 冗長でない記述
| |
| // document.Write("\n"); // これを使うなら下の冗長な記述はいらない…
| |
| // 冗長な記述ここから↓
| |
| Redraw = false;
| |
| s.NewLine(1);
| |
| // インデントによる行頭空白文字を削除
| |
| s.StartOfLine(true, mePosLogical);
| |
| if (!s.IsEmpty) {
| |
| s.Text = "";
| |
| }
| |
| Redraw = true;
| |
| // 冗長な記述ここまで↑
| |
| }
| |
| // 上書きモードでカーソルが最終行になければ、
| |
| // 現在行の下の行頭にカーソル桁位置を移動
| |
| else {
| |
| s.EndOfLine(!s.IsEmpty, mePosView);
| |
| s.CharRight(!s.IsEmpty, 1);
| |
| }
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |