Windows 10でも「Emacs風キーバインド」を使おう【AutoHotKey】

Windows便利技

Linuxの端末で広く使われている「Bash」には、デフォルトでEmacs風キーバインド(キー操作と機能の紐づけ)が設定されています。
さらに、GNOMEなどのデスクトップ環境なら、簡単にEmacs風のキーバインド(キーテーマ)が設定可能です。この設定を行えば、WebブラウザやテキストエディタといったGUIアプリでも、端末と同じショートカットキー(ホットキー)を使うことができます。

しかし、WindowsにはデフォルトでEmacs風キーバインドを設定する方法が用意されていません。そこで、「AutoHotKey」というソフトを使ってWindowsでもEmacs風キーバインド使う方法を紹介します。

Emacs風キーバインドとは?

特定のキー(単独あるいは複数の組み合わせ)を押したときに、実行する機能を割り当てることを「キーバインド」や「キーバインディング」と呼びます。とくに、「Ctrl」や「Alt」を押しながら別のキーを押す「ショートカットキー(ホットキー)」には、OSやソフトによってさまざまな機能が「バインディング」されています。
Emacs風キーバインドとは、Unix系OSで古くから使われてきたテキストエディタ「GNU Emacs」のキーバインドに似たキーバインド、という意味です。
Emacsのキー操作は一般的なGUIアプリのキー操作とは異なりますが、ホームポジションに手を置いたままカーソルの移動や文字の削除といった操作が行えるので、慣れると効率的にコマンド文の入力や文章の編集ができるのが特徴です。そのため、Emacs以外のソフトウェアでもEmacs風のキーバインドを設定して使うユーザーも多くいます。

Emacs風キーバインドといっても、ソフトによって「本家Emacsとほぼ同じ」だったり、「カーソルの移動のみEmacs同じ」だったりします。たとえば、以下のページで紹介しているBashのキーバインドはEmacsをベースにしており、カーソルの移動や文字の削除に使うショートカットの多くがEmacsと共通しています。しかし、エディタであるEmacsとシェルであるBashは用途が異なることもあり、「Ctrl+C」などは役割が異なります。

効率的に作業しよう!コマンドラインで使えるキーバインドまとめ
Linuxに慣れてくると、端末ウィンドウを開いてコマンドを打つ機会が増えてきますよね。本サイトのようにコマンドを紹介しているサイトからコピー&ペーストすることもあるでしょうけど、やはり手で打ち込むことも多くなってくるでしょう。 そこで、Ba...

AutoHotKeyのインストール

AutoHotKeyはWindows用の常駐プログラムで、キーやマウスの入力を監視し、特定の操作が行われたときに任意の処理を実行します。「キー操作を別のキー操作に置き換える」こともできるので、これを使ってEmacs風キーバインドを実現することができます。

AutoHotKeyはフリーソフトウェアです。AutoHotKeyのサイトを開き、「Download」ボタンをクリックすると以下の画面になります。「Download Current Version」をクリックすると、インストール用の実行ファイルがダウンロードされます。

ダウンロードした「AutoHotkey_バージョン番号_setup.exe」を実行するとインストーラーが起動します。途中で以下のような選択画面が表示されます。通常は「Express Installation」を選べば問題ないでしょう。「C:\Program Files\AutoHotkey」以下にインストールされます。

「emacs.ahk」でEmacs風キーバインドを設定する(Emacsに慣れた人向け)

AutoHotKeyの設定は、拡張子「ahk」のスクリプトファイルで行います。Naoki Ishikawaさんが作成された「emacs.ahk」を使えば、Emacs風のキーバインドが設定可能です。ただし、Bashで採用されている基本的なキーバインドだけでなく、より多くのEmacs風のキーバインドが設定されます。たとえば「Ctrl+X を押してから Ctrl+C でアプリ終了」などです。ショートカットキーの多くがEmacs風に置き換わるので、Emacsの操作に習熟した人向けです。

「emacs.ahk」は以下のGithubレポジトリからダウンロードできます。

GitHub - usi3/emacs.ahk: An autohotkey script that allows you to use emacs-like key bindings on Windows environment
An autohotkey script that allows you to use emacs-like key bindings on Windows environment - GitHub - usi3/emacs.ahk: An autohotkey script that allows you to us...

ダウンロードしたemacs.ahkをダブルクリックすれば、AutoHotKeyのアイコンがシステムトレイに表示され、Emacs風キーバインドが有効になります。カーソル移動だけでなく、「ファイルを開く」「保存する」「閉じる」「文字をコピーする」「貼り付ける」といった操作も、Emacsと同じキーバインドに置き換えられます。Emacsの操作体系が体に染みついている人なら、快適にWindowsを使えるようになるでしょう。必要に応じてスクリプトを編集し、自分好みにカスタマイズすることもできます。

「カーソル移動+α」のキーバインドだけをEmacs風にする

