gofujita notes

on outline processing, writing, and human activities for nature


テキストの樹の中を鳥のように移動する Part 2

ぼくは、キーバインド key bind (キーマッピング key mapping) を、Karabiner-Element (以下、Karabiner) でやっています。結城浩さんの以下の記事をよんだのがきっかけです。

 

ターミナル上CUIのvimでノーマルモードに戻ったときに日本語入力モードを自動的にオフにする方法(Karabinerを使う)

 

2014年の記事。結城さんはここで、Vim でノーマルモードに戻るためにescを押すとesc+英数、2つのキーを押したことになるキーバインドを行なっています。Vim をつかっている場合限定で、ひとつのキーをふたつのキーに割り当てる、といった複雑なキーバインドも Karabiner なら可能です。

GitHubのコードや説明をよむと、結城さんは、esc以外のノーマルモードに戻る操作であるcontrol+[をタイプしたときにも、escの場合と同じ反応が起こるよう設定していることが分かります。Vim ユーザーにとってカユイところに手のとどく、気の利いた設定ですね。

余談ですが、ここで紹介されている結城さんのキーバインド、8年後にあたる今の Karabiner-Element では、数多ある「Complex Modification 複雑な設定変更」のオプションのひとつとして、よりかんたんに設定できます。たぶん、ここで紹介された結城さんのコードが、使われているのだと思います。

 

 

さて、ぼくのキーバインドの話しに戻ります。

Karabiner は多機能なユーティリティ・ソフトウェアですが、ぼくはやりたいことを大きく3つにしぼって、キーバインドを設定しています。

1. Control key を押しやすい場所に移動する

ぼくは、Emacs を MacBook のUS配列のキーボードでつかっています。US配列では、controlがいちばん下の列の左から2番めにあります。

この位置だと、ホームポジションにおいた左手の小指を、ほんの少し右下へ折り曲げて押すことになります。Emacs では、controlと他のキーの組み合わせを1分間に何度も押すのが普通ですから、ほんの少しでも楽に押せる位置のキーとcontrolを置き換えたくなります。

考えるまでもなく、caps lockcontrolにしました。ホームポジションの左手小指のすぐ左となりにあるキーです。

あとで知ったのですが、この押しづらい位置にあるcontrolを押しつづけることで痛められた Emacs ユーザーの左手小指には「the Emacs pinky」という呼び名もついています。

そして Emacs の入門書に、Emacs を使いはじめたあなたが最初にやるべき大きな仕事はcaps lockcontrolにキーバインドすることだ、とかいてあるのを見つけたときは嬉しくなってしまいました (笑)。

2. 日本語/英数の入力切替えをキーひとつで可能にする

US配列キーボードでは、日本語入力と英数入力の切替えは、たとえば、control+option+zといった3つのキーを押す必要があります。このとき、両手がホームポジションから離れることになります。

それを、たとえばひとつのセンテンスの入力中に何度も繰り返すのは、リズムをくずすことになるので、キーひとつの操作で済むようにしたい。しかも、できれば、押しやすい場所のキーにしたい。

そこで、日本語から英数の切替えは、左control。英数から日本語への切替えは、右optionに設定しました。

たとえばこの記事のように、日本語の中にアルファベットや数字が混ざる文章をかいていると、日本語入力と英数入力の切替えをほんとうに頻繁に行ないます。日本語の論文原稿をかいたり、そうした原稿にコメントするときにも、頻繁に切替えます。

この切替えを楽にすることは、ぼくにとってはかなり大切な問題で、何とおりかのやり方を長く試してきました。

現時点でのベストがこの設定です。

3. 頻繁にタイプする句読点をホームポジションそばに移動する

デフォルトの位置だと、これらふたつのキーは下から2段目の列nキーの右に並んでいます。

これは、control同様のホームポジション下側にあり、ほんの少しですが押しにくい位置。ホームポジションにおいたままタイプすると、たまにですがまちがってとなりのキーを押してしまいます。

そこで、ホームポジションの右小指の位置にある semicolon;、そしてひとつ右どなりにある quote'と入れ替えました。

 

 

以上のキーバインドの設定のうち、1 と 3 は、Karabiner の「Simple Modifications かんたんな変更」で設定できます。

2 の設定は少しややこしくて、「Complex Modifications」の以下の設定画面で、「Add rule ルールを追加」のボタンをクリックして出てくる窓の「日本語環境向けの設定」の「CTRLキーを単体で押したときに、英数・かなキーを送信する」を選び、ダウンロードします。下の図は、ダウンロードしたあとの状態です。

この設定では、左controlが英数キー、右controlがかなキーに設定されるのですが、MacBook のUS配列には右controlがありません。そこで、右 optionを右controlにキーバインドするのと合わせて使っています。上の「Simple Modifications」の図にある2の設定です。

 

 

この3つは、どれもホームポジションからできるだけ手を離さずに行なう、指の小さな動きで文章をかいたり編集したりするための、細やかな工夫のつもり。

ぼくのまわりには、ホームポジションにこだわらず、高速でタイプできる人がたくさんいます。そういう人には、あまり役に立たないように見える話しですね (笑)。

それでもぼくは、tks さんが以下の記事にかいてくださった、カーソル移動をキーボードで行なうことへのこだわりに、大いに賛同します。

 

こだわりとこだわりでないもの、こだわるべきでないもの

 

これこそ、ぼくが Org mode (Emacs) をつかいたい大切な理由のひとつです。もう7年前になりますが、以下の記事をかきました。

 

テキストの樹の中を鳥のように移動する

 

Org はテキストの樹の中を鳥のように移動する機能をそなえた、ぼくにとって理想の「文章エディタ」なのです。

そして、ここで紹介したキーバインディングは、その補助にあたるもの。

え? キーボードの配列変えちゃうなんて、メンドクサソウ?? ちがうコンピュータつかうときに困りそうだって???

たしかに、そのとおり (笑)。