Mac OS 10.13 (High Sierra)でEmacsを快適に使う方法

Mac OS 10.12 (Sierra)以降ではkarabinerが使えなくなってしまいましたが、後継バージョンであるkarabiner-elementsが開発されています。

Mac OSではOS標準のキーアサインとして、Command+C(コピー)、Command+V(ペースト)になりますので、システム環境設定のキーボード、修飾キーでCapsLockをCommandキーに割付変更しています。

システム環境設定からキーボードを選択

修飾キーを選択

CapsLockにCommandを割付け

この設定でCapsLockをCommandとして使用できますので、テキストエディタやブラウザでのコピー&ペーストが簡単にできるようになりますが、EmacsではCommandではなくControlであって欲しいわけです。

Karabiner-ElementsでEmacsの時だけCapsLockをControlにアサインするようにしたので、その設定ファイルを書いてみました。

Karabiner-Elements

設定ファイルを保存する場所

~/.config/karabiner/assets/complex_modifications

以下のjsonファイルを保存してKarabiner-ElementsのComplex Modificationsから設定を有効化すれば使えるようになります。

{
    "title": "Emacs settings",
    "rules": [
        {
            "description": "Swap left_control with left_command(Emacs only)",
            "manipulators": [
                {
                    "type": "basic",
                    "from": {
                        "key_code": "left_command"
                    },
                    "to": [
                        {
                            "key_code": "left_control"
                        }
                    ],
                    "conditions": [
                        {
                            "type": "frontmost_application_if",
                            "bundle_identifiers": [
                                "^org\\.gnu\\.Emacs"
                            ]
                        }
                    ]
                },
                {
                    "type": "basic",
                    "from": {
                        "key_code": "left_control"
                    },
                    "to": [
                        {
                            "key_code": "left_command"
                        }
                    ],
                    "conditions": [
                        {
                            "type": "frontmost_application_if",
                            "bundle_identifiers": [
                                "^org\\.gnu\\.Emacs"
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください