革命前夜の藻塩草

Anthologie à la veille d'une révolution

Windows で Emacs 風キー・バインドを使えるようにしたら快適だったという話

 タイトルどおりの記事である.

とはいえ

 必要なのは情況の説明であろう.私は普段,Windows 搭載 PC と Macbook Air の両方を使っている.Windows は私物である.パソコンを使いはじめてからというもの,ずっと OS は Windows を使ってきた.Mac のほうはといえば,所属組織から貸与されているものであり,いわば仕事用である.ここ2年近くは,それを使ってなんらかの作業やら報告書の作成やらをおこなっている.長い期間 Windows だけを使ってきたので,Mac の独特の使用感に慣れるのに時間がかかった.また,UI の文字があまりにも小さい(健康な目の持ち主以外のユーザを想定していないのだろうか?)ところなど,不便に思うこともある.

 最近になって Mac の操作にも慣れてきて,ショートカットなどもわりあい使いこなせるようになってきた.特に便利だと思ったのが,テクストの編集において,コントロール・キー(Ctrl)と F, B, N, P, A, K, H, D,... といったキーを一緒に押すことで,カーサを前後左右に移動させたり,文字を削除したりすることができるという機能である.カーサ・キーで,ディリート・キーでいいじゃないの,と思われる向きもあるだろう.というか,私もしばらくそう思い込んでいたので,ショートカットでどうにかできるかなんて調べる気もおこらなかった.あるときまでは.

というのも

 ターミナルを使っているときに,行頭や行末に瞬時に移動できれば便利だなと思ったのがきっかけだったろうか.それ用のショートカットを調べてみることにした.そこで出てきた Ctrl + A, E を憶えて,まず使ってみた.これはたしかに便利であった.ついでに,その周辺に書かれていた Ctrl + F, B, N, P も使ってみることにした.はじめはその異様さに戸惑った.私は Vim を使っていたから,H, J, K, L でのカーサ移動が染みついていたというのもあるかもしれない.移動の方向とキーの位置がそれなりに対応しているのは,感覚的に理解しやすく,慣れも早い.それにひきかえ,いちいち「前,forward, F, 後ろ,backward, B, 次の行,next, N, 前の行,previous, P,...」なんて考えながら打つのは直感的でない.それでも,慣れるまではこの新しいショートカットを使ってみようというめげない精神が功を奏した.やがて,私の左手の小指は完全に Ctrl の虜となった.テクスト編集が一種の楽しみにすらなったといってもよい.ホーム・ポジションからまったく外れることなくカーサを移動でき,文字の消去ができるというのは,きわめて楽であると実感した.マウスやトラックパッドなんかもちろんいらないし,カーサ・キーやディリート・キーもとても遠い.どれくらい遠いかというと,ホーム・ポジションからディリート・キーを押して戻るあいだに地球を3周できるくらいには遠い.カーサ・キーにいたっては地球を 10 周はできるくらいに離れている.また,Vim でのカーサ移動は直感的ではあるけれど,ホーム・ポジションからキーひとつ分だけ左に手がずれることになる.Ctrl をもちいたショートカットでは,このような思想的矛盾もない.なお,Vimmer なので知らなかったが,このキー・バインドはテクスト・エディタの Emacs で使われているものであった.この “発見” をきっかけに,私は近ごろ Emacs の修得にも力を注いでいる.

ところが

 ひるがえって,私はこの新しい習慣のために,Windows で文章を書くことがまったくの苦痛になってしまった.まず自分のパソコンでは Ctrl が A の左になく,代わりに Caps Lock キーとなっている(このキーじたいは半角英数/全角かな入力切り替えのために使っていたが,Mac がそうであるように,入力方式切り替え用のキーがスペース・キーの左右にもある).そしてとうぜんにして,Emacs 風のショートカットでのテクスト編集ができない.これがあまりにもわずらわしかった.私用の Macbook 買うまであると思って調べてみたり,価格を見てため息をついたりした.どうにかしてこのキー・バインドを Windows で実現できないかと考え,インタネットで調査した.最終的に見つけたのが,この記事である.ここに書かれているとおりに,KeySwap, Keyhac を使ってキーの配置とキー・バインドの設定をおこなった.Caps Lock キーに Ctrl を割り当て,そのキーを使って Emacs 風のキーバインドを使えるように設定した.そしてついに,所望の動作が私の Windows 上で可能となった.私の左手小指は Caps Lock キーだったものを押さえながら,カーサは F と B と N と P とで縦横無尽にテクスト編集画面を駆け巡っている.この記事の執筆中にも.

ところで

 個人的に良いと思う設定は,Caps Lock キーを「右 Ctrl」へ変更するのにくわえて,右 Ctrl キーに「左 Ctrl」を割り当てるというものである.こうすることにより,Caps Lock キーを Emacs 風キー・バインド専用のキーにしつつ,これまで使ってきたショートカット e.g. Ctrl + C, V, Z, S, R, W, T, P,... を,左右いずれの(元々の)Ctrl キーでも使いつづけることができる.WindowsEmacsキーバインドを利用する場合の難点としてあげられるようなショートカットの衝突という問題も,ほとんど起きることがない.MacWindows のいいとこどりというわけである.リンクした記事にある方法を知らなかったなら,次に買う私用計算機は Mac にしようかなという愚かな考えに引きずり込まれるところであった.それを考え直させてくれたことにも感謝したい.

 なお,本稿執筆時点での私の Windows の仕様は,Windows 10 Home,ヴァージョンは 22H2,ビルド 19045.2364 である.