スキップしてメイン コンテンツに移動

一日に30分節約できるかもしれない変態キーバインド(3/3)

IMEのON/OFF切り替えが人間には不可能な件



コーディングに関わらず、日本にいる限り日本語を入力することは避けられないことだと思われます。

しかし、この切り替えを行うためのトリガーとなっている半角/全角キーは人の手が届かない場所に配置されています。



日本で生きていくために、キーバインドでホームポジションに近づけます。



IMEのプロパティ、キー設定ツールで以下のように設定を行います。





これにより、IME ON/OFF 周りで以下のような操作が設定されます。

  • 文字入力状態外で無変換を押すと必ず IME が OFF になる
  • 文字入力状態外で変換を押すと必ず IME が ON になる
  • 文字入力中に無変換を押すと入力中の文字が半角になる(F8と同じ動作)
  • 文字入力中に変換を押すと入力中の文字が全角英数字になる(F9と同じ動作)
  • 文字入力中にひらがな/カタカナを押すと入力中の文字が全角カタカナになる(F7と同じ動作)




IMEのON/OFF以外に、日本語を入力する際に良く使うファンクションキーの動作を親指で自然に押すことのできるキーへ充てることで、人間の指でも無理なく日本語が打てるようになります。



よく使うキーが人外の域にいる件



日ごろコードを書く上で使うキーとして Enter や BackSpaceがあります。

また、自分はエディタとしてvimを使っているため、ショートカットのための Ctrl やノーマルモードへ戻るための Esc も非常に頻繁に使います。



これらのキーは、非常に良く使われるにもかかわらず、人の手では到達することができない、人外の域に生息しています。



キーバインドでホームポジションに近づけるしか生きる術はないでしょう。



以下を dot.nodoka に追記し、再読み込みを行います。



https://gist.github.com/1130249



これによって、以下のキーバインドが設定されます。

  • CapsLockキーを一度押すとEscが入力される
  • CapsLockキーを押しながら別のキー(例えばx)を入力すると、Ctrl + x が入力される
  • Ctrl + h(つまり、CapsLock + h)を入力すると、BackSpaceが入力される
  • セミコロンを入力すると、Enterキーが入力される
  • Ctrl + ; を入力すると、セミコロンが入力される




ここで、最も異質なのがセミコロンをEnterとしてしまうところですが、Enterキーというのはコーディングにおいて最もよく使うキーのひとつであることは自明なので、セミコロンを退避させてEnterキーに差し替えることはそれほど不自然なことではないでしょう。



一部の記号が人間に押されることを考慮していない件



コーディングにおいては、キャップ(^)やバックスラッシュ(\)等、一般の会話では用いられない記号を打ち込まなければならない場合が多々あります。

しかし、これらのキーはあまり用いられないためか、人間に押されることを考慮していない位置のキーに配置されています。



コーディングを続けるためにはキーバインドで我々だって人間なんだということを主張しなければなりません。



以下を dot.nodoka に追記して、再読み込みします。



https://gist.github.com/1130266



