「キーアサイン集」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Ks (トーク | 投稿記録)
ページの作成:「= 概要 = キーアサイン集です.<br> 「従来動作+α」または「別エディタの動作を模倣」を基本とします.<br> 他に良いと思わ...」
 
Ks (トーク | 投稿記録)
編集の要約なし
202行目: 202行目:
* インデントがある場合はインデント位置に移動する
* インデントがある場合はインデント位置に移動する
* インデント位置で実行した場合は行頭に移動する
* インデント位置で実行した場合は行頭に移動する
コード:[[日付と時刻を挿入]]
コード:[[行頭に移動]]


== 日付と時刻を挿入 ==
== 日付と時刻を挿入 ==
* 推奨割当「F5」
* 推奨割当「F5」
* メモ帳の「日付と時刻」機能
* メモ帳の「日付と時刻」機能
コード:[[行頭に移動]]
コード:[[日付と時刻を挿入]]


= ご意見・ご要望 =
= ご意見・ご要望 =
何かありましたら,右の [編集] から追記してください.対応するもかしれません.
何かありましたら,右の [編集] から追記してください.対応するもかしれません.

2013年3月10日 (日) 20:35時点における版

概要

キーアサイン集です.
「従来動作+α」または「別エディタの動作を模倣」を基本とします.
他に良いと思われるキーアサインがあれば是非ご投稿ください.

キーアサイン

バックスペース

  • 割当「Ctrl + Backspace」
  • 通常のバックスペース処理をする(通常は0x007F のコードが挿入される)
var sel = Editor.ActiveDocument.Selection;
if (sel.IsEmpty) {
  sel.DeleteLeft(1);
} else {
  sel.Delete();
}

コピー

  • 推奨割当「Ctrl + C」
  • 非選択状態時にコピーがされないようにする(通常は行コピー)
if (!Document.Selection.isEmpty) {
  Document.Selection.Copy(meCopyUnicode);
}

切り取り

  • 推奨割当「Ctrl + X」
  • 非選択状態時に切り取りがされないようにする(通常は行切り取り)
if (!Document.Selection.isEmpty) {
  Document.Selection.Cut();
}

↑(カーソルの上キー)

  • 割当「UP」
  • 先頭行で実行時に行頭にカーソルを移動(通常は移動しない)
  • 先頭行以外では通常のカーソル上移動
var sel = Document.Selection;
if (sel.GetActivePointY(mePosView) > 1) {
  sel.LineUp();
} else {
  sel.SetActivePoint(mePosLogical, 1, 1);
}

↓(カーソルの下キー)

  • 割当「DOWN」
  • 最終行で実行時に行末にカーソルを移動(通常は移動しない)
  • 最終行以外では通常のカーソル下移動
var sel = Document.Selection;
if (sel.GetActivePointY(mePosView) < Document.GetLines(meGetLineView)) {
  sel.LineDown();
} else {
  sel.EndOfDocument();
}

上書き保存

  • 推奨割当「Ctrl + S」
  • UAC が必要なときには権限昇格をして保存

コード:上書き保存(UAC対応)

元に戻す

  • 推奨割当「Ctrl + Z」
  • 「元に戻す」実行時に,保存済みファイルと同じ内容のとき「変更マーク」を消す
  • 速度が気になる場合はサイズ制限の値を変更してください
var beforeText = Document.Text;
Document.Undo();
if (beforeText == Document.Text) {
  Quit();
}

// サイズ制限
if (Document.Text.length > 150 * 1024) {
  Quit();
}

if (Document.FullName) {
  var charset = "_autodetect_all";
  switch (Document.Encoding) {
    case meEncodingEUC:           charset = "euc-JP";   break;
    case meEncodingShiftJIS:        charset = "shift-jis";  break;
    case meEncodingUTF16LE:
    case meEncodingUTF16BE:         charset = "unicode";  break;
    case meEncodingUTF7:          charset = "utf-7";    break;
    case meEncodingUTF8WithSignature:
    case meEncodingUTF8WithoutSignature:  charset = "utf-8";    break;
  }
  var s = LoadFromFile(Document.FullName, charset);
  if (s != null && Document.Text === s.replace(/\r\n?/g, "\n")) {
    Document.Saved = true;
  }
}
function LoadFromFile(path, charset) {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  if (!fso.FileExists(path)) {
    return null;
  }
  if (!charset) {
    charset = "utf-8";
  }
  var adodb = new ActiveXObject("ADODB.Stream");
  adodb.Charset = charset;
  adodb.Type = 2;
  adodb.Open();
  adodb.LoadFromFile(path);
  var text = adodb.ReadText(-1);
  adodb.Close();
  return text;
};

やり直し

  • 推奨割当「Ctrl + Y」
  • 「やり直し」実行時に,保存済みファイルと同じ内容のとき「変更マーク」を消す
  • 速度が気になる場合はサイズ制限の値を変更してください
var beforeText = Document.Text;
Document.Redo();
if (beforeText == Document.Text) {
  Quit();
}

// サイズ制限
if (Document.Text.length > 150 * 1024) {
  Quit();
}

if (Document.FullName) {
  var charset = "_autodetect_all";
  switch (Document.Encoding) {
    case meEncodingEUC:           charset = "euc-JP";   break;
    case meEncodingShiftJIS:        charset = "shift-jis";  break;
    case meEncodingUTF16LE:
    case meEncodingUTF16BE:         charset = "unicode";  break;
    case meEncodingUTF7:          charset = "utf-7";    break;
    case meEncodingUTF8WithSignature:
    case meEncodingUTF8WithoutSignature:  charset = "utf-8";    break;
  }
  var s = LoadFromFile(Document.FullName, charset);
  if (s != null && Document.Text === s.replace(/\r\n?/g, "\n")) {
    Document.Saved = true;
  }
}
function LoadFromFile(path, charset) {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  if (!fso.FileExists(path)) {
    return null;
  }
  if (!charset) {
    charset = "utf-8";
  }
  var adodb = new ActiveXObject("ADODB.Stream");
  adodb.Charset = charset;
  adodb.Type = 2;
  adodb.Open();
  adodb.LoadFromFile(path);
  var text = adodb.ReadText(-1);
  adodb.Close();
  return text;
};

すべて選択

  • 推奨割当「Ctrl + A」
  • 全て選択時にスクロール位置を移動しない(通常は最終行に移動)
var sx = ScrollX;
var sy = ScrollY;
Document.Selection.SelectAll();
ScrollX = sx;
ScrollY = sy;

逆インデント

  • 推奨割当「Shift + Tab」
  • 複数行選択でない場合も逆インデントを実行(通常はタブ挿入)

コード:非選択状態でも逆インデント
または下記コード

var sel = Document.Selection;
if (sel.Text.indexOf("\n") < 0) {
  var x = sel.GetActivePointX(mePosLogical);
  var y = sel.GetActivePointY(mePosLogical);
  sel.SelectLine();
  var n = sel.Text.length;
  sel.UnIndent();
  sel.SetActivePoint(mePosLogical, x - (n - sel.Text.length), y);
} else {
  sel.UnIndent();
}

インデント対応 Home

  • 推奨割当「Home」「Shift + Home」
  • インデントがある場合はインデント位置に移動する
  • インデント位置で実行した場合は行頭に移動する

コード:行頭に移動

日付と時刻を挿入

  • 推奨割当「F5」
  • メモ帳の「日付と時刻」機能

コード:日付と時刻を挿入

ご意見・ご要望

何かありましたら,右の [編集] から追記してください.対応するもかしれません.

スポンサーリンク