記号を整理して並べるためにカンマピリオドのシフトは!?にすべき
結論は上記記事のとおりなのですが、ちょっと別の筋道で書いてみます。
記号は論理的に整理したほうが打ちやすい
大岡俊彦さんが、スモールキーボードが「理解不能」という発言に対して、「なぜこうなっているのか」というアンサー記事を書いています。
その中に、記号の並び方に関する部分があります。
そう、記号を整理して並べることで、タッチタイピングもしやすく、覚えやすくなります。
スモールキーボードに限った話ではありませんが、でかいキーボードでこれをやると、左右に並べたキーの片方に指が届かないみたいなことが起こります。
なので、指が届く範囲にしかキーがないスモールキーボードでやったほうがより効果的、といえます。
論理的に整理するためには論理的でない組み合わせを解体する必要がある
そこで問題になってくるのが、既存の記号組み合わせです。
「記号の組み合わせ」と言った時、2つの意味が考えられます。わかりやすいので、US配列を例にします。
一つは、物理的なキーの位置関係。 [ と ] が横並びになっていますね。
このように、記号同士を物理的な位置関係によって関連付けることを指す用語はないので、僕は勝手にカップリングとかクラスタリングと読んでいます。二つの組み合わせならカップル、それ以上ならクラスターです。
もう一つは、同じ物理キーの通常とシフト。 ’ と ” 、 ; と : などが同じ物理キーに割り当てられています。
この通常とシフトの組み合わせはペアリングと呼ばれていて、一般的にはロジカルペアリングとタイプライターペアリングがあります。
ただ、ロジカルペアリングというのは、文字コード順という意味での「論理的」なので、記号そのものの役割は特段考慮されていません。
個人的には、この通常とシフトのペアリングが比較的マシなのが、US配列のJIS配列に対する最大の優位点だと思います。
ここで、冒頭にリンクした記事で紹介した汎用キーマップを見ていただくと、アルファベット以外の数字・記号が徹底的にカップリング・クラスタリングされていることがおわかりいただけるでしょう。
クラスタリングしづらい独立的な記号は、それはそれでレイヤー1行1にまとめてあります。
それに対して、ペアリングは「ほとんど」考慮されていません。シフト側の記号もほぼ全部どこかのレイヤーに配置されており、レイヤー切り替えキーしか押す必要がないからです。
その数少ない例外が、カンマピリオドのシフトということになります。
カンマピリオドのペアとかいうでかい石
日本語と英語以外の言語でどうかは知りませんが、この二言語の文章入力では、カンマピリオドは頻繁に使います(Twitterとかのブロークンなテキストは別として)。
なので、これらをデフォルトレイヤーから排除したキーマップはほとんど見ません。僕が28キーのキーボードを使うなら、エンターもスペースもバックスペースも諦めて、アルファベット+カンマピリオドにすると思います。
ここで問題になってくるのが、カンマピリオドのペアが < > であることです。
< > を山括弧と不等号のいずれと解釈するにしても、カンマピリオドとのつながりは弱いですし、クラスタリングするなら括弧系か数学記号でしょう。(両方に入れるのもアリ)
ここに ! ? を持ってくることで、カンマピリオド(というか句読点)との意味的なつながりを活かし、山括弧(不等号)を適切にクラスタリングすることができます。
用途が近いのに割当がバラバラの ! ? をカップリングしたい、というのもありますし、それだけならまとめてどこかのレイヤーに置いたっていいのですが、カンマピリオドのペアも同じくらい問題だと思います。
デフォルトレイヤーのシフトという1.5等地にあるのに使用頻度は(いまどきHTMLの手書きでもしない限り)低く、類似の記号と分断され、ペアとしての繋がりも弱い。
ペアリングの変更はキーの「並べ替え」よりもマニアックな行為だと思いますが、カンマピリオドのペアはキーマップ全体を整理するうえでのボトルネックです。
ここの整理は、ひょっとしたら左右一列ずつ削れるくらいのインパクトを持ち得ます。一見地味で奇妙でも、カンマピリオドのペアを変えてもよい、という前提に立てばはるかに整理されたキーマップを作れるはずです。
キーボードショートカットどうすんの?
それなー。
JISキーボードの例でいうと、「!」は「Shift 1」ですし、「”」は「Shift 2」です。「<」をどこに配置しようが、実際にパソコンに送られているのは「Shift ,」です。
なので、Shift絡みのキーコンビネーションはどうしても混乱しがちになります。このへん、もともとカップリング・ペアリングがそれなり整理されている英語キーボードとして使ったほうが楽ではあります。
ただ、MacならUS(ANSI)として使うで問題ないとして、WindowsでUSキーボードとして使うとかなキーとかが認識されないんですよね。
これも、たとえばGoogle日本語入力なら、かなキーの代わりにF13とか割り当てておいて、F13でIMEオンにする、というやり方で解決はできるのですが。
vscodeみたいなショートカットを自由に設定できるアプリなら、ほとんど問題はありません。キーボードの配列に合わせて設定すればいいだけですので。
しかし、MS Officeなどのショートカットをいじれないアプリではどうすればいいのか。むしろそういうアプリではShiftと記号絡みのショートカット自体が多くない印象もありますし、AutoHotkeyとかでむにゃむにゃする方法もありますが、「どうとでもなる」というのはちょっと不誠実かなと。
キーボードショートカットがおかしくなる可能性はあるけど、まあそんなに多くはないんじゃない?というのが僕の意見です。