「
キーアサイン集
」を編集中
2018年10月8日 (月) 06:49時点における
Sukemaru
(
トーク
|
投稿記録
)
による版
(
→
行を選択 (論理行/表示行)
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
キーアサイン(キーボードの割り当て)集です.<br> 「従来動作+α」または「別エディタの動作を模倣」を基本とします.<br> 他に良いと思われるキーアサインがあれば是非ご投稿ください. * デフォルトのメニュー内コマンドのキーアサインは、「[[ヘルプ:目次]]」の 「[[ヘルプ:目次#キーボードマップ|キーボードマップ]]」 を参照 * マクロをアイコン化してツールバーに配置するばあいは、「[[マテリアルデザインっぽいアイコンと『小マクロ集』]]」 を参照 <!-- 2行追加 (sukemaru) 2018/10/08 --> <div>__TOC__</div> = 注意点 = * 「Alt + 矢印キー」は、開発環境の仕様制限により、キーを割り当てても動作しません。(参考フォーラム→ [http://www.haijin-boys.com/index.php?fuseaction=discussions.replies&discussion_id=2399 2013/12/23付] [http://www.haijin-boys.com/index.php?fuseaction=discussions.replies&discussion_id=1078 2010/01/20付]) = キーアサイン = == バックスペース == * 推奨割当「Ctrl + BackSpace」 * バックスペース処理をする(※通常は制御文字 DEL (0x007F) が挿入される) <source lang="javascript"> var sel = Editor.ActiveDocument.Selection; if (sel.IsEmpty) { sel.DeleteLeft(1); } else { 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> == コピー (行コピー無効) == * 推奨割当「Ctrl + C」「Ctrl + Insert」 * 非選択時にカーソル行(論理行)をコピーしない(※通常は行コピーする) <source lang="javascript"> if (Document.Selection.Text) Document.Selection.Copy(); </source> == コピー (行コピー時選択) == * 推奨割当「Ctrl + C」「Ctrl + Insert」 * 非選択時コピー(行コピー)時にコピーした範囲を選択する(※通常は範囲選択しない) <source lang="javascript"> Document.Selection.Copy(); if (Document.Selection.IsEmpty) Document.Selection.SelectLine(); </source> == コピーして選択範囲を解除 == * 推奨割当「Ctrl + C」「Ctrl + Insert」 * 選択範囲ありでコピーしたときは選択範囲を解除する (※通常は選択解除しない) <source lang="javascript"> document.selection.Copy(); document.selection.Collapse( meCollapseStart ); // 選択範囲の開始位置にカーソルを移動 // 選択範囲の始点にカーソルを移動させて解除するなら ( meCollapseStart ) // 選択範囲の終点にカーソルを移動させて解除するなら ( meCollapseEnd ) </source> <!-- 2018/10/08追加 (sukemaru) --> == すべて選択 (非スクロール) == * 推奨割当「Ctrl + A」 * すべて選択時にスクロールしない(※通常は文書の末尾までスクロールする) <source lang="javascript"> var sx = ScrollX, sy = ScrollY; //スクロール位置を記憶 Document.Selection.SelectAll(); ScrollX = sx; ScrollY = sy; //スクロール位置を復元 </source> == 選択範囲を解除 (非スクロール) == * 割り当て例「Esc」「Shift + Esc」など <br> ※ 通常、選択範囲の解除は「矢印キー」でもできるが、その場合カーソル位置まで画面がスクロールする <source lang="javascript"> var sx = ScrollX, sy = ScrollY; document.selection.Collapse( meCollapseEnd ); // 選択範囲の始点にカーソルを残して解除するなら ( meCollapseStart ) ScrollX = sx; ScrollY = sy; </source> <!-- 2018/10/08追加 (sukemaru) --> == 追加切り取り == * 割当例「Shift + Ctrl + X」など * クリップボードに追加する切り取り <source lang="javascript"> var cb = ClipboardData.GetData(); Document.Selection.Cut(); ClipboardData.SetData(cb + ClipboardData.GetData()); </source> == 追加コピー == * 割当例「Shift + Ctrl + C」など * クリップボードに追加するコピー <source lang="javascript"> var cb = ClipboardData.GetData(); Document.Selection.Copy(); ClipboardData.SetData(cb + ClipboardData.GetData()); </source> == 行を複製 == * 割当例「Ctrl + D」「Ctrl + Insert」など * カーソル行(論理行)を複製する <source lang="javascript"> Document.Selection.DuplicateLine(); </source> → 複数行を複製するばあいは、マクロ「[[行を複製 (複数行可)]]」<!-- 一文追加 (sukemaru) 2018/10/08 --> == 行を削除 == * 割当例「Ctrl + E」「Ctrl + Delete」など * カーソル行(論理行)を削除する <source lang="javascript"> Document.Selection.SelectLine(); Document.Selection.Delete(); </source> == 行頭まで/行末まで削除 == * 論理行の行頭/行末まで削除したい場合は <code>mePosView</code> を <code>mePosLogical</code> に書き換えてください * 割当例「Shift + BackSpace」など * カーソル位置から行頭(表示行)まで削除する <source lang="javascript"> with (Document.Selection) { SetAnchorPos(GetActivePos()); StartOfLine(true, mePosView); Delete(); } </source> * 割当例「Shift + Delete」など * カーソル位置から行末(表示行)まで削除する <source lang="javascript"> with (Document.Selection) { SetAnchorPos(GetActivePos()); EndOfLine(true, mePosView); Delete(); } </source> == 定型文をファイルから挿入 == * 割り当て例 [Ctrl + I」「Ctrl + @」など * 文書の雛形用の定型文や署名(連絡先、コピーライト)などのテンプレートを、別途用意したテキストファイルから取り込む * あらかじめ定型文用のテキストファイルを用意しておくこと → ref. [[マテリアルデザインっぽいアイコンと『小マクロ集』|『小マクロ集』]] の「[[マテリアルデザインっぽいアイコンと『小マクロ集』#定型文(署名)を追加|定型文(署名)を追加]]」 <source lang="javascript"> #title = "定型文を追加" #tooltip = "定型文をファイルから挿入" var file = "C:\\hoge\\Template.txt"; // 挿入するテキストファイルを "フルパス" で指定( \ は2つ重ね \\ にすること) document.selection.InsertFromFile( file, 0 ); // 0 は文字エンコードの「自動選択」 </source> 挿入したテンプレート部分の先頭にカーソルを移動させるなら以下のコード <source lang="javascript"> var file = "C:\\hoge\\Template.txt"; // 挿入するテキストファイルを "フルパス" で指定( \ は2つ重ね \\ にすること) var pos = document.selection.GetActivePos(); document.selection.InsertFromFile( file, 0 ); // 0 は文字エンコードの「自動選択」 document.selection.SetActivePos( pos ); // キャレットをマクロ開始前の座標に戻す </source> <!-- 2018/10/08追加 (sukemaru) --> == 括弧で挟む == * 割当例「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> → マクロ実行後のカーソル位置を'''選択範囲 なし''' のときと '''あり''' のときとで変えたいばあいは、マクロ「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (ポップアップメニューなし)]]」<!-- 一文追加 (sukemaru) 2018/10/08 --> == 逆インデント (単一行対応) == * 推奨割当「Shift + Tab」 * 複数行選択でない場合でも逆インデントする(※通常はタブ挿入) * 複数行選択でない場合は、カーソルの位置関係を維持します → マクロ「[[非選択状態でも逆インデント]]」 または下記のコード <source lang="javascript"> 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(); } </source> * 位置関係を維持しない(行選択する)場合は下記のコード <source lang="javascript"> if (!/\n/.test(Document.Selection.Text)) Document.Selection.SelectLine(); Document.Selection.UnIndent(); </source> == 日付と時刻 (メモ帳仕様) == * 推奨割当「F5」 * メモ帳のように「時刻 日付」の順で現在日時を挿入(※通常は「日付 時刻」の順) → マクロ「[[日付と時刻を挿入]]」 または下記のコード <source lang="javascript"> Document.Selection.InsertDate(meDateTimeDate); </source> == 上書き保存 (UAC対応) == * 推奨割当「Ctrl + S」 * UAC が必要な場合は権限昇格して保存 → マクロ「[[上書き保存(UAC対応)]]」 == 元に戻す == * 推奨割当「Ctrl + Z」 * 「元に戻す」実行時に,保存済みファイルと同じ内容のとき「変更マーク」を消す * 速度が気になる場合はサイズ制限の値を変更してください → マクロ「[[少し便利な_Undo/Redo]]」 == やり直し == * 推奨割当「Ctrl + Y」 * 「やり直し」実行時に,保存済みファイルと同じ内容のとき「変更マーク」を消す * 速度が気になる場合はサイズ制限の値を変更してください → マクロ「[[少し便利な_Undo/Redo]]」 == 上移動 (先頭行では行頭へ) == * 推奨割当「Up (↑)」 * 上の行がそれ以上存在しない場合は、行頭(文書の先頭)に移動する(※通常は移動しない) <source lang="javascript"> var sel = Document.Selection; if (sel.GetActivePointY(mePosView) > 1) { sel.LineUp(); } else { sel.StartOfDocument(); } </source> == 下移動 (最終行では行末へ) == * 推奨割当「Down (↓)」 * 下の行がそれ以上存在しない場合は、行末(文書の末尾)に移動する(※通常は移動しない) <source lang="javascript"> var sel = Document.Selection; if (sel.GetActivePointY(mePosView) < Document.GetLines(meGetLineView)) { sel.LineDown(); } else { sel.EndOfDocument(); } </source> == 対応する括弧に移動 == * 割当例「Ctrl + [ 」「Ctrl + ] 」など * カーソル右側に括弧がある場合、対応する括弧に移動する → マクロ「[[対応する括弧に移動]]」 == 行頭に移動 (インデント対応) == * 推奨割当「Home」「Shift + Home」 * インデント位置<カーソル位置の場合は、インデント位置に移動する * カーソル位置≦インデント位置の場合は、行頭に移動する → マクロ「[[行頭に移動]]」 == 文書の1/4上に/下に移動 == * 割当例「Ctrl + PageUp」など * 総表示行数の1/4分、上に移動する(最低4回の移動で文書頭に到達) <source lang="javascript"> Redraw = false; Document.Selection.LineUp(false, (Document.GetLines()/4)); Redraw = true; </source> * 割当例「Ctrl + PageDown」など * 総表示行数の1/4分、下に移動する(最低4回の移動で文書末に到達) <source lang="javascript"> Redraw = false; Document.Selection.LineDown(false, (Document.GetLines()/4)); Redraw = true; </source> == 選択範囲の始点終点を交替 == * 選択範囲の始点と終点(カーソル位置)を入れ替える <source lang="javascript"> with (Document.Selection) { var anp = GetAnchorPos(); var acp = GetActivePos(); SetActivePos(anp); SetAnchorPos(acp); } </source> == この文字列を検索 == * 「次/前の文字列を検索」時に移動しない(※通常は次/前に移動する) * 範囲選択時は選択文字列で、非選択時は単語選択してから検索を実行します <source lang="javascript"> 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; </source> = 標準の移動/選択操作 = カーソル移動や行頭/行末移動などは通常、キーアサインを変更することはできませんが、機能を再現したマクロにキーを割り当てることで実現できます。 * 範囲選択版は <code>false</code> を <code>true</code> に書き換えてください == 移動 - 上/下/左/右 == ;上移動 / 下移動 * 標準の割当「Up (↑)」/選択版の割当「Shift + Up (↑)」 <source lang="javascript"> Document.Selection.LineUp(false, 1); </source> * 標準の割当「Down (↓)」/選択版の割当「Shift + Down (↓)」 <source lang="javascript"> Document.Selection.LineDown(false, 1); </source> ;左移動 / 右移動 * 標準の割当「Left (←)」/選択版の割当「Shift + Left (←)」 <source lang="javascript"> Document.Selection.CharLeft(false, 1); </source> * 標準の割当「Right (→)」/選択版の割当「Shift + Right (→)」 <source lang="javascript"> Document.Selection.CharRight(false, 1); </source> == 移動 - 上頁/下頁/左単語/右単語 == ;1ページ上に移動 / 1ページ下に移動 * 標準の割当「PageUp」/選択版の割当「Shift + PageUp」 <source lang="javascript"> Document.Selection.PageUp(false, 1); </source> * 標準の割当「PageDown」/選択版の割当「Shift + PageDown」 <source lang="javascript"> Document.Selection.PageDown(false, 1); </source> ;左の単語に移動 / 右の単語に移動 * 標準の割当「Ctrl + Left (←)」/選択版の割当「Shift + Ctrl + Left (←)」 <source lang="javascript"> Document.Selection.WordLeft(false, 1); </source> * 標準の割当「Ctrl + Right (→)」/選択版の割当「Shift + Ctrl + Right (→)」 <source lang="javascript"> Document.Selection.WordRight(false, 1); </source> == 移動 - 行頭/行末/文書頭/文書末 == ;行頭に移動 / 行末に移動 (表示行) * 論理行の行頭/行末に移動したい場合は <code>mePosView</code> を <code>mePosLogical</code> に書き換えてください * 標準の割当「Home」/選択版の割当「Shift + Home」 <source lang="javascript"> Document.Selection.StartOfLine(false, mePosView); </source> * 標準の割当「End」/選択版の割当「Shift + End」 <source lang="javascript"> Document.Selection.EndOfLine(false, mePosView); </source> ;文書の先頭に移動 / 文書の末尾に移動 * 標準の割当「Ctrl + Home」/選択版の割当「Shift + Ctrl + Home」 <source lang="javascript"> Document.Selection.StartOfDocument(false); </source> * 標準の割当「Ctrl + End」/選択版の割当「Shift + Ctrl + End」 <source lang="javascript"> Document.Selection.EndOfDocument(false); </source> == 単語を選択 == * マウス操作「文字をダブルクリック」 * カーソル位置にある単語(連続する英数字/かな/カナ/漢字)を選択する <source lang="javascript"> Document.Selection.SelectWord(); </source> == 行を選択 (論理行/表示行) == * マウス操作「文字をトリプルクリック」 * カーソル行(論理行)を選択する(カーソルは次行行頭に移動) <source lang="javascript"> Document.Selection.SelectLine(); </source> * マウス操作「行番号をクリック」 * カーソル行(表示行)を選択する(カーソルは行頭に移動) <source lang="javascript"> with (Document.Selection) { EndOfLine(); if (Document.Text.charAt(GetActivePos())=="\n") SetAnchorPos(GetActivePos()+1); //行末が改行の場合、改行も含める StartOfLine(true); } </source> → 行末の改行を含めないなら、マクロ「[[マテリアルデザインっぽいアイコンと『小マクロ集』#論理行を選択する (改行を含まない) ※複数行可|論理行を選択する (改行を含まない)]]」/「[[マテリアルデザインっぽいアイコンと『小マクロ集』#表示行を選択する (改行を含まない)|表示行を選択する (改行を含まない)]]」<!-- 一文追加 (sukemaru) 2018/10/08 --> = ご意見・ご要望 = 何かありましたら,右の [編集] から追記してください.対応するかもしれません. * 行を上下に移動・複製 AtomやVisual Studio Codeにある、「Alt+↑/↓」で行を上下に移動、また「Alt+Shift+↑/↓」で上下に複製というのはできるでしょうか?自分で書いてみたところ論理行ではなく表示行のみが移動してしまいうまくいきませんでした。 なおAlt+矢印キーがMeryでは効かないことは存じておりますので、キーバインドは何か別のもの(Alt+U、Dとか)にする必要があると思います。 ---- * [[マテリアルデザインっぽいアイコンと『小マクロ集』|『小マクロ集』]]へのリンクと、マクロ「[[#定型文をファイルから挿入]]」「[[#コピーして選択範囲を解除]]」「[[#範囲選択を解除 (非スクロール)]]」を追加しました。<br>このページに不適切でしたら削除します。(2018/10/08 sukemaru)
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク