【お知らせ】が長くなってきているので、設定ファイルのあるリポジトリの URL を最初に掲示しておきます。

【お知らせ】

Fakeymacs_お知らせ ← 以前に掲示した【お知らせ】をこちらにまとめています。Fakeymacs を使う上で大切な内容も書かれていますので、併せて確認ください!!


<2016/10/28 追記>
本設定を公開して4年が経過しようとしています。その間改善を続け、“Keyhac の config で XKeymacs の代わりになるものを実現する”という当初の目標は概ね達成できたのではないかと思っています。そこで、本設定にニックネームを付けることとしました。
nickname: Fakeymacs
今後も末永くご利用いただければと思います。



<2020/09/18 追記>
2020/09/15-18 追記分の変更は、現時点では develop branch のみに反映されています。

<2020/09/18 追記>
VSCode に次のキーバインドをサポートしました。
  • Ctrl+Atmark : toggle_terminal(VSCode Command : Toggle Integrated Terminal のように振る舞うコマンド)
  • Ctrl+Shift+Atmark : new_terminal(VSCode Command : Create New Integrated Terminal)
  • Ctrl+Shift+BackQuote : new_terminal(VSCode Command : Create New Integrated Terminal)
Terminal に移行すること Fakeymacs に認識させるために作成したものです。
前者2つは日本語キーボード用、後者1つは英語キーボード用です。この機能をサポートするために use_ctrl_atmark_for_mark 変数を導入し、日本語キーボードで C-@ をマーク用のキーとして使うかどうかを指定できるようにしました。初期値は False(使わない)です。

<2020/09/17 追記>
以下の説明で、BackQuote を BackSlash と誤って記載していたのを訂正しました。

<2020/09/16 追記>
以下の追記の機能(VSCode の Terminal で WSL 用のキー変換を行う)を使うかどうかを指定する変数(use_vscode_wsl_key_conversion)を導入し、初期値を False(使わない)にしました。仕様を理解した方のみ使う機能とするための対応です。

<2020/09/16 追記>
VSCode に次のキーバインドをサポートしました。
  • Ctrl+BackQuote : toggle_terminal(VSCode Command : Toggle Integrated Terminal のように振る舞うコマンド)
このキーバインドは、VSCode 標準のキーバインドですが、日本語 Windows OS では Ctrl と組み合わせた BackQuote の返すキーコードが BackQuote ではなくなるため、正常に動作していませんでした。これを改善しています。
また、このキーを発行することにより、Fakeymacs が VSCode の Terminal(WSL/WSL2 を前提)に入ることを認識できます。この仕組みを使って、Terminal 内で次のキーを押下した際のキーの挙動を変更(キーの変換をせずにダイレクトに発行)するようにしています。
  • Ctrl+k
  • Ctrl+r
  • Ctrl+s (bash で stty stop undef の設定をすると使えます。この設定をしないでこのキーを押下すると stop から戻れなくなります。)
  • Ctrl+y
逆に、Terminal から抜けることの認識には、以下のキーが押下されることを利用しています。
  • Ctrl+BackQuote
  • Ctrl+数字キー
  • Ctl+x o
これで、Terminal で Ctrl+k が使えない(Ctrl+q Ctrl+k と入力する必要がある)問題をある程度回避できるのではないかと思います。
なお、マウスのクリックでカーソル位置の変更を行うと、この状態の認識に齟齬が発生することがあります。この場合は、上記の3種類のキーを押下することにより、Fakeymacs に現在の状態を再認識させるようにしてください。

(2020/09/16 追記)US キーボード前提でコメントを記載していました。Ctrl+BackQuote 記載部分は、日本語キーボードの場合、Ctrl+半角/全角 で動作します。日本語キーボードの場合の Toggle Integrated Terminal のショートカットは C-@ となっていますが、これは Emacs キーバインドで set_mark_command に割り当てられています。このショートカットに手を入れるかは、別途検討します。

