#title="秀丸インポート" #tooltip="秀丸エディタのキー割り当てをインポート" // ImportHidemaruKey.jsee // 秀丸エディタのキー割り当てを EmEditor にインポートします。 // December 9, 2007 by Yutaka Emura // for EmEditor Professional 7.00 or later // if( !confirm( "秀丸エディタの [その他] メニューの [キー割り当て] を選択し、[一覧表作成] ボタンをクリックして、KEY.TXT ファイルを作成し、EmEditor で開きます。KEY.TXT を EmEditor で開いて表示している状態で、このマクロを実行すると、現在の設定に秀丸エディタのキー割り当てをインポートします。継続してよろしいですか?" ) ){ Quit(); } if( document.Name != "KEY.TXT" ){ if( !confirm( "開いているファイルが KEY.TXT ではありません。KEY.TXT を開いて、アクティブの状態にしてから、このマクロを実行してください。本当に継続しますか?" ) ){ Quit(); } } bAllConfigs = confirm( "すべての設定にキーボードをインポートしますか? [キャンセル] をクリックすると、現在の設定のみにインポートします。" ); if( bAllConfigs ){ cfgs = new Enumerator( editor.Configs ); for( ; !cfgs.atEnd(); cfgs.moveNext() ){ cfg = cfgs.item(); SetKeys( cfg ); } } else { cfg = document.Config; SetKeys( cfg ); } alert( "インポートに成功しました。" ); function SetKeys( cfg ) { lst = cfg.Keyboard.List; nLines = document.GetLines( ); for( y = 1; y <= nLines; y++ ){ s = document.GetLine( y ); iEq = s.indexOf( " = " ); if( iEq != -1 ){ sKey = s.substr( 0, iEq ); sCmd = s.substr( iEq + 3 ); nKey = 0; nFlags = eeVirtualKey; // Virtual-key code nCmd = 0; iPlus = sKey.indexOf( "+" ); while( iPlus != -1 ){ sSubKey = sKey.substr( 0, iPlus ); switch( sSubKey ){ case "Alt": nFlags |= eeAlt; break; case "Shift": nFlags |= eeShift; break; case "Ctrl": nFlags |= eeCtrl; break; default: if( !confirm( "Unknown string: " + sSubKey ) ){ Quit(); } break; } sKey = sKey.substr( iPlus + 1 ); iPlus = sKey.indexOf( "+" ); } switch( sKey ){ case "F1": nKey = 0x70; break; case "F2": nKey = 0x71; break; case "F3": nKey = 0x72; break; case "F4": nKey = 0x73; break; case "F5": nKey = 0x74; break; case "F6": nKey = 0x75; break; case "F7": nKey = 0x76; break; case "F8": nKey = 0x77; break; case "F9": nKey = 0x78; break; case "F10": nKey = 0x79; break; case "F11": nKey = 0x7a; break; case "F12": nKey = 0x7b; break; case "Home": nKey = 0x24; break; case "Bksp": nKey = 0x08; break; case "Enter": nKey = 0x0d; break; case "Ins": nKey = 0x2d; break; case "Del": nKey = 0x2e; break; case "Left": nKey = 0x25; break; case "Up": nKey = 0x26; break; case "Right": nKey = 0x27; break; case "Down": nKey = 0x28; break; case "Tab": nKey = 0x09; break; case "Esc": nKey = 0x1B; break; case "Space": nKey = 0x20; break; case "PgUp": nKey = 0x21; break; case "PgDn": nKey = 0x22; break; case "Num0": nKey = 0x60; break; case "Num1": nKey = 0x61; break; case "Num2": nKey = 0x62; break; case "Num3": nKey = 0x63; break; case "Num4": nKey = 0x64; break; case "Num5": nKey = 0x65; break; case "Num6": nKey = 0x66; break; case "Num7": nKey = 0x67; break; case "Num8": nKey = 0x68; break; case "Num9": nKey = 0x69; break; case "Num*": nKey = 0x6A; break; case "Num+": nKey = 0x6B; break; case "Num.": nKey = 0x6E; break; case "Num-": nKey = 0x6D; break; case "Num/": nKey = 0x6F; break; case ",": nKey = 0xBC; // ,< break; case "<": nKey = 0xBC; // ,< nFlags |= eeShift; break; case ".": nKey = 0xBE; // .> break; case ">": nKey = 0xBE; // .> nFlags |= eeShift; break; case "[": nKey = 0xDB; // [{ for U.S. keyboard break; case "{": nKey = 0xDB; // [{ for U.S. keyboard nFlags |= eeShift; break; case "\\": nKey = 0xDC; // \| for U.S. keybaord break; case "|": nKey = 0xDC; // \| for U.S. keybaord nFlags |= eeShift; break; case "]": nKey = 0xDD; // ]} for U.S. keyboard break; case "}": nKey = 0xDD; // ]} for U.S. keyboard nFlags |= eeShift; break; case "/": nKey = 0xBF; // /? for U.S. keyboard break; case "?": nKey = 0xBF; // /? for U.S. keyboard nFlags |= eeShift; break; case ";": nKey = 0xBA; // ;: for U.S. keyboard break; case ":": nKey = 0xBA; // ;: for U.S. keyboard nFlags |= eeShift; break; case "=": nKey = 0xBB; // =+ break; case "+": nKey = 0xBB; // =+ nFlags |= eeShift; break; case "-": nKey = 0xBD; // -_ break; case "_": nKey = 0xBD; // -_ nFlags |= eeShift; break; case "'": nKey = 0xDE; // '" for U.S. keyboard break; case '"': nKey = 0xDE; // '" for U.S. keyboard nFlags |= eeShift; break; case "ホイールアップ": case "ホイールダウン": case "左ダブルクリック": case "左トリプルクリック": case "右クリック": case "中クリック": case "拡張1クリック": case "拡張2クリック": case "常駐秀丸エディタのダブルクリック": break; default: if( sKey.length == 1 ){ n = sKey.charCodeAt(); if( (n >= 0x41 && n <= 0x5A) ){ // 'A' - 'Z' nKey = n; } else if( n >= 0x30 && n <= 0x39 ){ // '0' - '9' nKey = n; } } if( nKey == 0 ) { if( !confirm( "Cannot convert string: " + sKey ) ){ Quit(); } } break; } if( -1 != sCmd.indexOf( "(標準の動作:" ) ) { nLen = sCmd.length; sCmd = sCmd.substr( 7, nLen - 8 ); } switch( sCmd ){ case "(なし)": nCmd = 0; break; case "新規作成": nCmd = 4096; break; case "開く...": nCmd = 4097; break; case "閉じて開く...": nCmd = 4098; break; case "ファイルを閉じる": nCmd = 4116; break; case "上書き保存": nCmd = 4099; break; case "上書き保存(改行=LF)": nCmd = 4107; break; case "名前を付けて保存...": nCmd = 4100; break; case "別ファイルへの追加保存": nCmd = 0; break; case "カーソル位置への読込み...": nCmd = 4108; break; case "印刷...": nCmd = 4114; break; case "保存して終了": nCmd = 4116; break; case "終了": nCmd = 4117; break; case "全保存終了": nCmd = 4118; break; case "全終了": nCmd = 4119; break; case "全保存": nCmd = 4101; break; case "全保存(更新ファイルのみ)": nCmd = 4101; break; case "破棄して終了": nCmd = 4120; break; case "ファイル名変更...": nCmd = 4252; break; case "...を開く": nCmd = 0; break; case "...を秀丸エディタで開く": nCmd = 0; break; case "バイナリモード": nCmd = 0; break; case "自動判定で読み込みしなおし": nCmd = 4279; break; case "日本語(Shift-JIS)": nCmd = 4263; break; case "Unicode(UTF-16)": nCmd = 4257; break; case "日本語(EUC)": nCmd = 4112; break; case "日本語(JIS)": nCmd = 4111; break; case "Unicode(UTF-7)": nCmd = 4259; break; case "Unicode(UTF-8)": nCmd = 4258; break; case "Unicode(UTF-16,Big-Endian)": nCmd = 4261; break; case "欧文": nCmd = 0; break; case "簡体字中国語(GB2312)": nCmd = 0; break; case "繁体字中国語(Big-5)": nCmd = 0; break; case "韓国語": nCmd = 0; break; case "韓国語(Johab)": nCmd = 0; break; case "中央ヨーロッパ言語": nCmd = 0; break; case "バルト語": nCmd = 0; break; case "ギリシャ語": nCmd = 0; break; case "キリル言語": nCmd = 0; break; case "シンボル": nCmd = 0; break; case "トルコ語": nCmd = 0; break; case "ヘブライ語": nCmd = 0; break; case "アラビア語": nCmd = 0; break; case "タイ語": nCmd = 0; break; case "ベトナム語": nCmd = 0; break; case "Macintosh": nCmd = 0; break; case "OEM/DOS": nCmd = 0; break; case "その他": nCmd = 0; break; case "改行=CR+LF": nCmd = 4105; break; case "改行=CR": nCmd = 4106; break; case "改行=LF": nCmd = 4107; break; case "エンコードの種類": nCmd = 4264; break; case "戻る": nCmd = 0; break; case "進む": nCmd = 0; break; case "ソース": nCmd = 0; break; case "Webブラウズモード": nCmd = 0; break; case "ソース/Webブラウズモード切り替え": nCmd = 0; break; case "FTPで開く...": nCmd = 0; break; case "FTPで名前を付けて保存...": nCmd = 0; break; case "HTTPで開く...": nCmd = 0; break; case "関連付けで開く": nCmd = 0; break; case "リンク先を名前を付けて保存...": nCmd = 0; break; case "指定行...": nCmd = 4139; break; case "カーソル上": nCmd = 4160; break; case "カーソル下": nCmd = 4161; break; case "カーソル右": nCmd = 4156; break; case "カーソル左": nCmd = 4157; break; case "高速上移動": nCmd = 4160; break; case "高速下移動": nCmd = 4161; break; case "単語右": nCmd = 4158; break; case "単語右(サルネン風)": nCmd = 4158; break; case "単語左": nCmd = 4159; break; case "単語の先頭に移動": nCmd = 4159; break; case "単語の最後に移動": nCmd = 4158; break; case "行頭に移動": nCmd = 4164; break; case "行末に移動": nCmd = 4166; break; case "行末に移動(その2)": nCmd = 4166; break; case "論理行頭に移動": nCmd = 4165; break; case "論理行末に移動": nCmd = 4167; break; case "ファイルの先頭": nCmd = 4168; break; case "ファイルの最後": nCmd = 4169; break; case "画面の先頭": nCmd = 4292; break; case "画面の最後": nCmd = 4293; break; case "最後に編集した所": nCmd = 4345; break; case "次ページ": nCmd = 4163; break; case "前ページ": nCmd = 4162; break; case "半次ページ": nCmd = 4163; break; case "半前ページ": nCmd = 4162; break; case "スクロールアップ": nCmd = 4163; break; case "スクロールダウン": nCmd = 4162; break; case "スクロールアップ(その2)": nCmd = 4163; break; case "スクロールダウン(その2)": nCmd = 4162; break; case "対応する括弧に移動": nCmd = 4276; break; case "{に移動": nCmd = 4276; break; case "}に移動": nCmd = 4276; break; case "前のカーソル位置": nCmd = 4345; break; case "下の強調行": nCmd = 0; break; case "上の強調行": nCmd = 0; break; case "現在行をマーク/マーク解除": nCmd = 4320; break; case "マーク一覧...": nCmd = 0; break; case "マーク行の下検索": nCmd = 4351; break; case "マーク行の上検索": nCmd = 4352; break; case "次の見出し": nCmd = 4415; break; case "前の見出し": nCmd = 4416; break; case "選択開始": nCmd = 4153; break; case "BOX選択開始": nCmd = 4155; break; case "すべてを選択": nCmd = 4136; break; case "コピー": nCmd = 4127; break; case "引用付きコピー": nCmd = 4130; break; case "貼り付け": nCmd = 4129; break; case "引用付き貼り付け": nCmd = 4132; break; case "貼り付け+履歴戻し": nCmd = 4129; break; case "クリップボード履歴...": nCmd = 0; break; case "BOX貼り付け": nCmd = 4129; break; case "切り抜き": nCmd = 4126; break; case "追加コピー": nCmd = 0; break; case "追加切り抜き": nCmd = 0; break; case "単語選択(全部)": nCmd = 4251; break; case "行の選択": nCmd = 4154; break; case "単語をコピー": nCmd = 0; break; case "行をコピー": nCmd = 4192; break; case "強調行の範囲選択": nCmd = 0; break; case "...をコピー": nCmd = 4140; break; case "削除": nCmd = 4135; break; case "行削除": nCmd = 4190; break; case "カーソルより後ろを削除": nCmd = 4191; break; case "カーソルより前を削除": nCmd = 4302; break; case "単語削除(カーソルから後ろ)": nCmd = 4275; break; case "単語削除(全部)": nCmd = 4194; break; case "単語削除(カーソルから前)": nCmd = 4280; break; case "バックスペース": nCmd = 4186; break; case "日付と時刻": nCmd = 4138; break; case "改行": nCmd = 4274; break; case "改ページ": nCmd = 0; break; case "タブ": nCmd = 0; break; case "行の二重化": nCmd = 4328; break; case "空行挿入": nCmd = 4196; break; case "制御コード入力...": nCmd = 4197; break; case "削除内容復元": nCmd = 4419; break; case "やり直し": nCmd = 4124; break; case "やり直しのやり直し": nCmd = 4125; break; case "CapsLockし忘れの是正": nCmd = 0; break; case "再変換": nCmd = 4199; break; case "大文字 <-> 小文字の変換": nCmd = 0; break; case "TO UPPER CASE": nCmd = 4149; break; case "to lower case": nCmd = 4150; break; case "ハンカクに変換": nCmd = 4151; break; case "全角ひらがなに変換": nCmd = 0; break; case "全角カタカナに変換": nCmd = 4152; break; case "英数字を半角に変換": nCmd = 0; break; case "英数字を全角に変換": nCmd = 0; break; case "カタカナのみ半角に変換": nCmd = 0; break; case "カタカナのみ全角に変換": nCmd = 0; break; case "TAB -> 空白 変換": nCmd = 4357; break; case "空白 -> TAB 変換": nCmd = 4356; break; case "インデント": nCmd = 4358; break; case "逆インデント": nCmd = 4359; break; case "変換": nCmd = 0; break; case "再読み込み": nCmd = 4109; break; case "閲覧モード切り替え": nCmd = 0; break; case "部分編集": nCmd = 0; break; case "部分編集解除": nCmd = 0; break; case "折りたたみ": nCmd = 4413; break; case "展開": nCmd = 4414; break; case "次の折りたたみ可能行": nCmd = 4415; break; case "前の折りたたみ可能行": nCmd = 4416; break; case "折りたたみ可能行の範囲選択": nCmd = 4417; break; case "全て折りたたみ...": nCmd = 4410; break; case "全て展開": nCmd = 4411; break; case "単語補完": nCmd = 0; break; case "単語補完候補1": nCmd = 0; break; case "単語補完候補2": nCmd = 0; break; case "単語補完候補3": nCmd = 0; break; case "検索...": nCmd = 4200; break; case "検索ボックス": nCmd = 4200; break; case "検索(上)...": nCmd = 0; break; case "単語の検索...": nCmd = 4204; break; case "下候補": nCmd = 4202; break; case "上候補": nCmd = 4203; break; case "置換...": nCmd = 4201; break; case "検索文字列の強調": nCmd = 0; break; case "検索文字列の取得": nCmd = 4325; break; case "検索開始位置へ戻る": nCmd = 0; break; case "下の編集マーク": nCmd = 0; break; case "上の編集マーク": nCmd = 0; break; case "編集マークのクリア": nCmd = 0; break; case "grepして置換...": nCmd = 4362; break; case "grepの実行...": nCmd = 4207; break; case "縦に並べる": nCmd = 4243; break; case "横に並べる": nCmd = 4242; break; case "重ねて表示": nCmd = 4241; break; case "並べて表示": nCmd = 4242; break; case "全部最小化": nCmd = 4244; break; case "ウィンドウ分割": nCmd = 4335; break; case "分割ウィンドウ切り替え": nCmd = 4214; break; case "同時スクロール...": nCmd = 0; break; case "他の秀丸エディタと内容比較...": nCmd = 0; break; case "次の内容比較": nCmd = 0; break; case "ウィンドウ一覧...": nCmd = 0; break; case "デスクトップ保存": nCmd = 4330; break; case "デスクトップ復元": nCmd = 4329; break; case "次の秀丸エディタ": nCmd = 4245; break; case "前の秀丸エディタ": nCmd = 4246; break; case "次の秀丸エディタ(最小化のも含む)": nCmd = 4245; break; case "前の秀丸エディタ(最小化のも含む)": nCmd = 4246; break; case "次のタブ": nCmd = 4245; break; case "前のタブ": nCmd = 4246; break; case "再描画": nCmd = 0; break; case "常に手前に表示": nCmd = 4239; break; case "タブモード": nCmd = 4342; break; case "このタブを分離": nCmd = 4391; break; case "このタブを最小化": nCmd = 4392; break; case "アウトライン解析の枠": nCmd = 0; break; case "アウトライン解析の枠切り替え": nCmd = 0; break; case "アウトライン解析の枠同期": nCmd = 0; break; case "見出しバー": nCmd = 0; break; case "折りたたみ用の余白": nCmd = 0; break; case "メニュー1:ファイル": nCmd = 0; break; case "メニュー2:C言語機能": nCmd = 0; break; case "メニュー3:Ctrl-Q": nCmd = 0; break; case "メニュー4": nCmd = 0; break; case "メニュー5": nCmd = 0; break; case "メニュー6": nCmd = 0; break; case "メニュー7": nCmd = 0; break; case "メニュー8:右ボタン": nCmd = 4301; break; case "マクロ1": nCmd = 9216; break; case "マクロ2": nCmd = 9217; break; case "マクロ3": nCmd = 9218; break; case "マクロ4": nCmd = 9219; break; case "マクロ5": nCmd = 9220; break; case "マクロ6": nCmd = 9221; break; case "マクロ7": nCmd = 9222; break; case "マクロ8": nCmd = 9223; break; case "マクロ9": nCmd = 9224; break; case "マクロ10": nCmd = 9225; break; case "マクロ11": nCmd = 9226; break; case "マクロ12": nCmd = 9227; break; case "マクロ13": nCmd = 9228; break; case "マクロ14": nCmd = 9229; break; case "マクロ15": nCmd = 9230; break; case "マクロ16": nCmd = 9231; break; case "マクロ17": nCmd = 9232; break; case "マクロ18": nCmd = 9233; break; case "マクロ19": nCmd = 9234; break; case "マクロ20": nCmd = 9235; break; case "マクロ21": nCmd = 9236; break; case "マクロ22": nCmd = 9237; break; case "マクロ23": nCmd = 9238; break; case "マクロ24": nCmd = 9239; break; case "マクロ25": nCmd = 9240; break; case "マクロ26": nCmd = 9241; break; case "マクロ27": nCmd = 9242; break; case "マクロ28": nCmd = 9243; break; case "マクロ29": nCmd = 9244; break; case "マクロ30": nCmd = 9245; break; case "マクロ31": nCmd = 9246; break; case "マクロ32": nCmd = 9247; break; case "マクロ33": nCmd = 9248; break; case "マクロ34": nCmd = 9249; break; case "マクロ35": nCmd = 9250; break; case "マクロ36": nCmd = 9251; break; case "マクロ37": nCmd = 9252; break; case "マクロ38": nCmd = 9253; break; case "マクロ39": nCmd = 9254; break; case "マクロ40": nCmd = 9255; break; case "マクロ41": nCmd = 9256; break; case "マクロ42": nCmd = 9257; break; case "マクロ43": nCmd = 9258; break; case "マクロ44": nCmd = 9259; break; case "マクロ45": nCmd = 9260; break; case "マクロ46": nCmd = 9261; break; case "マクロ47": nCmd = 9262; break; case "マクロ48": nCmd = 9263; break; case "マクロ49": nCmd = 9264; break; case "マクロ50": nCmd = 0; break; case "マクロ51": nCmd = 0; break; case "マクロ52": nCmd = 0; break; case "マクロ53": nCmd = 0; break; case "マクロ54": nCmd = 0; break; case "マクロ55": nCmd = 0; break; case "マクロ56": nCmd = 0; break; case "マクロ57": nCmd = 0; break; case "マクロ58": nCmd = 0; break; case "マクロ59": nCmd = 0; break; case "マクロ60": nCmd = 0; break; case "マクロ61": nCmd = 0; break; case "マクロ62": nCmd = 0; break; case "マクロ63": nCmd = 0; break; case "マクロ64": nCmd = 0; break; case "マクロ65": nCmd = 0; break; case "マクロ66": nCmd = 0; break; case "マクロ67": nCmd = 0; break; case "マクロ68": nCmd = 0; break; case "マクロ69": nCmd = 0; break; case "マクロ70": nCmd = 0; break; case "マクロ71": nCmd = 0; break; case "マクロ72": nCmd = 0; break; case "マクロ73": nCmd = 0; break; case "マクロ74": nCmd = 0; break; case "マクロ75": nCmd = 0; break; case "マクロ76": nCmd = 0; break; case "マクロ77": nCmd = 0; break; case "マクロ78": nCmd = 0; break; case "マクロ79": nCmd = 0; break; case "マクロ80": nCmd = 0; break; case "マクロ実行...": nCmd = 4217; break; case "挿入/上書き切り替え": nCmd = 4142; break; case "記録開始/記録終了": nCmd = 4216; break; case "再生": nCmd = 4217; break; case "キー操作の保存...": nCmd = 4346; break; case "キー操作の読込み...": nCmd = 4347; break; case "外部ヘルプ": nCmd = 0; break; case "外部ヘルプ2": nCmd = 0; break; case "外部ヘルプ3": nCmd = 0; break; case "MSDNライブラリ": nCmd = 0; break; case "タグジャンプ": nCmd = 4147; break; case "ダイレクトタグジャンプ": nCmd = 4147; break; case "バックタグジャンプ": nCmd = 0; break; case "アウトライン解析...": nCmd = 0; break; case "tagsファイルの作成...": nCmd = 0; break; case "かな漢モードの切り替え": nCmd = 0; break; case "かな漢への単語登録": nCmd = 0; break; case "フリーカーソルモード": nCmd = 0; break; case "文字コード表示": nCmd = 4213; break; case "行番号表示/非表示": nCmd = 0; break; case "前の操作のくり返し": nCmd = 0; break; case "秀丸エディタヘルプ": nCmd = 4247; break; case "マクロヘルプ": nCmd = 4360; break; case "上書き禁止": nCmd = 4113; break; case "プログラム実行...": nCmd = 0; break; case "縦書きモード": nCmd = 0; break; case "段組モード": nCmd = 0; break; case "ウィンドウ幅で折り返し": nCmd = 4210; break; case "固定幅で折り返し": nCmd = 4209; break; case "最大幅で折り返し": nCmd = 4208; break; default: if( !confirm( "Unknown command: " + sCmd ) ){ Quit(); } break; } if( nCmd != 0 ){ if( nKey != 0 ){ lst.Add( nKey, nFlags, nCmd ); } } } } cfg.Save(); }