あちこちで勝手に作られるショートカットキー達! 結論から言う。 ショートカットキー、お前ら全員一旦捌けてくれる?

ショートカットキーを使う人なら誰もが一度は通るだろうChromeでは C-h に「history(履歴)」なんて割りあててるので、一文字削除しようとして発狂しそうになったことありませんか?

なんか本当に腹立ってます。いわゆるショートカットキーとかキーバインとか言われるやつ(以下ショートカットと略)。あれ、なんでアプリ側が勝手に設定していくわけ?

例えば「bashとvim使ってます」さて、このbashキーバインドは? C-k で行末まで削除してませんか? C-r でインクリメンタルサーチにしてから C-nC-p で履歴見てませんか?**残念、それはemacsキーバインドです。**というか、そこまでしてviモード使いたいですかね?

Windowsにしても、Win10になってからちゃぶ台返しするようにVista/7までのユーザーエクスペリエンスガイドラインをガン無視推奨してますよね。あれ、これはWin8の流れ?**Windowsで極力ホームポジションから崩さず、アプリを終わらせたいなら M-f x 一択でしょ!**ホント、変なキーに割りあてないで欲しい。どのソフトとは言わないけど。

行き着く先は、アプリ毎に覚えるショートカットとチートシート

あちこちのアプリ、否OSも含めたソフトウェアが好き勝手にショートカットを策定したらどうなるか。ユーザーが振り回されて覚えようと、ショートカットのカンペ(チートシート)を作るなんて笑えない状況が出てるんですよ。

そもそもショートカットなんて、楽に操作をするためのモノじゃないの?

それをアプリ毎に使い分けるためにチートシート作ったり、強い人なら専用プラグイン作ったりとか…なにもかも本末転倒もいいところだろう。誰も疑問に思わないの?誰もどうしようとも思わないの?

と問い詰めたところで何も変わらん。現状に満足しているか、自分なりに折り合い付けてるから、疑問に思っても動かないのだよ。よくある話だ。

※こんなこと書いてる自分も、マストドン向けチートシート記事をQiitaに投稿しています。

できることから、はじめよう

閲覧と文章作成系は、ショートカット統一こそが急務だと思うんですよ。自分の視座では

  • Windows
  • vim
  • Emacs

ざっくり、この分類で行けるんじゃないかと思ってます。そして、**vimとEmacsの人は放っておきましょう。**だってあいつら鬼のようにスキルあるもの。

問題は、割と多数派と思われる(そしてもりゃきも含まれる)Windows分類。ここで、Windowsの標準メニュー(Windowsユーザーエクスペリエンスガイドライン 7/Vista p.252~p.253より)から引用する。

  • ファイル(F)

    • 新規作成(N) Ctrl+N
    • 開く(O)… Ctrl+O
    • 閉じる(C)
    • --------------------
    • 上書き保存(S) Ctrl+S
    • 名前を付けて保存(A)…
    • --------------------
    • 送信(D)
    • --------------------
    • 印刷(P)… Ctrl+P
    • 印刷プレビュー
    • ページ設定
    • --------------------
    • 1 <ファイル名>
    • 2 <ファイル名>
    • 3 <ファイル名>
    • --------------------
    • 終了(X) Alt+F4 (通常はショートカット キーなし)
  • 編集(E)

    • 元に戻す(U) Ctrl+Z
    • 繰り返し(R) Ctrl+Y
    • --------------------
    • 切り取り(T) Ctrl+X
    • コピー(C) Ctrl+C
    • 貼り付け(P) Ctrl+V
    • --------------------
    • すべて選択(L) Ctrl+A
    • --------------------
    • 検索(F)… Ctrl+F
    • 次を検索 F3 (通常はコマンドなし)
    • 置換(E)… Ctrl+H
    • ジャンプ… Ctrl+G
  • 表示(V)

    • ツール バー(T)
    • ステータス バー(B)
    • --------------------
    • ズーム(Z)
    • 拡大 Ctrl++
    • 縮小 Ctrl+-
    • --------------------
    • 全画面表示(F) F11
    • 最新の情報に更新(R) F5
  • ツール(T)

    • --------------------
    • オプション(O)
  • ヘルプ(H)

    • (プログラム名) ヘルプ F1
    • --------------------
    • (プログラム名) バージョン情報(A)

…異論は認める。というか俺自身、これは納得いかない!

そもそも、ガイドラインが必要だった理由

さて、ここでWindowsユーザーにはなじみ深い「切り取り、コピー、貼り付け」の当時の実装方法、例として C# におけるテキストのコピー実装を紹介したいと思う。

  1. MenuItemコピー(&C) を挿入、プロパティ ShortcutKeysCtrl+C を設定。
  2. Click イベントに、たとえば textboxMain.Copy(); などと書く。

以上である。**ゴリゴリのハードコーティングである。**ハードコーティングを必要とするからこそ、ガイドラインが必要となり、大きく踏み外さないような暗黙ルールがあったわけですね。それが今や無法地帯に見える。なぜか?

良くも悪くも *nix 系文化が浸透した影響だろう。知らんけど。

一時期、開発者はWindows離れを起こした。ファッションではなく実用面で Mac を選択した。そして、有償OSとして開発者を取り戻すために現 Windows Subsystem for Linux が標準実装された。しかし Mac の相対的な値上がりに辟易しながら Windows に戻らなかった人は Linux に流れた。この変遷の中でvimが流行したのだろう。

Linuxクライアントなんて誰も使っていない?バカを言っちゃあいけない。開発プラットフォーム人気は2018年Stack Overflow調査でLinux(48.3%)1位だぞ。

さてこのLinuxはともかく自由である。思想運動的に自由である。そして、おそらく現状その自由さに耐えられるユーザー数は決して多くはない。その受け皿としてUbuntuが重宝されているのだろう。そのUbuntuがWindows的ブラックボックス化してきている問題があるものの…

ちょっと話が逸れてしまった、すなわちvimなどを経験して、ハードコーティングが当たり前ではないということが周知の事実になってしまったのだ。

それゆえ、ハードコーティングのショートカットが無法地帯に見える、というのが俺なりの仮説だ。

お前ら、ある程度の自由は欲しくないか?

さて、もりゃきのブログは常時赤字経営を売りにしている(するなよ)。すなわち、何を宣伝しても貶しても赤字だ。

そんな中で、正直「だからこれがお勧めだ」と薦められるようなモノは無い。

vimは変態操作で、何気にWindowsでは遅い。Emacsの学習曲線は渦を巻いてるが、どうも Debian 的安定を意味しているわけでもなさそうだ、何より Windows で使うのが修羅の道である。

消去法的に、Windowsそしてマルチプラットフォーム的には、Visual Studio Code(以下VSCodeと略) が比較的マシであろう。

た・だ・し!VSCode貴様の力だけでは全然ダメダメだ!

プラグインを入れればどうこう、という話でもなさそうなんだよね。 現状、ショートカット設定も鬼のように辛い。

何より標準キーバインドとのバッティングが辛い。

すなわち冒頭の結論に至る。

**ショートカットキー、お前ら全員一旦捌けてくれる?**一旦捌けてくれればさ、その上にデファクトスタンダードなキーバインド戦争を起こせるじゃない?

そんなデファクトスタンダードをユーザーの手で選ぶことが**「不自由な世界での自由」**だと、俺は思ってる。