「キーアサイン集」の版間の差分
ナビゲーションに移動
検索に移動
アサイン追加9個・行数削減3個。見出しをなるべく詳細に。概要を目次の上へ移動。他。 |
細 項目を並べ替え |
||
| 16行目: | 16行目: | ||
sel.Delete(); | sel.Delete(); | ||
} | } | ||
</source> | |||
== 強制改行 (インデント無効) == | |||
* 推奨割当「Shift + Enter」「Ctrl + Enter」 | |||
* 自動インデントを無視して改行する | |||
<source lang="javascript"> | |||
Document.Write("\n"); | |||
</source> | |||
== 切り取り (行切り取り無効) == | |||
* 推奨割当「Ctrl + X」「Shift + Delete」 | |||
* 非選択時にカーソル行(論理行)を切り取りしない(※通常は行切り取りされる) | |||
<source lang="javascript"> | |||
if (Document.Selection.Text) Document.Selection.Cut(); | |||
</source> | </source> | ||
| 25行目: | 39行目: | ||
</source> | </source> | ||
== | == コピー (行コピー時選択) == | ||
* 推奨割当「Ctrl + | * 推奨割当「Ctrl + C」「Ctrl + Insert」 | ||
* | * 非選択時コピー(行コピー)時にコピーした範囲を選択する(※通常は範囲選択されない) | ||
<source lang="javascript"> | |||
Document.Selection.Copy(); | |||
if (Document.Selection.IsEmpty) Document.Selection.SelectLine(); | |||
</source> | |||
== すべて選択 (非スクロール) == | |||
* 推奨割当「Ctrl + A」 | |||
* すべて選択時にスクロールしない(※通常は文書の末尾までスクロールする) | |||
<source lang="javascript"> | |||
var sx = ScrollX, sy = ScrollY; //スクロール位置を記憶 | |||
Document.Selection.SelectAll(); | |||
ScrollX = sx; ScrollY = sy; //スクロール位置を復元 | |||
</source> | |||
== 追加切り取り == | |||
* 割当例「Ctrl + Shift + X」など | |||
* クリップボードに追加する切り取り | |||
<source lang="javascript"> | <source lang="javascript"> | ||
with (Document.Selection) { | |||
if (IsEmpty) SelectLine(); //非選択時、行選択 | |||
ClipboardData.SetData(ClipboardData.GetData() + Text); | |||
Delete(); | |||
} | |||
</source> | </source> | ||
== | == 追加コピー == | ||
* | * 割当例「Ctrl + Shift + C」など | ||
* | * クリップボードに追加するコピー | ||
<source lang="javascript"> | <source lang="javascript"> | ||
with (Document.Selection) { | |||
if ( | var isE=IsEmpty, pos=GetActivePos(); //非選択時かを記憶, カーソル位置を記憶 | ||
if (IsEmpty) SelectLine(); //非選択時、行選択 | |||
ClipboardData.SetData(ClipboardData.GetData() + Text); | |||
if (isE) SetActivePos(pos,false); //非選択時だった場合カーソル位置を復元、範囲解除 | |||
} | } | ||
</source> | </source> | ||
== | == 行を複製 == | ||
* | * 割当例「Ctrl + D」「Ctrl + Insert」など | ||
* カーソル行(論理行)を複製する | |||
<source lang="javascript"> | |||
Document.Selection.DuplicateLine(); | |||
</source> | |||
== 行を削除 == | |||
* 割当例「Ctrl + E」「Ctrl + Delete」など | |||
* カーソル行(論理行)を削除する | |||
<source lang="javascript"> | |||
Document.Selection.SelectLine(); | |||
Document.Selection.Delete(); | |||
</source> | |||
== 括弧で挟む == | |||
* 割当例「Ctrl + 8」「Ctrl + [」など | |||
* カーソル位置or選択範囲を指定の文字列で挟む | |||
<source lang="javascript"> | |||
var pre = "("; //前に付ける文字列 | |||
var sur = ")"; //後に付ける文字列 | |||
Document.Selection.Text = pre + Document.Selection.Text + sur; | |||
Document.Selection.CharLeft(false, sur.length); | |||
</source> | |||
== 逆インデント == | |||
* 推奨割当「Shift + Tab」 | |||
* 複数行選択でない場合でも逆インデントする(※通常はタブ挿入) | |||
→ マクロ「[[非選択状態でも逆インデント]]」 | |||
または下記のコード | |||
<source lang="javascript"> | <source lang="javascript"> | ||
var sel = Document.Selection; | var sel = Document.Selection; | ||
if (sel.GetActivePointY( | if (sel.Text.indexOf("\n") < 0) { | ||
sel. | 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 { | } else { | ||
sel. | sel.UnIndent(); | ||
} | } | ||
</source> | </source> | ||
== 日付と時刻 (メモ帳仕様) == | |||
* 推奨割当「F5」 | |||
* メモ帳の「日付と時刻」機能を再現 | |||
→ マクロ「[[日付と時刻を挿入]]」 | |||
== 上書き保存 (UAC対応) == | == 上書き保存 (UAC対応) == | ||
| 163行目: | 235行目: | ||
</source> | </source> | ||
== | == 上移動 (先頭行では行頭へ) == | ||
* | * 推奨割当「Up (↑)」 | ||
* | * 上の行がそれ以上存在しない場合は、行頭に移動する(※通常は移動しない) | ||
<source lang="javascript"> | <source lang="javascript"> | ||
var | var sel = Document.Selection; | ||
if (sel.GetActivePointY(mePosView) > 1) { | |||
sel.LineUp(); | |||
} else { | |||
sel.StartOfDocument(); | |||
} | |||
</source> | </source> | ||
== | == 下移動 (最終行では行末へ) == | ||
* | * 推奨割当「Down (↓)」 | ||
* | * 下の行がそれ以上存在しない場合は、行末に移動する(※通常は移動しない) | ||
<source lang="javascript"> | <source lang="javascript"> | ||
var sel = Document.Selection; | var sel = Document.Selection; | ||
if (sel. | if (sel.GetActivePointY(mePosView) < Document.GetLines(meGetLineView)) { | ||
sel.LineDown(); | |||
sel. | |||
} else { | } else { | ||
sel. | sel.EndOfDocument(); | ||
} | } | ||
</source> | </source> | ||
| 196行目: | 264行目: | ||
* インデント位置で実行した場合は、行頭に移動する | * インデント位置で実行した場合は、行頭に移動する | ||
→ マクロ「[[行頭に移動]]」 | → マクロ「[[行頭に移動]]」 | ||
== 行頭まで選択 (論理行) == | == 行頭まで選択 (論理行) == | ||
2014年2月3日 (月) 07:45時点における版
キーアサイン集です.
「従来動作+α」または「別エディタの動作を模倣」を基本とします.
他に良いと思われるキーアサインがあれば是非ご投稿ください.
キーアサイン
バックスペース
- 推奨割当「Ctrl + BackSpace」
- 通常のバックスペース処理をする(※通常は 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; //スクロール位置を復元
追加切り取り
- 割当例「Ctrl + Shift + X」など
- クリップボードに追加する切り取り
with (Document.Selection) {
if (IsEmpty) SelectLine(); //非選択時、行選択
ClipboardData.SetData(ClipboardData.GetData() + Text);
Delete();
}
追加コピー
- 割当例「Ctrl + Shift + C」など
- クリップボードに追加するコピー
with (Document.Selection) {
var isE=IsEmpty, pos=GetActivePos(); //非選択時かを記憶, カーソル位置を記憶
if (IsEmpty) SelectLine(); //非選択時、行選択
ClipboardData.SetData(ClipboardData.GetData() + Text);
if (isE) SetActivePos(pos,false); //非選択時だった場合カーソル位置を復元、範囲解除
}
行を複製
- 割当例「Ctrl + D」「Ctrl + Insert」など
- カーソル行(論理行)を複製する
Document.Selection.DuplicateLine();
行を削除
- 割当例「Ctrl + E」「Ctrl + Delete」など
- カーソル行(論理行)を削除する
Document.Selection.SelectLine();
Document.Selection.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();
}
日付と時刻 (メモ帳仕様)
- 推奨割当「F5」
- メモ帳の「日付と時刻」機能を再現
→ マクロ「日付と時刻を挿入」
上書き保存 (UAC対応)
- 推奨割当「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;
};
上移動 (先頭行では行頭へ)
- 推奨割当「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();
}
行頭に移動 (インデント対応)
- 推奨割当「Home」「Shift + Home」
- インデントがある場合は、インデント位置に移動する
- インデント位置で実行した場合は、行頭に移動する
→ マクロ「行頭に移動」
行頭まで選択 (論理行)
- 推奨割当「Shift + Home」
- 論理座標で行頭まで選択する(※通常は表示座標)
Document.Selection.StartOfLine(true, mePosLogical);
行末まで選択 (論理行)
- 推奨割当「Shift + End」
- 論理座標で行末まで選択する(※通常は表示座標)
Document.Selection.EndOfLine(true, mePosLogical);
ご意見・ご要望
何かありましたら,右の [編集] から追記してください.対応するかもしれません.
スポンサーリンク