<2020/09/15 追記>
VSCode での Emacs キーバインドを Fakeymacs でデフォルト有効に変更しました。VSCode で Emacs キーバインドを利用するにあたり、Awesome Emacs Keymap Extension よりも Fakeymacs の方が便利だと思う点は次のとおりです。
  • Side Bar や Command Palette など、Editor 以外のところでも Emacs キーバインドが使える
  • Ctrl+q を先行入力する方法や、side_of_ctrl_key 変数/side_of_alt_key 変数で設定した側でない Ctrlキーや Altキーと組み合わせたキーを入力する方法により、VSCode デフォルトのショートカットキーを利用できる
  • 日本語入力モードでショートカットキーを入力した場合の誤動作が発生しない(Ctrl+x 0 と入力すると 0 が漢字で入力されるなどが発生しない)
  • 普段 Fakeymacs を使っていれば、そこで慣れたキー操作が VSCode でもほぼそのまま利用できる(C-x C-c、Alt-k が使えるなど)
一方、Fakeymacs の方が劣っていると思う点としては次のようなものがあります。
  • Emacs キーバインドの実装が Awesome Emacs Keymap Extension より少ない
  • Fakeymac は VSCode の When を認識できないので、細かい制御ができない(WSL Terminal でのキーバインド(Ctrl+k など)を正しく制御できないなど)
(2020/09/16 追記)WSL Terminal で Ctrl+k などが正常に動かない問題の回避策を考えました。
 1) 設定で terminal.integrated.allowChords を false にする
  https://code.visualstudio.com/docs/editor/integrated-terminal#_chord-keybindings-in-the-terminal
 2) WSL Terminal で正常に動作しないキー(Ctrl+k や Ctrl+r など)を入力する際に、Ctrl+q を前置する
 お試しください。

<2020/09/15 追記>
VSCode に次のキーバインドをサポートしました。
  • Meta+x : execute_extended_command(VSCode Command : Show All Commands)
  • Ctl+x o : other_window2(VSCode Command : Navigate Between Editor Groups)
  • Ctl+x 0 : delete_window(VSCode Command : Close All Editors in Group)
  • Ctl+x 1 : delete_other_windows(VSCode Command : Close Editors in Other Groups)
  • Ctl+x 2 : split_window_below(VSCode Command : Split Editor Orthogonal)
  • Ctl+x 3 : split_window_right(VSCode Command : Split Editor)
  • Meta+; : comment_dwim(VSCode Command : Toggle Line Comment)
  • Ctrl+l : recenter(VSCode Command : Center Editor Window)※ VSCode に Center Editor Window Extension をインストールしてください
  • Ctrl+d : dired(VSCode Command : Open dired buffer)※ VSCode に vscode-dired Extension をインストールしてください。Ctrl+x f に設定されているキーバインドは、Ctrl+x(Cut)の機能とバッティングするので、削除してください。(Open Keybord Shortcuts コマンドで削除可能です)
  • Ctrl+Alt+p : unmark_next_like_this(VSCode Command : Cursor Undo)
  • Ctrl+Alt+n : mark_next_like_this(VSCode Command : Add Cursor Below)
