キーアサイン集

提供: MeryWiki
移動先: 案内検索

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

注意点[編集]

  • 「Alt + 矢印キー」は、開発環境の仕様制限により、キーを割り当てても動作しません。(参考フォーラム→ 2013/12/23付 2010/01/20付)

キーアサイン[編集]

バックスペース[編集]

  • 推奨割当「Ctrl + BackSpace」
  • バックスペース処理をする(※通常は制御文字 DEL (0x007F) が挿入される)
var sel = Editor.ActiveDocument.Selection;
if (sel.IsEmpty) {
  sel.DeleteLeft(1);
} else {
  sel.Delete();
}

強制改行 (インデント無効)[編集]

  • 推奨割当「Shift + Enter」「Ctrl + Enter」
  • 自動インデントを無視して改行する
Document.Write("\n");

切り取り (行切り取り無効)[編集]

  • 推奨割当「Ctrl + X」「Shift + Delete」
  • 非選択時にカーソル行(論理行)を切り取りしない(※通常は行切り取りする)
if (Document.Selection.Text) Document.Selection.Cut();

コピー (行コピー無効)[編集]

  • 推奨割当「Ctrl + C」「Ctrl + Insert」
  • 非選択時にカーソル行(論理行)をコピーしない(※通常は行コピーする)
if (Document.Selection.Text) Document.Selection.Copy();

コピー (行コピー時選択)[編集]

  • 推奨割当「Ctrl + C」「Ctrl + Insert」
  • 非選択時コピー(行コピー)時にコピーした範囲を選択する(※通常は範囲選択しない)
Document.Selection.Copy();
if (Document.Selection.IsEmpty) Document.Selection.SelectLine();

すべて選択 (非スクロール)[編集]

  • 推奨割当「Ctrl + A」
  • すべて選択時にスクロールしない(※通常は文書の末尾までスクロールする)
var sx = ScrollX, sy = ScrollY;	//スクロール位置を記憶
Document.Selection.SelectAll();
ScrollX = sx; ScrollY = sy;	//スクロール位置を復元

追加切り取り[編集]

  • 割当例「Shift + Ctrl + X」など
  • クリップボードに追加する切り取り
var cb = ClipboardData.GetData();
Document.Selection.Cut();
ClipboardData.SetData(cb + ClipboardData.GetData());

追加コピー[編集]

  • 割当例「Shift + Ctrl + C」など
  • クリップボードに追加するコピー
var cb = ClipboardData.GetData();
Document.Selection.Copy();
ClipboardData.SetData(cb + ClipboardData.GetData());

行を複製[編集]

  • 割当例「Ctrl + D」「Ctrl + Insert」など
  • カーソル行(論理行)を複製する
Document.Selection.DuplicateLine();

行を削除[編集]

  • 割当例「Ctrl + E」「Ctrl + Delete」など
  • カーソル行(論理行)を削除する
Document.Selection.SelectLine();
Document.Selection.Delete();

行頭まで/行末まで削除[編集]

  • 論理行の行頭/行末まで削除したい場合は mePosViewmePosLogical に書き換えてください
  • 割当例「Shift + BackSpace」など
  • カーソル位置から行頭(表示行)まで削除する
with (Document.Selection) {
  SetAnchorPos(GetActivePos());
  StartOfLine(true, mePosView);
  Delete();
}
  • 割当例「Shift + Delete」など
  • カーソル位置から行末(表示行)まで削除する
with (Document.Selection) {
  SetAnchorPos(GetActivePos());
  EndOfLine(true, mePosView);
  Delete();
}

括弧で挟む[編集]

  • 割当例「Ctrl + 8」「Ctrl + [ 」など
  • カーソル位置or選択範囲を指定の文字列で挟む
var pre = "(";	//前に付ける文字列
var sur = ")";	//後に付ける文字列
Document.Selection.Text = pre + Document.Selection.Text + sur;
Document.Selection.CharLeft(false, sur.length);

逆インデント (単一行対応)[編集]

  • 推奨割当「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();
}
  • 位置関係を維持しない(行選択する)場合は下記のコード
if (!/\n/.test(Document.Selection.Text)) Document.Selection.SelectLine();
Document.Selection.UnIndent();

日付と時刻 (メモ帳仕様)[編集]

  • 推奨割当「F5」
  • メモ帳のように「時刻 日付」の順で現在日時を挿入(※通常は「日付 時刻」の順)

→ マクロ「日付と時刻を挿入」 または下記のコード

Document.Selection.InsertDate(meDateTimeDate);

上書き保存 (UAC対応)[編集]

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

→ マクロ「上書き保存(UAC対応)

元に戻す[編集]

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

→ マクロ「少し便利な_Undo/Redo

やり直し[編集]

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

→ マクロ「少し便利な_Undo/Redo

上移動 (先頭行では行頭へ)[編集]

  • 推奨割当「Up (↑)」
  • 上の行がそれ以上存在しない場合は、行頭(文書の先頭)に移動する(※通常は移動しない)
var sel = Document.Selection;
if (sel.GetActivePointY(mePosView) > 1) {
  sel.LineUp();
} else {
  sel.StartOfDocument();
}

下移動 (最終行では行末へ)[編集]

  • 推奨割当「Down (↓)」
  • 下の行がそれ以上存在しない場合は、行末(文書の末尾)に移動する(※通常は移動しない)