この設定によって、以下の記号を日ごろ打つ我々も人間なんだと主張することができます。

  • ^ (Ctrl + 無変換)
  • ~ (Shift + 無変換)
  • | (Shift + Space)
  • - (Ctrl + 変換)
  • _ (Shift + 変換)
  • = (Ctrl + ひらがな)
  • + (Shift + ひらがな)
  • \ (Ctrl + /)
  • ` (Ctrl + ‘)




Shift + Space はブラウジングなどで用いる可能性があるため、充てることができないかもしれません。適宜調整してください。



キーを拡張しても今までのキーを押してしまって慣れることができない



人に押すことのできないキーを押す技術を身に付けてしまったことで、本来の人間の姿を取り戻せなくなってしまった場合、どうにか矯正を行っていくしかありません。



以下のキーバインドを設定することで、人外の力を制限することができます。



https://gist.github.com/1130276



この制限は非常に強力なものであるため、よく考えて使う必要があります。

人外の力が弱まり必要がなくなったり、ストレスで寝込んでしまうなどの症状が現れたりした場合は、冒頭に # でコメントアウトしながら調整を行いましょう。



人間の手について考えながらキーを配置していたら自分のキーボードを触る人が居なくなった



キーバインドについて深く考察を進めていると、次第に自分のキーボードを触る人が減ってくる可能性があります。



キーの配置は人それぞれ最適なものが異なるため、自分に最適なものを突き詰めていくに従い、その他の人の最適なキー配置との距離が次第に広がっていくことは仕方がないことです。

しかし、ペアプログラミングや何かちょっとした操作を人に行ってもらうときなどに、自分以外の人が触ることのできないままでは、何かと不都合が発生します。

そのため、以下の一行を追加して人に使用してもらうときはあらゆるキーバインドを一度リセットする準備をしておきます。



key Pause = &LoadSetting("日本語 109 キーボード")



この設定により、Pauseキーを押すことで、それ以後、そのキーボードは元の「人間には扱いづらい一般的なキー配置」の姿に戻ります。

再度自分の作業に戻るときは、のどかの設定から再読み込みを行いましょう。



最後は自分で設定する



これはキーバインドに限ったことではないですが、設定はできる限り自分で一度書いてみるのが良いと思います。



自分で書くことで、「この配置はちょっと違和感があるが、変更するのが面倒」、「ここにこのキーを配置すればうまいこと行きそうだけど、設定方法が分からない」、「この文字を打ちたいのに何処に配置したか忘れてしまった」というようなことが少なくなってきます。





まとめ



以上、長々とキーボードの人間最適化について書きました。



まとめると、

  • キーボードはコーディングを行う人間に適した配置になっていない
  • 人間の手に適したキー配置を行うことで一日30分節約できる(かもしれない)
  • キーバインドソフトはのどか(or 窓使いの憂鬱関連)がお勧め
  • とりあえず以下を設定するとキー配列のKMNK最適化が行われる
  • キーバインドは一日してならず




という感じになった気がします。



紹介した以外にも自分最適化のために設定しているキーバインドはいくつかあるのですが、これは仕事環境や用いているエディタなどに依存してくるため、今回紹介はしませんでした。



自分の現行の設定はgitの構成を変更していなければおそらく以下から見られると思います。



https://github.com/kmnk/config/blob/master/dotfiles/dot.nodoka



何かおかしかったり、より良い設定などがあればお知らせいただけると非常にうれしいです。



また、こんなキー配列にしたらすごく捗るよ!とかも教えていただけると有り難いです。



ついこの前も、ずいぶん昔の記事なのですが、 http://pi200k.blog35.fc2.com/?no=70 のような配置を実践している方が居て、非常に夢がふくらみました。



Kinesisを買うことも一つの答えではあると思うのですが、どのマシンでもキーボードでも設定ファイルさえ読み込めば自己最適化されるというようなキー配置を色々と模索して、新たな配置を考えたら垂れ流していきたいと思います。

コメント

このブログの人気の投稿

USBメモリでポータブル環境を作る(その2)

その1では、環境作りの前の下地を作成しました。 その2では、実際にソフトを入れ、完成させて、使ってみます。 2.ポータブル環境用ソフト選び この辺りは基本的にこの二つのサイト 「USBメモリに入れて持ち運べる便利なソフト」まとめ PortableApps.com を参照して、自分の使いやすい環境にすべくソフトを詰め込みます。 中でも恐らく必須なのは、ランチャーです。 自分は前者のサイトでも紹介されている CraftLaunch をデスクトップやノートPCでも愛用しているので、こちらを使いました。 ランチャー選びの注意点として、 接続するPCによってドライバ名が変わるため ランチャーは相対パスで指定できなければなりません。 その辺り対応しているランチャーが先ほどの まとめ や、 USBメモリ徹底活用術 で紹介されているので 使いやすそうなものを選んでみてください。 自分はコマンド入力式のランチャーがなければ生きていけません。 残りのアプリケーションは好みで。 参考までに自分が入れているアプリケーションをさらすと CraftLaunch FFFTP FireFoxPortable foobar2000 DeleteDust StartScr Suspend IDM LimeChat PidginPortable SunbirdPortable TeraPad Twit UnplugDrive Portable Vim 現在のところこれらになります。 今現在使っているUSBメモリがそれほど容量が大きくなく、転送速度もそれなりなため あまり重そうなソフトは入れていませんが、 軽くて便利なソフトは他にも多々あるので、 個々使えそうなアプリを探してみてください。 重そうなので入れていませんが、OpenOfficeのPortableバージョンなどもあります。 3.用途と感想等 ということで、ここまで携帯環境構築を色々と垂れ流しました。 様々なソフトの設定がいつでもどこでも保持されている状態なので、 いつどこのどのPCでも自分の使いやすい環境が維持されることになります。 ただしまぁセキュリティ上ネカフェとかのPCで使うのはやめておいた方が良いと思いますが。 転送速度が十分速いお高めのUSBメモリであれば、 USBメモリに入れているアプリは自分の使う自宅

就職活動現況報告

今週若干余裕があるので少しネタの更新・・と思っていますが 研究も進めないといかんので保留。。 本を読む本 (講談社学術文庫) をほぼ読み終わったので 電車の中で次はviの本かWebプログラミング基本みたいな本を読もうと思います。 後は久々に漫画を衝動買い。 ぷりぞな6 1 (サンデーGXコミックス) これ。絵描いてる人が韓国の人らしい。 ブラックラグーンの作者が支持みたいなことが書いてあったので読んで見ました。 まー絵は萌え系みたいな感じだけどシリアス混じってて面白そうかな? Amazonでは絵が無いですが一応公式の紹介は GX作家&作品紹介 こんな感じです。 結構表紙飾っているようなので見たことある人も居るかもしれません。 で、タイトルの就活現況では、前回順調とか言ってましたが 志望していた6社のうちとうとう1社落ちました。 しかも結構でかいところです。 グループ面接の時点で落ちてしまったので、 もしかしたら表面の部分(礼儀とか仕草)で落とされたのかもしれないですが、 反省としては 内容が冗長で話す内容が長かった 何か反論された時に言い訳じみた答えを返してしまった 自分はエンジニア経験があるんだ的な内容を押しすぎた 辺りと考えています。 で、対策。 まず冗長分ですが、今のところ話す内容を完全に決めてしまわずに、 ある程度の枠を決めてその場で考えて話しているので もうちょっと 質問の後に結論を考えてから内容を話す ように気をつけようと思います。 反論じみた言い訳というのは、とっさに返してしまう対応策みたいなもので、 相手に この人は実務でミスしてもその場対応するんじゃないか という印象を与えてしまった気がしております。 ので、対策としては 一度相手の内容を肯定して、その上で簡潔にこうすればいいんじゃないかと思うと一言返す 位に留めようと思います。 最後にエンジニア押しは、一応自分の売りの一つではあるので止めることはせずに 事実だけをしっかり伝えて冗長分は省く というような感じにしようかと思います。 以上。 自分の反省なので発信するような内容じゃないんですが、 文に書かないとなかなか省みない性格なので文にして発信。 結論を言えば「もっと落ち着いて簡潔に」を心がけるといったところでしょう。 正直面接凄い苦手なのでなかなか落ち着くのはきついですが、 省みなずに 運

あけましておめでとうございます 2020

あけましておめでとうございます。 去年は1年通して仕事が忙しかったことを言い訳に、何も抱負を達成せずにのんべんだらりと過ごしてしまった一年でした。 去年一切達成できなかった抱負ですが、盛大にハードルを下げつつ、今年も書いておこうと思います。 - 英会話コースを受講する - 隔月で新しいことを体験する(間の月は次の月にやることを考える) - 個人でゲームを作成してプラットフォームへ上げる - 4半期ごとに達成状況を確認して、余裕があったら目標を追加する 以上です。 今年もよろしくお願いいたします。