この対応により、一つ前にフォーカスが当たっていたウィンドウに移動するためのキーバインドは Alt+o のみの利用となります。
また、この機能を実現するにあたり、vscodeExecuteCommand 関数を作成しました。この関数を使うことにより、ショートカットキーが割り当てられていない VSCode のコマンドでも、Fakeymacs から実行することができます。
なお、vscodeExecuteCommand 関数内では日本語入力モードの切り替えを行っています。Google 日本語入力などで入力モードのポップアップを表示する設定にしている場合、このポップアップが何度も表示される不都合が発生するようですので、ポップアップを非表示にしてご利用ください。(https://memotora.com/2014/10/05/google-ime-pop-up-setting/

<2020/09/15 追記>
toggle_emacs_keybind_key 変数の設定(初期値:C-S-Space)により、emacs キーバインドを利用する設定をしたアプリケーションソフトの Emacs キーバインドの利用を切り替えることができるようにしました。Emacs キーバインドを利用するアプリケーションでかつフォーカスが当たっているアプリケーションソフトに対して切り替えが機能します。また、Emacs キーバインドを OFF にしても、IME の切り替えは img_target に登録したアプリケーションソフトと同様に機能するようにしています。なお、emacs_target_class 変数に指定したクラス(初期値:Edit)に該当するアプリケーションソフト(NotePad など)は、Emacs キーバインドを切り替えの対象となりませんのでご留意ください。

<2020/09/06 追記>
ショートカットキーが何のアプリで使われているかを調べられるサイトを見つけましたので紹介します。

<2020/08/26 追記>
不具合の指摘があり、対応しました。2020/08/16 にデグレしていたものですので、それ以降のコードを利用されている方は更新をお願いいたします。

<2020/08/18 追記>
Fakeymac で個人設定用ファイルを利用できるようにしました。詳しくは、以下のリポジトリにある _config_personal.py の最初のコメントを参照してください。

<2020/08/15 追記>
skip_settings_key 変数を設定することにより、キーマップ毎にキー設定をスキップするキーを指定できるようにしました。現在、個人の設定を外部ファイルに外出しして管理できるようにする機能を追加しており、その機能を実現するための1機能となります。個人の設定を外部ファイルに外出しして管理できるようにする機能は develop branch で開発していますので、興味の有る方は覗いてみてください。
(2020/08/18 追記)develop branch は master branch に merge されました。

<2020/08/11 追記>
emacs_exclusion_key 変数を設定することにより、Emacs のキーバインドにするアプリケーションソフトで Emacs キーバインドから除外するキーを指定できるようにしました。例えば、C-t は Emacs キーバーインドで reconversion(再変換)の機能を割り当てていますが、ブラウザを利用しているときには「新しいタブを開く」機能のショートカットキーとして利用したいと思う方が多く居ると思います。このようにアプリケーションソフト側のショートカットキーを優先したい場合に利用することができます。この設定を行わなくても、左右のモディファイアキーを使い分けることで Windows 側のショートカットキーを入力することも可能ですが、頻繁に利用するキーについては Emacs キーバインドで使うモディファイアキーとの組み合わせで利用できるようになり便利かと思います。
(もう少し具体的な説明をすると、chrome.exe には Emacs のキーバインドから除外するキーとして C-l、C-t を割り当てています。この設定により chrome.exe では、C-l を「アドレスバーへの移動」、C-t を「新しいタブを開く」として使えるようになります。これに Emacs キーバインドとして設定してある M-k(A-k)の「開いているタブを閉じる」や chrome.exe のショートカットキーである C-Tab の「タブの切り替え」などを組み合わせると、ブラウザを容易に操作できるようになると思います。)

<2020/08/06 追記>
お薦めの設定を最初に紹介しておきます。
  • HHKB の英語キーボードの場合、DIP スイッチで ◇ キーに Win キーを割り当てて ◇ キーと Alt キーを入れ替える設定(Pro2/HYBRID-US の場合、SW1:ON、SW2:OFF、SW4:OFF、SW5:ON)をし、KeySwap というソフトで RWin キー(キーの位置は、DIP スイッチの設定で左の Alt キーとなっている)に RCtrl キーを割り当てる。そして、set_input_method_key 変数に Alt キーのワンショットモディファイアを割り当てる設定を有効にする。(Alt キーの単押しで IME の ON/OFF を行えるようになる。)他に、LWin キーに RCtrl キーを割り当てる方法もあるので、お好みでどうぞ。その場合、config.py の side_of_win_key 変数に "R" を設定する必要があります。
  • HHKB 以外のキーボードの場合、KeySwap というソフトで CapsLock キーに RCtrl キーを割り当て、config.py で side_of_ctrl_key 変数に "R" を設定する。(LCtrl キーは Windows ショートカット用のキーとして利用できる。)
その他は、config.py の最初の方にある変数設定の説明を読んで、適宜設定の調整をしてください。

<2020/06/03 追記>
新しい Microsoft IME では、リージョンを選択した状態で Space キーを押下すると「再変換」が働きます。このときに日本語入力モードを使う設定にしていれば、日本語入力モードに移行するようにしました。

<2020/05/29 追記>
「キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」」。Keyboard Manager が統合されています。PowerToys Run もいい感じのデザインです。
※ KeySwap や Change Key でのレジストリの設定を Keyboard Manager に移行することを試みましたが、Keyboard Manager は Keyhac との共存はできないツールのようでしたので、元に戻しました。Keyboard Manager はレジストリ設定型のアプリではなく、Keyhac や AutoHotKey と同様の常駐型のアプリのようです。

<2020/05/28 追記>
仮想デスクトップを操作する SylphyHorn というソフトを見つけました。Microsoft Store からインストールできます。仮想デスクトップは、OS 標準機能でもキーボードショートカットによる移動はできますが、ウインドウを仮想デスクトップ間で移動するキーボードショートカットはありません。このソフトはこの機能をサポートしています。
Fakeymacs では、仮想デスクトップの移動に Win+b と Win+f を割り当てています。(というか、今回見直しを行いました。)また、アクティブウィンドウを仮想デスクトップ間で移動するためのキーを設定する変数として、window_movement_key_for_desktops 変数を追加しました。SylphyHorn をインストールし、window_movement_key_for_desktops 変数を設定することにより、仮想テスクトップの操作をキーボードのみで行えるようになります。(window_movement_key_for_desktops 変数の設定例には、Win+p、Win-n を設定しています。Win+p は「プレゼンテーション表示モード選択画面」を表示するためのキーなのですが、Ctrl+q Win+p で機能を呼ぶことができます。RWin キーがあれば、RWin+p でも対応可能と思います。)
なお、SylphyHorn には仮想デスクトップをループさせる機能があります。この機能は(何故か)背景を変更する機能を ON にすると利用できるようになるのですが、同時に仮想デスクトップ切替時にウィンドウのフォーカスが正しく切り替わらない(タスクバーのアイコンが点滅する)状況が発生するようになるため、利用は見合わせています。また、仮想デスクトップの切り替えを通知する機能がありますが、この機能は処理が重いので代わりにトレイアイコンにデスクトップ番号を表示する機能を使っています。これらの SylphyHorn の機能を有効するには、設定画面を閉じる必要があるようです。

さらに、仮想デスクトップのアニメーションを止めたい場合は、次のページを参照してください。
また、すべての仮想デスクトップのウィンドウのアイコンをタスクバーに表示させたい場合には、次のページを参照してください。

<2020/05/26 追記>
ThinkPad トラックポイント キーボード II が国内で販売開始となりました。Fakeymacs と相性バッチリではないかと思います。ほしいです!

<2020/05/24 追記>
仮想デスクトップを移動するためのキーは、Windows キーと組合わせたキー設定にしないと、仮想デスクトップを移動したときにアクティブフォーカスの設定が正しく行われないことが分かりました。このことから、Fakeymacs で Windows キーを正式にサポートすることとし、desktop_switching_key 変数の初期値を Win キーを利用するものに変更しました。(併せて、window_movement_key 変数 の初期値も Win キーを使うものに見直しました。)

<2020/05/23 追記>
IME の「再変換」の機能は、[変換] キーだけでなく、Win+/ キーでも機能することが分かりました。Windows 10 ver 2004 では [無変換] キー、[変換] キーのキーの機能を容易に変更できるようになるため、この影響を受けないように IME の「再変換」の機能を Win+/ キーで動作するように見直ししました。

<2020/05/17 追記>
IME の再変換を行う機能を追加しました。
  • キー設定の初期値は C-t としています。
  • 日本語入力確定後に C-t を押すと、「確定取り消し」として機能します。(Windows 10 May 2020 Update の新しい Microsoft IME では「確定取り消し」のキー設定が見つからないので、「再変換」が機能するようにしています。)
  • 文字列の選択(リージョンの設定)をして C-t を押すと、「再変換」が機能します。
  • 文字列が選択されているか(リージョンが設定されているか)は fakeymacs.forward_direction が設定されているかで判断しているため、マウスではなくキーボードによる選択が必要です。
  • Microsoft IME の場合、文字列を選択せずに C-t を押すと、カーソル位置近くの文節で「再変換」が機能します。
  • Emacs日本語入力モードを有効にしている場合、「確定取り消し」や「再変換」の状態になると、Emacs日本語入力モードが機能するようにしています。
  • この機能の追加に合わせ、 emacs_ime_mode_key 変数(Emacs日本語入力モードを利用する際に、IME のショートカットを置き換えるための変数)を「ことえり」のキーバインドで機能するように設定を有効化しています。

<2020/05/10 追記>
Windows 10 May 2020 Update では、Microsoft IME の機能改善が図られ、Google 日本語入力と遜色ない IME になっているようです。ただし、キーバインドを変更する「キー設定」の編集画面が見当たりません。そこで、IME のキーバインドを変更するための機能を追加してみました。初期値は、Microsoft IME で Google 日本語入力の「ことえり」のキーバインドが利用できるようにする設定 としています。emacs_ime_mode_key 変数で設定の追加や変更ができますので、お試しください。

<2020/05/03 追記>
次のページを作成しました。

<2020/04/30 追記>
「Windows 10 2020年春の新機能 日本語入力が楽になる!変換/無変換キーで日本語入力がオン/オフに」。Fakeymacs では、set_input_method 変数の設定により、同様の機能をサポートしました。Windows 10 1909 までのバージョンでも IME の設定変更なくこの機能を利用できます。。

<2020/04/28 追記>
レジストリを用いたキーを置き換えるソフトには、KeySwap や Change Key というものがあります。KeySwap は US キーボード表記に対応している、Change Key はキーボード上に存在しないキーの設定ができるなど、一長一短がある状況です。私は KeySwap をメインとして利用し、数値でのスキャンコードの指定が必要な場合は Change Key を利用しています。Change Key で設定した内容は KeySwap でも参照できますので、相互利用する上での問題はありません。詳しくは次のページを参照してください。

<2020/04/26 追記>
Fakeymacs は、カーソルキーの無い HHKB US版 を有効に利用するために作成しました。私も HHKB を使っており、キーボードの背面スイッチと KeySwap や Keyhac の設定により、次のとおりのキーの割り当てにして使っています。
  • 左 ◇ キーに LAlt キーを割り当てる
  • LAlt キーに LWin キーを割り当てる
  • 右 ◇ キーに RAlt キーを割り当てる(Windows ショートカットキーを入力するために利用できます。Windows ショートカットキーを入力するためには、LCtrl+q + Alt キーを使う方法もあります。)
  • RAlt キーに RCtrl キーを割り当てる(Windows ショートカットキーを入力するために利用できます。Windows ショートカットキーを入力するためには、LCtrl+q + Ctrl キーを使う方法もあります。)
(使っている方は少ないと思いますが..)初代 HHKB で ◇ キーに Alt を割り当てるには、以下の方法が利用できます。
  • 1) HHKB の Mode SW を 3 に設定する(HHKB 背面スイッチの説明:https://www.pfu.fujitsu.com/hhkeyboard/leaflet/hhkb_backview.html
  • 2) KeySwap を管理者権限で起動する
  • 3) キーボード種別を一旦「日本語」にし、画面に表示されるキーボードを利用して 無変換キーを 左 Alt キーに、変換キーを 右 Alt キーに置き換える
  • 4) キーボード種別を「英語」に戻し、左 Alt キーを 左 Win キーに、右 Alt キーを 右 Ctrl キーに置き換える
  • 5) 一応ファイルに保存し、KeySwap を終了する
  • 6) Windows をログインし直す
