久々の投稿

記事の投稿を最近してなかった。別に投稿するかどうか悩んでたとかそういう文化人的な話ではなく、投稿をしてなかった。vimのが適切に突っ込まれて云々とかいう話でもない。

vimの話の続き。ブコメで意味が分かるように書けよという突っ込みをひたすら受けた。意味がある程度汲めた人ですら、vimがおもちゃではない、というところを汲んで終わりだった。はっきり言って伝達能力不足で申し訳ない。

前提の共有が重要だとお前はバイト中に学ばなかったのかと自分に突っ込んでやりたい。前提(特に、何を優先すべきか、など価値観)の共有がなされなければ人の話というのは基本的に意味不明なのだ。

例えば、私はよくコーヒーを飲んでいるが、それを観測しただけの人が私はカフェインをとりたいのだと思っている可能性もある。カフェインをとれますよ、とエナジードリンクをおすすめしてきても、その観測した部分だけからは破たんしていないが、もし前提の共有なしに言われたら私は面食らうだろう。

ん、この例えわかりにく。まぁいいや、元の話に戻そう。

vimがおもちゃ的なエディタでないことに心底落胆した」というのが、人びとからは意味不明に見えるのだと思う。ここに、価値観を突っ込むと、

vimがおもちゃ的な(=触り心地を追求した)エディタでないことに心底落胆した」

という風になる。もちろん、今触っている人々はそうは思ってないだろうし、結論としては私が考える良い触り心地というのは多くの人は共感できないキモい触り心地かもしれない。(例えば私はwasdに指を置くとき人~小指の4本ともを使っていてキモがられたことがある。)

私がemacsを使っているのは、触り始めてしまった(学習コストを割くのが面倒だった)のと、端末で同じバインドが使える(脳内の状況スイッチコストが低い)という点が大きく、拡張性とか、直感的な触り心地はどうでもよかった。(実際、しばらく前まではhをglobalなdelete-backward-charにする1行以外は消しても困らなかった。)

私がevil(vim)に期待していたのは、hjklをあそこに大胆にも配置したのなら、他のキーも学習コストなんか度外視してただ単に理想の機能の並びを置くということだった。WinのC-zxcvはそういう例かなと思っている(yが遠いのでクソとか思うけど)。ここをおもちゃ的な、という表現をした。

ゲームでLボタンとRボタンの位置は対を成すことが望まれて作られているだろうし、Lが移動ならRは逆方向への移動だろう。もちろん、Lが2つあったりRが2つあったらその2つのほうが強い結合をしたりもするし、独立した機能が割り当てられたりもする。ただ、変な対応づきはしてほしくない。例えばLとRが2つずつあるときであっても、L1とR2、L2とR1が対応し、その2つの組は独立している、というような割り当てが行われるゲームはないだろう。(そんなことをする開発者が居たら首を掻っ切らなければならない。)

エディタであれば、対応するような機能同士を隣り合わせて置いたり、左右で逆の位置に置いたりする、というのがおもちゃ的な発想の適用の仕方である。

例えば、aの機能はuやeの位置に来てほしい。iと対応しているように私には感じられる。(対応してないと感じられる方もいるかもしれないが。)

幸い、vimでもemacsでも設定ファイルがある(ので割り当てなどは変更できる)ので、おもちゃにしていこうと思う。右手を移動とモード切替専用に、左手をその他便利機能に、みたいな方針にすると気持ちいいかな。すでにおもちゃにしたよ、という報告は非常にありがたいし、参考にしたい。