「オフインデント」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Inuuik (トーク | 投稿記録)
編集の要約なし
Inuuik (トーク | 投稿記録)
編集の要約なし
17行目: 17行目:
ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
</pre>
</pre>
([http://www.haijin-boys.com/index.php?fuseaction=weblog.entryInquire&entry_id=5041fb10749ab2.98527205 ブログのコメント] より転載)


<source lang="javascript">
<source lang="javascript">
24行目: 22行目:
// オフインデント(Shift+Enter)
// オフインデント(Shift+Enter)
//
//
// revised  inuuik  2012-09-02
// revised  inuuik  2014-01-27
// - ------------------------ --------------------------------------------------
// - ------------------------ --------------------------------------------------
{
{
   var s = document.selection;
   var s = document.selection;
   Redraw = false;
   var y = s.GetActivePointY(mePosView);
  s.NewLine(1);
 
  s.StartOfLine(true, mePosLogical);
  if (!s.OverwriteMode || y === document.GetLines(meGetLineView)) {
  if (!s.IsEmpty) {
// 挿入モードか、カーソルが最終行にある上書きモードなら、
    s.Text = "";
// 現在行の下にカーソル桁位置以降の文字列を含む新しい行を挿入
    // 冗長でない記述
//    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);
   }
   }
  Redraw = true;
}
}
// - ------------------------ --------------------------------------------------
// - ------------------------ --------------------------------------------------
</source>
</source>

2014年1月27日 (月) 14:11時点における版

Mery エディタ マクロ: オフインデント ( inuuik )

  インデントをはずす(オフ・インデント)

  「自動インデントを有効にする」にしているときに、
  Shift キーを押しながら Enter キーを押す(Shift+Enter)と、
  インデントをしないで次の行頭にカーソルが移動するマクロ。

  その行だけのインデントはずしで、自動インデントは有効のまま。
  あとの行でインデントしたときは、つぎに Enter を押すと、
  その次の行頭がインデントされる。

オフインデント(Shift+Enter).js

下の内容を、上の名前のファイルにして、My Macros に置く。
そこから Mery で開いて、マクロ - これを選択、
ツール - オプション - キーボード の マクロ で Shift+Enter に割り当て。
// - ------------------------ --------------------------------------------------
// オフインデント(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);
  }
}
// - ------------------------ --------------------------------------------------
スポンサーリンク