なお、次のサイトに HHKB 誕生の経緯が書かれています。HHKB に Meta(◇)キーがある理由や HHKB が emacs での利用を想定して作られたキーボードであることなどが書かれてありますので、興味のある方は一読ください。

<2020/04/26 追記>
Keyhac のバージョン 1.82 がリリースされました。ワンショットモディファイアの機能に不具合の修正が入りましたので、Alt キーによる IME 切替え機能を利用される方は Keyhac のバージョンアップをお願いします。

<2019/11/23 追記>
CapsLock キーを持つ一般的な日本語キーボードを使っている場合のお勧めの設定 を紹介しておきます。詳しい設定方法については、本ページの内容を参照してください。
  • 1) Google 日本語入力をインストールし、プロパティの「キー設定」で「ことえり」を選択する。⇒ (2020/05/10 追記)emacs_ime_mode_key 変数の追加により、Micorosoft IME でも「ことえり」と同様なキーバインドを設定できるようになりました。
  • 2) KeySwap をインストールし、CapsLock に RCtrl キーを割り当てる。(設定後、PC の再ログインもしくは再起動が必要です。)
  • 3) Keyhac をインストールし、Windows の Startup フォルダに keyhac.exe のショートカットファイルを置く。
  • 4) Keyhac を起動した後、メニューの「設定の編集」を開き、設定内容を Fakeymacs の config.py の内容に置き換える。そして、side_of_ctrl_key 変数を "R"(右)に変更し、保存する。
  • 5) Keyhac のメニューから「設定のリロード」を行う。
