「Windows の操作を emacs のキーバインドで行うための設定 (Keyhac版)」の編集履歴(バックアップ)一覧はこちら

Windows の操作を emacs のキーバインドで行うための設定 (Keyhac版)」の最新版変更点

追加された行はこの色になります。

削除された行はこの色になります。

 &bold(){【お知らせ】}
 ----
 
 &bold(){<2016/10/28 追記>}
 本設定を公開して4年が経過しようとしています。その間改善を続け、Keyhac の config で XKeymacs の代わりになるものを実現するという当初の目標は概ね達成できたのではないかと思っています。そこで、本設定にニックネームを付けることとしました。
  nickname: fakeymacs
 今後も末永くご利用いただければと思います。
 
 &bold(){<2016/09/15 追記>}
 ESC を素の ESC として使いたい場合は、use_esc_as_meta 変数を False に設定してください。
 C-v をペーストとして使いたい場合は、scroll_key 変数を None に設定してください。
 その他のカスタマイズ設定については、configure 関数の初めの方でカスタマイズ用の変数の設定をしていますので、そのコメントを参照してください。
 
 ----
 
 &bold(){<2017/10/17 追記>}
 リージョンを解除する機能を使うかどうかを指定する変数(変数名は use_region_reset。初期値は True)を追加しました。設定を False とすることにより、以前と同じ動きとなります。リージョンを解除する機能は Windows ショートカットへの割り当てがないため、カーソルキーを動かすことで代替しています。この代替の方法で概ね問題なく機能するようにはしてみましたが、完全な機能の実現は難しいため、変数で ON/OFF を切り替えれるようにしました。なお、変数設定箇所のコメントにも記載しましたが、リージョンを解除する機能は、リージョンをキーボードで指定した場合のみ利用可能です。
 
 &bold(){<2017/10/16 追記>}
