【お知らせ】


<2018/06/01 追記>
kill-buffer に Ctl-x k とは別に M-k も割り当てしました。プラウザのタブを削除する際などにお使いください。

<2018/04/17 追記>
本設定は python のクロージャの仕組みを利用しています。以下のページが参考となります。

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

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


Fakeymacs_お知らせ ← 上記以外の【お知らせ】をこちらにまとめました。Fakeymacs を使う上で大切な内容が書かれていますので、併せて参照してください!!


【認識はしているが対策できていない課題】


  • 仮想デスクトップでの利用を踏まえ、ウィンドウの最小化は現在のデスクトップ内に表示しているウィンドウに対してのみ行われるようにしているが、最小化しているウィンドウのリストアは複数のデスクトップに亘って行われてしまう。
  • TeraPad の行末削除ができない。(対策は不可能と思われますので、C-d をお使いください。)
  • キーボードマクロで記録した操作を Ctl-x e で再生する場合、数引数を指定して再生すると、再生により表示される文字列に「e」の文字が混入する場合がある。Keyhac 内部で発生している問題と思われ、本設定での対策は不可能と思われます。
  • powershell.exe では起動直後に C-w や C-k で切り取りをした際や、通常の利用時でも行の最終カラムで C-k を入力した際などにエラーとなる。これは既知の問題のようでもあり対策できていない。(Keyhac を利用していない状態でも、未入力の状態で C-a -> C-x を入力すると発生する。)

【本題】


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

Keyhac for Windows ver 1.75 以上で動作する設定となっています。最新の Keyhac のバージョンでの利用を推奨します。

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



本設定は「Google 日本語入力」と一緒に利用するのがお勧めです。詳しくは、「Fakeymacs_お知らせ」の <2016/10/12 追記> の内容を参照してください。

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



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

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

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

2) emacsシフトモード (利用するかは use_emacs_shift_mode 変数で設定。初期値:False(使わない))

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

3) その他の方法 (本設定の仕様としてデフォルトで利用可能)

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



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

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

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


<変更履歴>
  • Fakeymacs_変更履歴 ← 2017年以前の変更履歴をこちらにまとめました。
  • 2018/02/23 clipboard 監視の対象外とするアプリケーションソフトで copy / cut した場合でも、クリップボードの内容をクリップボードリストに登録するように対策した。
  • 2018/04/10 以前に行った clipboard 監視の対象外とするアプリのコピペ対策が Excel で正常に動作しない状況があったので、その改善を行った。
  • 2018/06/01 kill-buffer に Ctl-x k とは別に M-k も割り当てた。