以上で、CapsLock(RCtrl)キーと LAlt キーが Emacsキーバインド用のキーに、LCtrl キー と RAlt キーが Windows のショートカット用のキーとして利用できるようになります。
本ページの最後に紹介している akinosign というソフトウェアも便利ですので、併せて導入を検討ください。

<2019/12/24 追記>
Keyhac の動作にに必要な「Visual Studio 2015 の Visual C++ 再頒布可能パッケージ 」ですが、次のリンクに書かれているとおり複数のバージョンがあるようです。
Keyhac のダウンロードページにあるリンクは古いものを指しているようでしたので、次のリンクの新しいもの(14.0.24215.1 2016/09/15)のインストールをお勧めします。(x86版 のインストールが必要です。)
なお、「Visual Studio 2019 の Visual C++ 再頒布可能パッケージ 」では 2015 が統合されているとのことです。ですのでこちらをインストールする選択肢もあると思いますが、この辺になると良く分かりません。

<2019/07/21 追記>
Emacs日本語入力モードを使っている場合に発生する、ウインドウ切り替わり直後の日本語入力時に文字が二重に入力されることがある問題の対策を行いました。この問題は、Windows 10 1903 から顕著に発生するようになったものです。

<2018/04/17 追記>
本設定は python のクロージャの仕組みを利用しています。クロージャについては、次のページの説明が参考になると思います。