var sel = Document.Selection;
if (sel.GetActivePointY(mePosView) < Document.GetLines(meGetLineView)) {
  sel.LineDown();
} else {
  sel.EndOfDocument();
}

対応する括弧に移動[編集]

  • 割当例「Ctrl + [ 」「Ctrl + ] 」など
  • カーソル右側に括弧がある場合、対応する括弧に移動する

→ マクロ「対応する括弧に移動

行頭に移動 (インデント対応)[編集]

  • 推奨割当「Home」「Shift + Home」
  • インデント位置<カーソル位置の場合は、インデント位置に移動する
  • カーソル位置≦インデント位置の場合は、行頭に移動する

→ マクロ「行頭に移動

文書の1/4上に/下に移動[編集]

  • 割当例「Ctrl + PageUp」など
  • 総表示行数の1/4分、上に移動する(最低4回の移動で文書頭に到達)
Redraw = false;
Document.Selection.LineUp(false, (Document.GetLines()/4));
Redraw = true;
  • 割当例「Ctrl + PageDown」など
  • 総表示行数の1/4分、下に移動する(最低4回の移動で文書末に到達)
Redraw = false;
Document.Selection.LineDown(false, (Document.GetLines()/4));
Redraw = true;

選択範囲の始点終点を交替[編集]

  • 選択範囲の始点と終点(カーソル位置)を入れ替える
with (Document.Selection) {
  var anp = GetAnchorPos();
  var acp = GetActivePos();
  SetActivePos(anp);
  SetAnchorPos(acp);
}

この文字列を検索[編集]

  • 「次/前の文字列を検索」時に移動しない(※通常は次/前に移動する)
  • 範囲選択時は選択文字列で、非選択時は単語選択してから検索を実行します
Redraw = false;
with (Document.Selection) {
  if (IsEmpty) SelectWord();
  var sx = ScrollX, sy = ScrollY, acp = GetActivePos(), anp = GetAnchorPos();
  Find(Text, meFindReplaceCase + meFindNext + meFindAround);
  SetActivePos(acp); SetAnchorPos(anp); ScrollX = sx; ScrollY = sy;
}
Redraw = true;

標準の移動/選択操作[編集]

カーソル移動や行頭/行末移動などは通常、キーアサインを変更することはできませんが、機能を再現したマクロにキーを割り当てることで実現できます。

  • 範囲選択版は falsetrue に書き換えてください

移動 - 上/下/左/右[編集]

上移動 / 下移動
  • 標準の割当「Up (↑)」/選択版の割当「Shift + Up (↑)」
Document.Selection.LineUp(false, 1);
  • 標準の割当「Down (↓)」/選択版の割当「Shift + Down (↓)」
Document.Selection.LineDown(false, 1);
左移動 / 右移動
  • 標準の割当「Left (←)」/選択版の割当「Shift + Left (←)」
Document.Selection.CharLeft(false, 1);
  • 標準の割当「Right (→)」/選択版の割当「Shift + Right (→)」
Document.Selection.CharRight(false, 1);

移動 - 上頁/下頁/左単語/右単語[編集]

1ページ上に移動 / 1ページ下に移動
  • 標準の割当「PageUp」/選択版の割当「Shift + PageUp」
Document.Selection.PageUp(false, 1);
  • 標準の割当「PageDown」/選択版の割当「Shift + PageDown」
Document.Selection.PageDown(false, 1);
左の単語に移動 / 右の単語に移動
  • 標準の割当「Ctrl + Left (←)」/選択版の割当「Shift + Ctrl + Left (←)」
Document.Selection.WordLeft(false, 1);
  • 標準の割当「Ctrl + Right (→)」/選択版の割当「Shift + Ctrl + Right (→)」
Document.Selection.WordRight(false, 1);

移動 - 行頭/行末/文書頭/文書末[編集]

行頭に移動 / 行末に移動 (表示行)
  • 論理行の行頭/行末に移動したい場合は mePosViewmePosLogical に書き換えてください
  • 標準の割当「Home」/選択版の割当「Shift + Home」
Document.Selection.StartOfLine(false, mePosView);
  • 標準の割当「End」/選択版の割当「Shift + End」
Document.Selection.EndOfLine(false, mePosView);
文書の先頭に移動 / 文書の末尾に移動
  • 標準の割当「Ctrl + Home」/選択版の割当「Shift + Ctrl + Home」
Document.Selection.StartOfDocument(false);
  • 標準の割当「Ctrl + End」/選択版の割当「Shift + Ctrl + End」
Document.Selection.EndOfDocument(false);

単語を選択[編集]

  • マウス操作「文字をダブルクリック」
  • カーソル位置にある単語(連続する英数字/かな/カナ/漢字)を選択する
Document.Selection.SelectWord();

行を選択 (論理行/表示行)[編集]

  • マウス操作「文字をトリプルクリック」
  • カーソル行(論理行)を選択する(カーソルは次行行頭に移動)
Document.Selection.SelectLine();
  • マウス操作「行番号をクリック」
  • カーソル行(表示行)を選択する(カーソルは行頭に移動)
with (Document.Selection) {
  EndOfLine();
  if (Document.Text.charAt(GetActivePos())=="\n")
    SetAnchorPos(GetActivePos()+1); //行末が改行の場合、改行も含める
  StartOfLine(true);
}

ご意見・ご要望[編集]

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