-リージョンを解除する設定の実施の伴い、M-w ではリージョンを解除する設定に変更となっていますが、C-c(コピー)では従来通りリージョンを解除しない設定に見直しました。
+リージョンを解除する機能の追加に伴い、M-w ではリージョンを解除する設定に変更となっていますが、C-c(コピー)では従来通りリージョンを解除しない設定に見直しました。
 
 &bold(){<2017/10/14 追記>}
 リージョンを解除する機能を追加しました。
 
 &bold(){<2017/10/12 追記>}
 window_switching_key を None に設定した場合(タスク切り替え画面の起動を A-Tab で行う場合)でも、タスク切り替え画面内で A-p、A-n キーによる画面移動を可能としました。
 
 &bold(){<2017/08/23 追記>}
 Excel のファイルを開いた直後一回目、kill_emacs が正常に動作しません。Keyhac 内部で発生している問題のようですが、回避策がありましたのでその対策を行いました。
 
 &bold(){<2017/06/22 追記>}
 ちょっと邪道との思いはあったのですが、word_register_key 変数に設定したキーにより IME の「単語登録」プログラムが起動するように対応しました。「単語登録」プログラムの起動は、IME のショートカットの設定によっても対応できるのですが、mozc_emacs_helper.exe を使って NTEmacs 等の emacs 上で日本語入力している際にはこの IME のシートカットが有効とならないため、Keyhac 側で対応することとしました。Keyhac 側で対応したことにより、以下の設定で動かす emacs からでも利用することができます。
 ・[[BUW で emacs を使うための設定]]
 キーの初期設定は、C-] とし、起動する「単語登録」プログラムは「Google 日本語入力」のものとしています。単語登録したい単語(文でも OK)を選択もしくはグリップボードにコピー(emacs はこちらの対応が必要)してから C-] を押下することで、容易に単語登録ができるようになります。IME のショートカットを利用した方法ではないため、英数直接入力モードの場合でも単語登録を行うことができます。
 設定の中で「単語登録」プログラムを「MS-IME」のものに変更することもできるようにしていますが、こちらは IME のショートカットから起動した場合と動きが異なり、選択した単語の初期表示が行われないようです。IME に「MS-IME」を使うということであれば、mozc_emacs_helper.exe を利用していないと思われますので、その際は IME のシートカットから「単語登録」プログラムを起動するように設定することをお勧めします。
 なお、この機能が不要な場合は word_register_key 変数に None を設定してください。機能が無効となります。
 
 &bold(){<2017/05/24 追記>}
 間違った数引数の指定により発生するコマンドのリピートが止まらなくなる事故を防ぐため、コマンドのリピート回数の最大値を指定できるようにしました。初期値は 1024 にしています。
 
 &bold(){<2017/05/16 追記>}
 cmd.exe と powershell.exe についても、C-n、C-p、C-w、M-w、C-k、C-s、C-r 辺りのキー(C-s、C-r が使えるのは Powershell のみ)は利用できるように対応しました。但し、powershell.exe では起動直後に C-w や C-k で切り取りをした際や、以降でも行の最終カラムで C-k を入力した際などにエラーとなります。これは既知の問題のようでもあり対策できていません。(Keyhac を利用していない状態でも、C-a -> C-x で再現します。)
 ・https://github.com/lzybkr/PSReadLine/issues/509
 なお、範囲選択(リージョン指定)ができない場合は、プロパティの設定にある「テキスト選択を拡張する」が OFF になっている可能性があります。確認ください。
 
 &bold(){<2017/05/16 追記>}
 not_clipboard_target 変数で、clipboard 監視の対象外とするアプリケーションソフトを指定できるように対応しました。
 
 &bold(){<2017/04/12 追記>}
 firefox で Googleカレンダーを使う際、ポップアップした予定入力画面で日本語入力をし Enter で変換を確定すると、ポップアップしている画面が閉じてしまうようです。Chrome では発生しません。影響を及ぼしている設定箇所は分かったのですが、その設定箇所を無効とはしたくないため、設定の変更は行わないこととします。日本語入力の変換の確定を C-m で行えばこの現象を回避できますので、この方法でご利用ください。よろしくお願いします。
 
 &bold(){<2017/03/16 追記>}
 Microsoft Excel や Word などの Office系アプリを使ってコピー&ペーストをした際、「Ctrl」と表示される「貼り付けオプション」ボタンが表示される場合があります。これが emacs キーバインドで利用している Ctrl キーの押下を検知して、想定外の動きをしてしまうようです。今のところ、本設定での対策は難しいと思っておりますので(Ctrl をモディファイアキーとして使わない方法は考えられますが、影響が大きい)、以下のページで紹介している&u(){「貼り付けオプション」ボタンを消す対応}で回避してください。よろしくお願いします。
 ・http://ciao.aoten.jp/ciao/2015/03/word-54e8.html
 
 &bold(){<2017/03/10 追記>}
 本設定をカスタマイズして Mac版を公開された方がいらっしゃいます。私は Mac を使わないので使用感が分からないのですが、Mac をお使いの方は是非お試しください。
 ・https://github.com/hiroxy/keyhac-config
 
 &bold(){<2016/11/16 追記>}
 「【認識はしているが対策できていない課題】」のところに記載していましたが、新しめのバージョンの Excel を使っているとクリップボードに関連する競合エラーが発生します。Excel の問題と思い放置していましたが、あまりにも不便なので対策を行ってみました。この対策により、Excel ではクリップボードリストへのクリップボードの記録が行われなくなっています。
 
 &bold(){<2016/10/12 追記>}
 IME を 「Google 日本語入力」とし、プロパティの「キー設定」を「ことえり」にすると、C-i(文節を縮める)、C-o(文節を伸ばす)、C-j(ひらがなに表示切替)、C-k(全角カタカナに表示切替)、C-l(全角英数に表示切替)、C-;(半角に表示切替)が近い位置(io と jkl; はそれぞれ横並びの位置)のキーに設定され、emacs日本語入力モードで有効としているキーとも被らない設定となるので、具合が良いです。(被らない設定となるのは、「ことえり」が emacsキーバインドをベースとしたキー設定となっており、emacs日本語入力モードで有効としているキーが 「ことえり」でも同じ目的のキーの設定となっているためです。またこのことは、本設定により emacsキーバインドを有効としていないアプリケーションソフトで日本語入力する場合でも emacsキーバインドを使えるということにもなります。)
 ・https://www.google.co.jp/ime/
 ・http://little-beans.net/howto/google-jinput-win10/
 もし、Windows の emacs で「[[emacs-mozc を動かすための設定(emacs 設定編)]]」を利用されている場合は、リンクの先のページの <2016/09/13 追記> の内容も確認をお願いします。
 
 &bold(){<2016/06/04 追記>}
 以前に一度 akinosign というソフトを紹介し、その後 Windows 7 でクリップボードリストとの相性問題が発生することが分かったため紹介を取りやめていましたが、Windows 10 ではこの問題が発生しないようですので改めて紹介します。Windows 10 を利用されている方は是非お試しください。
 ・http://win8app.vector.co.jp/index.php?A=774
 ・http://akinoware.blogspot.jp/2013/03/akinosign-ver202.html
 
 &bold(){<2016/05/18 追記>}
 use_emacs_ime_mode 変数の設定により、emacs日本語入力モードを使うかどうかを指定できるようにしました。emacs日本語入力モードは、IME が ON の時に文字(英数字かスペースを除く特殊文字)を入力すると起動するモードです。(モードに入ると、▲のマークが表示されます。) emacs日本語入力モードになると、以下のキーのみが emacsキーバインドとして利用でき、その他のキーは Windows にそのまま渡されるようになります。このため、以下のキー以外は IME のショートカットキーとして利用することができるようになります。
 ・emacs日本語入力モードで使える emacsキーバインドキー
  ・C-[
  ・C-b、C-f
  ・C-p、C-n
  ・C-a、C-e
  ・C-h
  ・C-d
  ・C-m
  ・C-g
  ・scroll_key 変数で指定したスクロールキー
  ・toggle_emacs_ime_mode_key 変数で指定したキー(emacsキーバインド用のキーではないが、emacs日本語入力モードを切り替えるキー)
 emacs日本語入力モードは、以下の操作で終了します。
  ・Enter、C-m または C-g が押された場合
  ・[半角/全角] キー、A-` キーが押された場合
  ・BS、C-h 押下直後に toggle_input_method_key 変数で指定したキーが押された場合(間違って日本語入力をしてしまった時のキー操作を想定しての対策)
  ・toggle_emacs_ime_mode_key 変数で指定したキーが押された場合
 利用する上での注意点としては、日本語入力を上記に記載している「emacs日本語入力モードを終了する操作」(Enter や C-g などの押下)で終えないと、emacs日本語入力モードが終了しないことです。例えば、文字を入力し BSキーで入力した文字を消したり Esc でキャンセルしたりすると日本語入力中ではなくなりますが emacs日本語入力モードは終了していません。この場合は、C-g を押下することで明示的に emacs日本語入力モードを終了させる必要があります。(BS、C-h 押下直後に toggle_input_method_key 変数に設定されているキーが押された場合についても、emacs日本語入力モードを終了させるようにしています。半角文字を入力するつもりで間違って日本語入力をしてしまった場合、BS、C-h で入力した文字を削除した後に IME を OFF にする操作をすることが想定されるため、その対策です。) 逆に、変換候補表示中に C-g を押下すると、日本語入力が終了していな状態でも emacs日本語入力モードが終了してしまいます。変換候補表示をキャンセルする場合には Esc を使うようにし、C-g と使い分けて利用するようにしてください。
 なお、この機能を追加したことより、C-S-[a-z] -> C-[a-z]、A-S-[a-z] -> A-[a-z] の置き換えの機能(emacsシフトモード)を使うかどうかを use_emacs_shift_mode 変数で指定できるようにし、初期値を False(使わない)にしました。emacs日本語入力モードが気に入らない場合(emacs日本語入力モードは日本語の入力中の状態をシステム的に判定できている訳ではありませんので、どうしても想定外の動作が発生することがあります)、代わりにこちらの機能を有効にすることもできます。
 
 これで、Windows のキーを直接的に入力する方法は以下の5とおりとなっています。
 + 本設定で置き換えしていないキーを入力する。(置き換えしていないので、入力したキーがそのまま Windows に渡される。C-c など。)
 + side_of_ctrl_key 変数や side_of_alt_key 変数で設定した側でない Ctrlキーや Altキーと組み合せたキーを入力する。
 + C-q を入力した後にキーを入力する。(C-q の後に入力したキーが Windows に入力される。)
 + (use_emacs_ime_mode 変数が True の場合) emacs日本語入力モード時に、C-[、C-b、C-f、C-p、C-n、C-a、C-e、C-h、C-d、C-m、C-g、scroll_key 変数で指定したスクロールキー、toggle_emacs_ime_mode_key 変数で指定したキー以外のキーを入力する。
 + (use_emacs_shift_mode 変数が True の場合) Ctrlキー + [a-z] と Altキー + [a-z] の入力に限るが、Shiftキー(S-)と併せて入力する。(S- をとったキーが Windows に入力される。)
 
 &bold(){<2016/04/29 追記>}
 アクティブウィンドウを切り替えるキーを指定する window_switching_key 変数の初期値を変更しました。A-p、A-n は NTEmacs の shell-mode 等で使うキーであるため、window_switching_key 変数の設定は A-S-p、A-S-n を使う設定としていましたが、NTEmacs で A-S-p、A-S-n が A-p、A-n の代替として使えることが分かりましたので、利用頻度を考え、window_switching_key 変数を shift 無しのキー設定(A-p、A-n)に変更しました。
 
 &bold(){<2016/03/28 追記>}
 ウィンドウ操作関数での動作に統一性を持たせるため、操作対象とするウィンドウのリストを getWindowList 関数で生成し、その生成したウィンドウリストに対して操作を行うように処理を変更しました。getWindowList 関数によるウィンドウリストの生成結果はランチャーリスト(A-l で起動)で表示されるものと(<Desktop> 行以外は)一緒ですので、もし操作対象とすべきでないウィンドウ(非表示のウィンドウなど)がリスト含まれている場合には、getWindowList 関数内で調整してください。
 
 &bold(){<2015/11/09 追記>}
 redo をサポートしてみました。undo キー(C-x u や C-/)で undo している時に、C-g を押下すると 以降の動作が redo に切り替わります。その後は、C-g を押すごとに undo と redo をトグルする動きとなります。
 なお、redo は Windows に C-y キーを発行することで実現しているのですが、アプリケーションソフトによっては、C-y をサポートしていません。(NotePad など。)このため、このようなソフトで redo に移行すると、undo キーを押してもだんまりとなる場合があります。この場合は再度 C-g を押すことで復帰してください。(undo キー と C-g 以外のキーを入力することでも、undo のモードに復帰します。)また、アプリケーションソフト単位で redo の動作を無効にすることができます。undo 関数の中で行っていますので、必要であれば設定を追加してください。(初期設定では、NotePad を登録しています。)
 
 &bold(){<2015/10/31 追記>}
 Keyhac のクリップボードリスト画面で migemo 検索を可能とするためには、辞書ファイルを登録する必要があります。次の URL の説明が参考となります。(dictフォルダの中をすべてコピーするのではなく、dict/utf-8 の中のファイルをコピーするところがポイントです。また、migemo 検索するには、検索文字列の一文字目を大文字で指定する必要があります。)
 ・http://blog.livedoor.jp/ryman_trainee/archives/1042315792.html
 
 &bold(){<2014/10/17 追記>}
 検索の繰り返し機能をサポートしました。C-g 等のコマンド入力で、検索のやり直しが可能です。検索の繰り返しは F3キー で行っているのですが、F3キーをサポートしていないアプリがあるため、繰り返し検索時にダンマリとなることがあります。その際は、C-g を押下後、C-s や C-r で検索を再開し、Windows の割当キー(Enter 等)を使って検索の繰り返しを行ってください。
 
 &bold(){【認識はしているが対策できていない課題】}
 ----
 
 ・仮想デスクトップでの利用を踏まえ、ウィンドウの最小化は現在のデスクトップ内に表示しているウィンドウに対してのみ行われるようにしているが、最小化しているウィンドウのリストアは複数のデスクトップに渡って行われてしまう。
 ・TeraPad の行末削除ができない。(対策は不可能と思われますので、C-d をお使いください。)
 ・キーボードマクロで記録した操作を Ctl-x e で再生する場合、数引数を指定して再生すると、再生により表示される文字列に「e」の文字が混入する場合がある。Keyhac 内部で発生している問題と思われ、本設定での対策は不可能と思われます。
 ・powershell.exe では起動直後に C-w や C-k で切り取りをした際や、以降でも行の最終カラムで C-k を入力した際などにエラーとなる。これは既知の問題のようでもあり対策できていない。(Keyhac を利用していない状態でも、C-a -> C-x で再現する。)
 
 
 &bold(){【本題】}
 ----
 
 Windows の操作を emacs のキーバインドで行うための設定(Keyhac版)です。以下の URL から config ファイルをダウンロードしてお使いください。
 ・https://github.com/smzht/fakeymacs
 
 Keyhac for Windows ver 1.75 以上で動作する設定となっています。
 ・https://sites.google.com/site/craftware/keyhac-ja
 
 Keyhac を起動後、タスクトレイのアイコンを右クリックし、「設定の編集」で config.py もしくは config_light.py の内容をコピペした後「設定のリロード」を行ってください。
 
 ----
 
 本設定は「Google 日本語入力」と一緒に利用するのがお勧めです。詳しくは、本ページの &bold(){<2016/10/12 追記>} の内容を参照してください。
 
 Windows 7 から Windows 10 へアップデート後、Edge やコルタナなどで Google 日本語入力が利用できない場合は、以下を参照してください。
 ・https://productforums.google.com/forum/#!topic/ime-ja/5CCIenG_0Zw
 ・https://productforums.google.com/forum/#!topic/ime-ja/xBJLDHyJVw0
 
 ----
 
 Keyhac は xkeymacs と異なり、IME による日本語入力中であることを判定することができません。このため、日本語入力中に IME の変換操作を行う方法として、以下の3つの方法を提供しています。
 
 &bold(){1) emacs日本語入力モード (利用するかは use_emacs_ime_mode 変数で設定。初期値:True(使う))}
 
 IME が ON の時に文字(英数字か、スペースを除く特殊文字)を入力すると起動するモードです。(モードに入ると、▲のマークが表示されます。) emacs日本語入力モードになると emacsキーバインドとして利用できるキーが限定され、その他のキーは Windows にそのまま渡されるようになるため、IME のショートカットキーを利用できるようになります。詳しい仕様は、本ページの初めの方にある &bold(){<2016/05/18 追記>} の内容を参照ください。
 
 &bold(){2) emacsシフトモード (利用するかは use_emacs_shift_mode 変数で設定。初期値:False(使わない))}
 
 本設定のキーバインドと IME のショートカットキーが被って設定されている場合、日本語入力中にそのキーを Shiftキーと一緒に押すことで IME のショートカットキーを利用できるようになるモードです。このモードを Windows 8 以降の OS で利用する場合には、次の設定を行う必要があるようです。
 ・http://did2memo.net/2013/11/08/windows-8-disable-hotkey-change-atok-ms-ime/
 
 &bold(){3) その他の方法 (本設定の仕様としてデフォルトで利用可能)}
 
 ・本設定で置き換えしていないキーを入力する。(但し、Ctrl とアルファベットを組み合わせたキーは、ほぼ全て置き換えがされています。)
 ・side_of_ctrl_key 変数や side_of_alt_key 変数で設定した側でない Ctrlキーや Altキーと組み合わせたキーを使う。
 ・入力するキーに先行して C-q を入力する。(emacs日本語入力モードを使っていない場合に有効な方法です。)
 
 ----
 
 CapsLockキー への Ctrlキー の割当ては、次の URL にある KeySwap というソフトが便利です。
 ・http://www.vector.co.jp/soft/winnt/util/se228667.html
 
 side_of_ctrl_key 変数を "R"(右)とし、CapsLockキーに RCtrlキーを割り当てることで、LCtrlキーで利用可能な Windowsショートカットキーとの共存が容易になると思います。(RCtrlキーも Windowsショートカット用のキーとして使いたい場合は、RCtrlキーに LCtrlキーを割り当てる必要があります。)
 
 また、Altキーは親指で操作できる場所にキーを割り当てると使い勝手が良いように思います。
 
 ----
 <変更履歴>
 ・2012/11/02 C-o をIMEの切替の設定とした。
 ・2012/11/02 C-k を C-u と連携可能とした。
 ・2012/11/05 C-u の対応を強化した。
 ・2012/11/06 マークの方法を見直した。
 ・2012/11/26 キーボードマクロに対応した。
 ・2012/11/30 Eclipse の ClassName が間違っていたのを訂正した。( SWT_Windows0 -> SWT_Window0 )
 ・2013/07/20 keyhac ver 1.60(Python3系)でも動くスクリプトに修正した。
 ・2013/07/25 C-x o ( other_window : 一つ前にフォーカスがあったウインドウに移動する)が正常に機能するように対策した。
 ・2013/07/28 無効とするアプリケーションソフトに xyzzy を追加した。
 ・2013/07/28 input method の切り替えだけができる設定の仕組みを追加した。
 ・2013/08/19 キーバインドを設定するアプリケーションソフトの指定方法にプロセス名も使えるように設定を追加した。
 ・2013/08/19 Sakura Editor のみ C-l に対応した。
 ・2014/04/22 除外するアプリケーションソフトの指定方法等を processname で指定する方法にまとめた。
 ・2014/06/02 前置引数付きで行削除した場合の動作に不具合があったので修正した。また、数点の改善を行った。
 ・2014/09/17 repeat関数内にreset関数のコードとダブる部分があったので改善した。(機能の変更はない)
 ・2014/09/30 「[[emacs で指定したファイルを eclipse で開くための設定]]」と連携するため、eclipse.exe の除外設定を解除(コメント化)した。
 ・2014/10/07 ワードを操作するコマンドを追加した。
 ・2014/10/14 キーボードマクロの実行処理に不具合(デグレード)が発生していたので修正した。
 ・2014/10/15 左の Ctrlキー と Altキー のみを emacs用のキー として使う様にし、左のキーは Windows のショートカットキー用として使えるようにした。
 ・2014/10/15 仮想キーコードの指定方法を10進から16進に変更し、一部指定コードの見直しを行った。
 ・2014/10/07 検索の繰り返し機能をサポートした。
 ・2014/10/18 数引数による数字の繰り返し入力をサポートした。"C-u 数字 C-u 数字" で対応可能。
 ・2014/10/18 キーボードマクロの記録後の C-x 削除処理に改善点があったので修正した。
 ・2014/10/18 IME 切替時に現在の IME の状態を balloonヘルプ で表示するようにした。
 ・2014/10/19 quoted-insertコマンド(C-q)で利用可能なキーに Ctrl-Shift-<*>キー と Alt-Shift-<*>キー を追加した。
 ・2014/10/19 数引数の指定に Ctrl と Meta を利用できるようにした。
 ・2014/10/21 キーボードマクロ実行時は、IME の状態表示バールーンを表示しないようにした。
 ・2014/10/30 スクリプトのコメントを追記した。機能に変更はありません。
 ・2014/11/24 Emacs 利用時に角/全角」(日本語キーボード用)と Alt-`(英語キーボード用)を C-\ に置き換える設定(オプション)を追加した。
 ・2014/11/26 「半角/全角」(日本語キーボード用)と Alt-`(英語キーボード用)押下時に toggle_input_method 関数をコールするようにした。
 ・2014/12/03 Emacs 利用時に C-\ に置き換えるキーを追加した。(但し、「if 0」でデフォルト無効とした。)また、普段英語キーボードを使っているため確認が甘かった部分を、日本語キーボードを接続して確認・調整した。
 ・2014/12/05 日本語キーボードで C-o による IME の切り替えを素早く2回行おうとした際、「ファイルを開く..」のダイアログが開くことがあったのでこれを改善した。
 ・2015/01/21 「「IMEの切替え」のキー設定」の箇所の keymap_im の設定で、「(244)」のキーの設定が漏れていたのを追加した。
 ・2015/01/22 IME 切替時の balloonヘルプ の表示で、半角英数直接入力の表示内容を「[_A]」から「[A]」に変更した。
 ・2015/02/23 日本語キーボード用に Ctrl+@ の対応を行った。
 ・2015/02/26 mark_whole_buffer() と mark_page() を Excel 以外の時は C-Home -> C-a として機能するように変更した。
 ・2015/03/11 Excel については個別に検索の繰り返しをサポートした。
 ・2015/03/12 kill_ring_save を実行した際、Excel 以外では ESC も発行していたが、これを Sakura Editor の時のみに限定した。
 ・2015/07/04 Emacs のキー設定(オプション)に「英数キー」を追加した。
 ・2015/07/05 「C-k, A-d, C-BSなど範囲選択後に切り取りをするスクリプトのタイミング依存の問題」について対策した。
 ・2015/07/17 backward_kill_word、kill_word、kill_line コマンドの repeat の指定方法を変更した。
 ・2015/07/23 2015/07/17 の修正においてデグレ(Microsoft Word で kill_line を利用した際の不具合)が発生していた。これを修正した。
 ・2015/09/18 LC-Underscore が正常に機能していなかったので対策した。併せて、日本語キーボードか英語キーボードかの指定方法を変更した。(スクリプトの最初の方にある is_japanese_keybord という変数の設定で切り替えるように対応した。)
 ・2015/09/18 LC-Atmark の指定方法を変更した。
 ・2015/10/11 C-[a-z]キーを Shiftキーと一緒に押した時は、Shiftキーをとったキー(C-[a-z])が Windows に入力される設定を追加した。
 ・2015/10/20 キーボードマクロの繰り返し実行(C-u を付けての実行)にバグがあったので対策した。
 ・2015/10/31 クリップボードリストでの検索機能を実装した。
 ・2015/11/01 クリップボードリストでの検索機能の実装を改善した。
 ・2015/11/02 クリップボードリストを拡張する設定の説明を追加した。
 ・2015/11/04 クリップボードリストとは別に、LA-l で起動するランチャーリストを作成した。
 ・2015/11/04 コードの一部リファクタリングを行った。
 ・2015/11/06 クリップボードリストとランチャーリストの項目の横幅を決めるダミー行の設定方法を変更した。
 ・2015/11/09 redo をサポートしてみた。
 ・2015/11/15 other_window(C-x o)が Windows8 以降の OS で動かなかったのを対策した。
 ・2015/11/15 クリップボードリストの機能を emacs キーバインドを適用していないアプリケーションソフトでも利用できるようにする機能を追加した。
 ・2015/11/15 ランチャーリストに現在開いているウィンドウを選択する機能を追加した。
 ・2015/11/15 リファクタリングを実施した。また、設定を一つに固め、設定を取り込みやすくした。
 ・2015/11/17 ランチャーリストの設定にある getWindowList 関数にて、ランチャーリストに載せたくないアプリケーションソフトを正規表現で指定できるようにした。
 ・2015/11/19 other_window と popWindow 関数で、setForeground 関数を呼ぶ前に getLastActivePopup 関数を呼ぶようにした。
 ・2015/11/20 ランチャーリストの Window リストにデスクトップを表示するための項目を追加した。また、ランチャーリストでフォーカスのあるウィンドウがなくなった際のエラー対策を追加した。
 ・2015/11/20 switch_to_buffer(C-x b)と query_replace(M-%)をサポートした。
 ・2015/11/21 shell_command(M-!)をサポートした。
 ・2015/11/22 keymap.command_ShellExecute 関数の第二引数を raw文字列での指定方法に統一して変更した。
 ・2015/11/27 ランチャーリストのウィンドウリストの表示にフォーマッターを噛ませた。
 ・2015/11/28 ランチャーリストのウィンドウリストの表示用に適用したフォーマッターの改善を行った。
 ・2015/11/29 ウィンドウリストの表示改善に不具合があったので対策した。
 ・2015/12/07 ランチャーリストによるアプリケーションソフト切替え時に、諸々の変数を初期化するようにした。
 ・2015/12/09 リストウィンドウで検索を行い、選択した行を確定したい場合、一回の Enter で済むように対応した。
 ・2015/12/10 OS を Windows 10 にしたところ、クリップボードリストのフォントが乱れた表示となったので対応した。
 ・2015/12/11 OS を Windows 10 にしたところ、ウィンドウリストに表示される不要と思われるアプリケーションソフトが増えていたので、多少の改善を行った。
 ・2015/12/15 ランチャーリストのウィンドウリストに既に存在しないウィンドウの行が存在する場合、その行を選択してもエラーとならないように対策した。
 ・2015/12/15 仮想デスクトップの切り替えるためのキーとして、LA-p と LA-n を割り当てた。(Windows 10 用)
 ・2015/12/15 ランチャーリストの <Desktop> の機能と仮想デスクトップの切り替えを交互に利用した際などにエラーが発生することがあるため、その対策を行った。
 ・2015/12/17 クリップボードリストやランチャーリストのリストウィンドウ内のみの対応として、基本、Altキーを Ctrlキーと同じキーとして扱うように対応した。
 ・2015/12/17 テスクトップ内のウィンドウを切り替えるためのキーとして、LA-S-p と LA-S-n を割り当てた。
 ・2015/12/18 use_virtual_desktop 変数を追加し、仮想デスクトップを切り替えるキー設定をするかどうかを指定できるようにした。
 ・2015/12/23 クリップボードリストを起動するためのキーとして、LC-x C-y と LA-y を登録していたが、LC-x C-y の設定を廃止とした。
 ・2015/12/23 use_virtual_desktop 変数の初期設定値を False(仮想デスクトップを切り替えるキー設定を“しない”)に変更した。
 ・2015/12/24 仮想デスクトップを利用する場合のキー設定を選択するための virtual_desktop_mode 変数を追加した。
 ・2015/12/28 keyhac のバージョン 1.70 に対応し、一部関数名の変更を行った。
 ・2015/12/31 restore_window 関数がエラーとなる場合があったので、対策した。
 ・2015/12/31 command_ShellExecute も廃止予定の関数となっていたので、ShellExecuteCommand に関数名を変更した。
 ・2016/01/04 use_virtual_desktop 変数とvirtual_desktop_mode 変数を廃止し、desktop_switching_key 変数と window_switching_key 変数で切り替えキーを直接指定できるようにした。
 ・2016/01/04 keyhac が ver 1.70 になり、k が大文字の Keyhac となった。アプリケーションソフトのクラス名等も変更となっていたため、スクリプトが正常に動作していなかった箇所があり、その対策を行った。
 ・2016/01/08 Windows 10 を利用していると、ランチャーリストのウィンドウリストに直接は起動していない、プロセス名が ApplicationFrameHost.exe でタイトル名が「設定」、「ストア」もしくは「フォト」というウィンドウが表示される。これを表示されないように対策した。
 ・2016/02/19 query_replace 関数内で、Sakura Editor と Hidemaru Editor は C-h ではなく C-r を発行するように対応した。
 ・2016/02/20 秀丸で、行末での C-k による行削除に対応した。
 ・2016/03/22 マルチディスプレイを利用している際に、表示しているウィンドウをディスプレイ間で移動するためのキーを window_movement_key 変数で指定できるようにした。
 ・2016/03/23 other_window 関数に A-o キーを設定した。
 ・2016/03/28 ウィンドウ操作関数での動作に統一性を持たせるため、操作対象とするウィンドウのリストを getWindowList 関数で生成し、そのウィンドウリストに対して操作するように処理を変更した。
 ・2016/04/24 アクティブウィンドウの最小化、最小化されているウィンドウのリストアのキーを window_minimize_key 変数で指定するようにした。
 ・2016/04/05 新たにother_window_key 変数、clipboardList_key 変数、lancherList_key 変数を導入し、設定の汎用化を行った。
 ・2016/04/07 仮想デスクトップでの利用を踏まえ、ウィンドウの最小化を現在のデスクトップ内に表示しているウィンドウに対してのみ行われるように変更した。
 ・2016/04/14 window_switching_key 変数と window_movement_key 変数に割り当てているキーを変更した。
 ・2016/04/18 リストウィンドウのフォーマット(リスト幅の指定)の方法を変更した。
 ・2016/04/25 use_esc_as_meta 変数により、Escキーを Metaキーとして使うかどうかを指定できるようにした。
 ・2016/04/28 Ctrl-x を Windows のショートカット(cut)として利用する選択肢を持たせるため、emacs の Ctl-xプレフィックスキーに使うキーを ctl_x_prefix_key 変数で指定できるようにした。
 ・2016/04/29 アクティブウィンドウを切り替えるキーを指定する window_switching_key 変数の初期値を変更した。
 ・2016/05/03 Ctrl-v を Windows のショートカット(paste)として利用する選択肢を持たせるため、スクロールキーに使うキーを scroll_key 変数で指定できるようにした。
 ・2016/05/07 左右どちらの Ctrlキーや Altキーを使うかを side_of_ctrl_key 変数と side_of_alt_key 変数で指定できるようにした。
 ・2016/05/08 A-[a-z]キーを Shiftキーと一緒に押した時は、Shiftキーをとったキー(A-[a-z])が Windows に入力される設定を追加した。
 ・2016/05/15 toggle_input_method_key 変数の設定により、IME を切り替えるキーを指定できるようにした。
 ・2016/05/18 use_emacs_ime_mode 変数の設定により、emacs日本語入力モードを使うかどうかを指定できるようにした。また、C-S-[a-z] -> C-[a-z]、A-S-[a-z] -> A-[a-z] の置き換えの機能(emacsシフトモード)を使うかどうかを use_emacs_shift_mode 変数で指定できるようにした。
 ・2016/05/18 emacs日本語入力モードが起動している状況で C-g を押下した場合は、Esc を2回発行してから emacs日本語入力モードを抜けるようにした。
 ・2016/05/19 toggle_emacs_ime_mode_key 変数の設定により、明示的に emacs日本語入力モードを切り替える(トグルする)キーを指定でできるようにした。
 ・2016/05/22 フォーカスウィンドウが切り替わった際、emacs日本語入力モードが OFF となるように調整した。
 ・2016/05/24 emacs日本語入力モードの時に漢字キーを押した時、emacs日本語入力モードを終了してから IME を OFF とするように調整した。
 ・2016/05/25 emacs日本語入力モードの時の誤動作を少なくするため、マウスクリック時に emacs日本語入力モードが OFF となるように調整した。
 ・2016/05/26 カーソルキー(←、→、↑、↓)が、C-b、C-f、C-p、C-n と同じ振る舞いとなるように設定した。
 ・2016/05/27 use_ctrl_i_as_tab 変数の設定により、C-iキーを Tabキーとして使うかどうかを指定できるようにした。
 ・2016/05/31 emacs日本語入力モードの時、常に「I」の文字(Input の頭文字)がポップアップするようにし、emacs日本語入力モードの状態が分かるように対応した。
 ・2016/06/01 Evernote で C-g を押下した際、Esc を発行しないようにした。
 ・2016/06/03 emacs日本語入力モードの時に C-a、C-e、C-d そして scroll_key 変数で指定したスクロールキーも利用できるようにした。
 ・2016/06/04 emacs日本語入力モードの使用を有効にした際、emacs_ime_mode_balloon_message 変数の設定でバルーンメッセージとして表示する文字列を指定できるようにした。
 ・2016/06/04 emacs_ime_mode_balloon_message 変数の初期値を「▲」に変更した。
 ・2016/06/04 is_ime_target 関数で指定した IME の切り替えのみをしたいアプリケーションソフトでも、emacs日本語入力モードと emacsシフトモードが動作するように設定した。
 ・2016/06/09 Windows 10 の Internet Explorer で本設定が正常に動作していなかったのを改善した。
 ・2016/06/09 emacs の挙動とは異なるようですが、ヤンク(C-y)の数引数による繰り返しをサポートした。
 ・2016/06/17 「Excel の場合、C-Enter に F2(セル編集モード移行)を割り当てる(オプション)」の機能を初期値では"無効"とした。
 ・2016/06/27 mark の際のカーソルの動きが遅いなどの問題があったので、delay の入れ方を全面的に見直した。
 ・2016/07/28 emacs日本語入力モードを使っている際に、文字が重なって入力されることがあったので、その対策を行った。
 ・2016/08/05 IMEツールバーにより入力モードの切り替えが行われた際、emacs日本語入力モードの切替えが適切に行われていなかったので、その対策を行った。
 ・2016/09/23 scroll_key 変数が None の場合、C-v に yank の設定を行うように調整した。
 ・2016/10/27 変数の管理方法を変更した。
 ・2016/11/04 ウィンドウの判定に関する3点の改善を行いました。
 ・2016/11/14 Keyhac for Windows が ver 1.75 になり、keymap.updateKeymap() がサポートされたので設定を見直した。
 ・2016/11/16 新しめのバージョンの Excel を使っているとクリップボードに関連する競合エラーが発生するので、その対策を行った。
 ・2017/03/17 本設定で使っている mouseup フックが他のソフトに悪影響を及ぼしていることが分かったので、該当箇所を削除した。
 ・2017/05/16 not_clipboard_target 変数で、clipboard 監視の対象外とするアプリケーションソフトを指定できるように対応した。
 ・2017/05/16 cmd.exe と powershell.exe についても、C-n、C-p、C-w、M-w、C-k、C-s、C-r 辺りのキー(C-s、C-r が使えるのは Powershell のみ)は利用できるように対応した。
 ・2017/05/20 emacs キーバインドの対象としないアプリケーションソフトに vcxsrv.exe を追加した。
 ・2017/05/24 間違った数引数の指定により発生するコマンドのリピートが止まらなくなる事故を防ぐため、コマンドのリピート回数の最大値を指定できるようにした。
 ・2017/05/28 Microsoft Edge を起動した状態でウインドウリストを表示するとエラーが発生するので、この対策を行った。
 ・2017/06/09 window_switching_key 変数で設定するアクティブウィンドウを切り替えるキーが行う挙動を A-Tab、A-S-Tab に変更した。
 ・2017/06/10 emacs キーバインドの対象としないアプリケーションソフトに XWin_MobaX.exe を追加した。
 ・2017/06/11 window_movement_key 変数で設定するアクティブウィンドウをディスプレイ間で移動するキーおよび desktop_switching_key 変数で設定する仮想デスクトップを切り替えるキーの初期設定値をデフォルトで設定されているキーから想定できるキーに変更した。
 ・2017/06/22 word_register_key 変数に設定したキーにより、IME の「単語登録」プログラムが起動するように対応した。
 ・2017/06/29 window_switching_key 変数に設定したキーで起動するタスク切り替え画面で A-g がキャンセル(A-Esc)として動作するように対応した。
 ・2017/08/23 Excel のファイルを開いた直後一回目、kill_emacs が正常に動作しない。その対策を行った。
 ・2017/10/12 window_switching_key を None に設定した場合(タスク切り替え画面の起動を A-Tab で行う場合)でも、タスク切り替え画面内で A-p、A-n キーによる画面移動を可能とした。
 ・2017/10/14 リージョンを解除する機能を追加した。
 ・2017/10/16 C-c(コピー)ではリージョンを解除しない設定に変更した。
 ・2017/10/17 リージョンを解除する機能を使うかどうかを指定する変数(変数名は use_region_reset。初期値は True)を追加した。
 
 ----
 #javascript(){{
 <script>
   (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
   ga('create', 'UA-40267130-1', 'atwiki.jp');
   ga('send', 'pageview');
 
 </script>
 }}