<2016/09/15 追記>
ESC を素の ESC として使いたい場合は、use_esc_as_meta 変数を False に設定してください。
C-v をペーストとして使いたい場合は、scroll_key 変数を None に設定してください。
その他のカスタマイズ設定については、configure 関数の初めの方でカスタマイズ用の変数の設定をしていますので、そのコメントを参照してください。

【本題】


Windows の操作を Emacs のキーバインドで行うための設定(Keyhac版)です。次のリポジトリから config ファイルをダウンロードしてお使いください。

Keyhac for Windows ver 1.82 以上の Keyhac のバージョンでの利用を推奨します。

Keyhac を起動後、タスクトレイのアイコンを右クリックし、「設定の編集」で config.py もしくは config_light.py の内容をコピペした後「設定のリロード」を行ってください。



Keyhac は XKeymacs と異なり、IME による日本語入力中であることを判定することができません。このため、日本語入力中に IME の変換操作を行う方法として、以下の3つの方法を提供しています。

1) Emacs日本語入力モード (利用するかは use_emacs_ime_mode 変数で設定。初期値:True(使う))

IME が ON の時に文字(英数字か、スペースを除く特殊文字)を入力すると起動するモードです。(モードに入ると、▲のマークが表示されます。) Emacs日本語入力モードになると Emacsキーバインドとして利用できるキーが限定され、その他のキーは Windows にそのまま渡されるようになるため、IME のショートカットキーを利用できるようになります。詳しい仕様は、「Fakeymacs_お知らせ」の <2020/04/23 更新> の内容を参照ください。

2) Emacsシフトモード (利用するかは use_emacs_shift_mode 変数で設定。初期値:False(使わない)) ※ config.py でのみサポートしています

本設定のキーバインドと IME のショートカットキーが被って設定されている場合、日本語入力中にそのキーを Shiftキーと一緒に押すことで IME のショートカットキーを利用できるようになるモードです。このモードを Windows 8 以降の OS で利用する場合には、次の設定を行う必要があるようです。

3) その他の方法 (本設定の仕様としてデフォルトで利用可能)
  • 本設定で置き換えしていないキーを入力する。(但し、Ctrl とアルファベットを組み合わせたキーは、ほぼ全て置き換えがされています。)
  • side_of_ctrl_key 変数や side_of_alt_key 変数で設定した側でない Ctrlキーや Altキーと組み合わせたキーを使う。
  • 入力するキーに先行して C-q を入力する。(Emacs日本語入力モードを使っていない場合に有効な方法です。)



認識はしているのですが対策できていない課題 として以下のものがあります。
  • powershell.exe では起動直後に C-w や C-k で切り取りをした際や、通常の利用時でも行の最終カラムで C-k を入力した際などにエラーとなる。これは既知の問題のようでもあり対策できていない。(Keyhac を利用していない状態でも、未入力の状態で C-a -> C-x を入力すると発生します。)
  ⇒ (2019/04/01 追記)Windows 10 1809 で試したところ、この問題は改善されたようです。
  • コマンドプロンプトで漢字を入力した際、行末までの削除(C-k)の挙動がおかしくなる。漢字を含む行で End キーが正常に動作しない問題によるもの(コマンドプロンプトのバグ?)なので、対策は難しい状況である。
  ⇒ (2019/07/18 追記)Windows 10 1903 で試したところ、この問題は改善されたようです。
  • Microsoft Edge で C-v が正常に機能しない。(C-v で PageDown キーを発行するようにしているが、これが C-PageDown と認識されているような気がします。)
  ⇒ (2020/01/16 追記)2020/01/15 にリリースされた Chromium版 Edge では、この問題が発生しないことを確認しました。
  • 仮想デスクトップでの利用を踏まえ、ウィンドウの最小化は現在のデスクトップ内に表示しているウィンドウに対してのみ行われるようにしているが、最小化しているウィンドウのリストアは複数のデスクトップに亘って行われてしまう。
  • TeraPad で C-k による行末削除ができない。(対策は不可能と思われますので、C-d をお使いください。)



本設定は「Google 日本語入力」と一緒に利用するのがお勧めです。詳しくは、「Fakeymacs_お知らせ」の <2016/10/12 追記> の内容を参照してください。。
(2020/05/10 追記)emacs_ime_mode_key 変数の追加により、Micorosoft IME でも「ことえり」と同様なキーバインドを設定できるようになりました。

Windows 7 から Windows 10 へアップデート後、Edge やコルタナなどで Google 日本語入力が利用できない場合は、次のページを参照してください。



CapsLockキー への Ctrlキー の割当ては、次のページにある KeySwap というソフトが便利です。

side_of_ctrl_key 変数を "R"(右)とし、CapsLockキーに RCtrlキーを割り当てることで、LCtrlキーで利用可能な Windowsショートカットキーとの共存が容易になると思います。(RCtrlキーも Windowsショートカット用のキーとして使いたい場合は、RCtrlキーに LCtrlキーを割り当てる必要があります。)

また、Altキーは親指で操作できる場所のキーに割り当てると使い勝手が良いように思います。



IME の状態(ON か OFF か)を確認するソフトウェアとして、akinosign というものがあります。Windows 7 ではクリップボードリストとの相性問題が発生していたため紹介を取りやめていましたが、Windows 10 ではこの問題が発生しないようですので再度紹介します。よければお試しください。


<変更履歴>
  • Fakeymacs_変更履歴 ← 2017年以前の変更履歴をこちらにまとめました。
  • 2018/02/23 clipboard 監視の対象外とするアプリケーションソフトで copy / cut した場合でも、クリップボードの内容をクリップボードリストに登録するように対策した。
  • 2018/04/10 以前に行った clipboard 監視の対象外とするアプリのコピペ対策が Excel で正常に動作しない状況があったので、その改善を行った。
  • 2018/06/01 kill-buffer に Ctl-x k とは別に M-k も割り当てた。
  • 2019/03/27 キーボードマクロ記録と再生の開始時に IME を強制的に OFF にするようにした。
  • 2019/03/27 数引数を指定してキーボードマクロを再生した際の再生再現性を高めた。
  • 2019/07/06 checkWindow 関数のチェック方法を正規表現からワイルドカードに変更した。
  • 2019/07/10 ウインドウが切り替わった後に最初に入力した文字が二回入力される現象の対策を行った。
  • 2019/07/10 F2(編集モードに移行)を割り当てる方法を汎用化し、explorer.exe を追加した。
  • 2019/07/17 reset_region 関数の見直しを行った。
  • 2019/07/17 keyboard_quit 関数で Esc を発行するアプリの見直し等を行った。
  • 2019/07/21 2019/07/10 に実施した文字が二回入力される対応の改善を行った。
  • 2019/07/24 ウィンドウのリストアが最小化した順番の逆順にならなくなっていたのを対策した。
  • 2019/11/20 Emacsシフトモードを利用していない場合、シフトキー+移動キーでリージョンの設定ができる機能をサポートした。
  • 2020/01/07 設定の除外ターゲットにリモートデスクトップを追加した。
  • 2020/03/13 Microsoft Excel 2019 のセル内の文字列の改行対策を行った。
  • 2020/03/16 Microsoft PowerPoint でも Word と同様の改行対策を行った。
  • 2020/03/13 「IME を無効にするキー」と「IME を有効にするキー」を設定できるように set_input_method_key 変数を追加した。
  • 2020/04/23 ワンショットモディファイアの機能を利用し、左右の Alt キーで IME を切替えられるようにする機能を追加した
  • 2020/04/26 数引数の指定に Ctrl + 数字キーを使うかどうかを指定する変数を追加した。
  • 2020/04/26 Alt + 数字キー列や Alt + Shift + 数字キー列によるファンクションキー入力機能を追加した。


最終更新:2020年09月18日 17:46