問題はテキスト入力なんだよ

 面倒だなぁと思いつつyakshaveを何とかEmacs風にならないか試して放棄しそうな勢いの図。

■yakshaveで試してみたもの

 yakshaveを入れただけでは全然emacs風のキーにならなかったので適当に試してみた。といっても例によってやり方が全然わからなかったので適当にショートカットのキー設定する系拡張を幾つかダウンロードしてソースをみてyakshaveで動きそうな形に変えて入れただけという感じ。特にテキストエリア内でのカーソル移動とかはそのものずばりがないので、セレクションの領域を0で指定して疑似的にカーソル移動していたとか、随分妙な方法だけど、なるほどっていう感じの方法でやっていたりして驚いたり。

yak.bindings.add({
'M-q': {
   onkeydown: function(e) { alert('Hello, world!'); }
 },

'C-a': {
   onkeydown: function(e) {
      var range = window.getSelection().getRangeAt(0);
      var elem = range.startContainer.childNodes[range.startOffset];
      if (elem) {
        var value = elem.value;
        var start = elem.selectionStart;
        var pos = elem.value.lastIndexOf('\n', start - 1) + 1;
        elem.setSelectionRange(pos, pos);
      }
  }
 },

'C-e': {
   onkeydown: function(e) {
      var range = window.getSelection().getRangeAt(0);
      var elem = range.startContainer.childNodes[range.startOffset];
      if (elem) {
        var value = elem.value;
        var start = elem.selectionStart;
        var pos = elem.value.indexOf('\n', start);
        if (pos < 0) {
          pos = elem.value.length;
        }
        elem.setSelectionRange(pos, pos);
      }
   }
 },

'C-f': {
   onkeydown: function(e) {
      var range = window.getSelection().getRangeAt(0);
      var elem = range.startContainer.childNodes[range.startOffset];
      if (elem) {
        var pos = elem.selectionStart + 1;
        elem.setSelectionRange(pos, pos);
      }
   }
 },

'C-b': {
   onkeydown: function(e) {
      var range = window.getSelection().getRangeAt(0);
      var elem = range.startContainer.childNodes[range.startOffset];
      if (elem) {
        var pos = elem.selectionStart - 1;
        elem.setSelectionRange(pos, pos);
      }
   }
 }

});

textareの折り返しを仮想で行末とかみなす方法はよく分からなかったので実際の改行位置まで行ってしまう。テキストエリアの幅を取得して行頭からの数を数えるとかそいうの?ただ、C-pとかC-nは仮想行じゃないと変な事になりそうなのでより面倒な気がする。まあ、でもね。やったらできそうだし、この辺はやってもいいと思うんだよ。実際。ただ、アドレスバーで押したらこれが動かないんだよ実際。まあよく考えたら動かないのも何となく分かるんだけどさ、急にやる気が失せたわけだよ。

で、他のキー設定関係の拡張はどうしているかと思っていろいろ見てみたんだけどvi風にするとかいっぱいあるわけだが、そもそもテキスト入力は全然vi風じゃないわけ。もう馬鹿かと思った。っていうかリンククリックするのをキーボードでやるとかページスクロールをキーボードでやるとかそんなのばかりで、肝心のvi様の有難いテキスト入力機能がないんじゃ何のためのvi風だよと。っていうかマウス主体でブラウズしててテキスト入力いらない時までキーボードに持ち替えるとかどんな苦行何だそれっていうね。逆に苦痛だとしか…。まあ人の感性の問題は色々あるからまだいいんだけど、肝心のテキスト入力の部分は完璧に放棄してるのばかりで、何のためのキーカスタマイズなんだかと思わずにはいられなかった。そして急激になえた私は窓使いの憂鬱の後継ソフトがどうなったのかを調べ出したわけで、結局よく分からないのでもうXkeymacsでいいかなとか。
 ただ、Googleには一言言いたいよほんと。chrome関係もfiremacsみたいな拡張ありますかって聞いてる人とかemacs風にしろと叫ぶ外人とかいっぱいいたわけで、っていうか肝心の情報が出てこないでそいう願望的な要望が大量に検索結果に出てくる。まあ私だけじゃないんだなと思うと同時にgoogleはどうでもいいキー設定項目はいいから早くテキストエリアのキーコンフィグを簡単に出来るようにしてほしい。もうテキストエリア以外は正直どうでもいいから。