筆者は普段Emacsを使っておらず、Linuxデスクトップで「GTKのEmacs風キーテーマ」を常用しています。WebブラウザーやテキストエディターでもBashと同じキー操作でカーソルの移動などができ、非常に快適です。

この環境では、「カーソル移動と文字削除」がBashと同じ操作になるものの、そのほかの操作はGNOME標準のキーバインドが使えます。たとえば「Ctrl+C」「Ctrl+X」「Ctrl-V」は「コピー」「切り取り」「貼り付け」のままです(つまりWindowsと同じ)。

Windowsでこれと似た環境を実現するため、「emacs.ahk」を元に、「GTKのEmacs風キーテーマ」に近い設定を行うスクリプト「gtk-emacs-theme-like.ahk」を作成しました。以下のGithubレポジトリからダウンロードできます。

GitHub - lintaro-jp/gtk-emacs-theme-like.ahk: An autohotkey script that allows you to use gtk-emacs-key-theme-like key bindings on Windows environment
An autohotkey script that allows you to use gtk-emacs-key-theme-like key bindings on Windows environment - GitHub - lintaro-jp/gtk-emacs-theme-like.ahk: An auto...

「emacs.ahk」と同様、ダウンロードした「gtk-emacs-theme-like.ahk」をダブルクリックするとAutoHotKeyが読み込んで起動します(すでにemacs.ahkを実行している場合は先にタスクトレイから終了してください)。

「gtk-emacs-theme-like.ahk」を実行すると、以下の通りショートカットキーが置き換えられます。

入力キー置き換え先機能
Ctrl+Bカーソルを左へ
Shift+Ctrl+BShift+←選択しながらカーソルを左へ
Ctrl+Fカーソルを右へ
Shift+Ctrl+FShift+→選択しながらカーソルを右へ
Ctrl+Pカーソルを上へ
Shift+Ctrl+PShift+↑選択しながらカーソルを上へ
Ctrl+Nカーソルを下へ
Shift+Ctrl+NShift+↓選択しながらカーソルを下へ
Ctrl+DDelカーソルの後ろの文字を削除
Ctrl+HBackspaceカーソルの前の文字を削除
Ctrl+AHomeカーソルを行頭へ
Shift+Ctrl+AShift+Homeカーソルから行頭まで選択
Ctrl+EEndカーソルを行末へ
Shift+Ctrl+EShift+Endカーソルから行末まで選択
Alt+BCtrl+←カーソルを1単語左へ
Shift+Alt+BShift+Ctrl+←選択しながらカーソルを1単語左へ
Alt+FCtrl+→カーソルを1単語右へ
Shift+Alt+FShift+Ctrl+→選択しながらカーソルを1単語右へ
Ctrl+WCtrl+X切り取り
Ctrl+YCtrl+V貼り付け
Ctrl+KShift+End Delカーソル位置から行末まで削除
Ctrl+UShift+Home Delカーソル位置から行頭まで削除
Ctrl+MEnter改行
Ctrl+RCtrl+F検索
Ctrl+\Ctrl+Aすべて選択

ログオン時にAutoHotKeyスクリプトを自動で実行するには

ログオン時に実行するahkスクリプトは、どこか適切なフォルダーに置いておきましょう。OneDriveを使っているなら、そちらにおいておけば複数のPCで使うのに便利でしょう。

Windows 10へのログオン時、ahkファイルを自動で実行するには「スタートアップフォルダー」にahkファイルへのショートカットを置きます。スタートアップフォルダーは、「名前を指定して実行」で「shell:startup」を実行すればエクスプローラーで開きます。詳しくは以下の記事を参照してください。

【 Windows 10 / 11 】「スタートアップ」フォルダーを最速で開くには?
アプリのショートカットを「スタートアップ」フォルダーに作成すると、Windowsへのログイン時に自動で実行されます。このページでは、そのスタートアップフォルダーを素早く開く方法を紹介します。 ユーザーごとのスタートアップフォルダーを最速で...

ahkスクリプトを置いたフォルダーとスタートアップフォルダーをエクスプローラーで開き、右ボタンでドラッグ&ドロップして「ショートカットをここに作成」を選択しましょう。Altキーを押しながらドラッグ&ドロップして作成することもできます。

「gtk-emacs-theme-like.ahk」のショートカットを作成すると、以下のようになります。これで、次回ログイン時に自動でスクリプトが実行されます。

ahkスクリプトの編集とリロード(再読み込み)

ahkスクリプトから不要な設定を無効化するには、該当の行の先頭に「;(セミコロン)」を追記してコメントアウトしてください。もちろん、必要な設定を追加することもできます。

ahkスクリプトを書き換えて保存後、システムトレイのAutoHotKeyアイコンを右クリックし、「Reload This Script」を選ぶことで再読み込みされます。

AutoHotKeyの終了

AutoHotKeyを終了するには、システムトレイのアイコンを右クリックして「Exit」をクリックしてください。

Windows便利技
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました