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

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

英字配列か日本語配列か



キーバインドの話に入る前に、まずキーボードを選択する必要があります。



プログラミングをする際に用いられるエディタは日本製のではない限り、おおよそほとんどが英字配列を意識してショートカットが割り当てられているため、日本語配列では手の動きに無理が生じる可能性が高いです。



そのため、英字配列を選択する方も多いと思うのですが、自分は日本語配列を使っています。

理由は、キー数が多いからです。キー数が多いということは、その分充てられるキーの数が多くなるということで、モディフィアキー(CtrlやShift、Alt等)を組み合わせればホームポジションから押せるキーが著しく増加します。

配置の意味での英字配列は、キーバインドを使って充てれば良いので、日本語配列を使って損をすることは何もありません。



使っているキーバインドツール



キーボードの選択が終わったところでキーバインドの設定へ移りたいところですが、前段階としてそのキーバインドをどんなソフトウェアで実現するかというのが問題になってきます。

キーバインド設定ソフトには、割と有名なところで、changekey猫まねAutoHotKey 等があります。

自分は、シェアウェアの のどか を使っています。WindowsXPであれば、フリーソフトの 窓使いの憂鬱 でも、ほぼ同様の設定ができるはずですし、Windows7でも拡張された物などがあり、フリーでも使用できる方法があるようです。



日本語配列から英字配列へ



ここからようやくキーバインド設定の話に入ります。

まず、冒頭で説明したように、日本語配列をキーバインドで英字キー配列へ変更しましょう。

のどかの設定ファイル(詳細はのどかのページを読んでください)に以下を記述します。



https://gist.github.com/1130197



それから編集した設定ファイルをのどかに読み込ませます。

これで、日本語配列のキーボードでも、ほぼ英字配列のキーボードと同じ位置にキーが配置されるようになります。



人間の手が届く範囲



ここから徐々にコアな話に入ってきます。まず、これから紹介させていただくキーバインド設定を解釈して、自分なりに改造していくために考えないといけないこととして、人間の手の大きさがあります。



人の手をホームポジションに置いた際に指が届く範囲はキーボード全体をカバーすることはできません。人によって若干違いはあるものの、大体以下程度になると思われます。



(http://ja.wikipedia.org/wiki/キー配列#109.E3.82.AD.E3.83.BC.E3.83.9C.E3.83.BC.E3.83.89の画像を使わせていただいています)
  • 青:無理なくホームポジションから届くキー
  • 黄:指を伸ばすことでなんとかホームポジションから届くキー
  • 赤:人間には到達不可能なキー




驚くべきはコーディングやショートカットにおいて頻繁に用いられる、ControlキーやEnterキーでさえ人間が到達することのできない秘境にあるということです。BackSpaceやEscキーに到ってはこの世のものとは思えないほど遠くに配置されています。



このように一般的な日本語配列と自分の手を見比べることで、キーボードというのはキーバインドをしなければ使うことのできないデバイスだということが理解できると思います。



この気づきが、自分に最適なキーボードの配列を考える第一歩になります。



こ の先は、キーボードを扱う個々人で最適なキーバインドが異なってくるため、何が正解かというものは存在しません。日ごろコーディングを行ううえで、この キーがもっと近くにあれば、より自然に素早くコードを書くことができるのにという気づきと、普段使っているキー配置とのマージを繰り返してより最適なもの を導き出していく必要があります。



以下では、今現在自分がキーバインド設定で歩んだ道の一部を紹介します。自分もまだプログラマーとしては日が浅いので、まだまだ改善点は多々あるはずですが、最適なキーバインド考察の一助となれば幸いです。



次 : http://kmnk.blogspot.com/2011/08/3033.html



コメント

このブログの人気の投稿

就職活動現況報告

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

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メモリに入れているアプリは自分の使う自宅

sonictemplate-vim を denite.nvim で使うための source と kind を書きました

sonictemplate-vim を denite.nvim で使うための source と kind を書きました こうなって こうなって こう宣言したので Meguro.vim #9 で 進捗 を出してきました コメント等合わせても 50行 程度の実装です 概要 sonictemplate-vim を denite.nvim から呼び出すための拡張用 source & kindを書きました sonictemplate-vim-denite-extension これはなに? mattn さんが作成されている sonictemplate-vim の機能を、 Shougo さんが作成されている denite.nvim を経由して呼び出せるようにするための source と kind の実装です なにができるの? :Denite sonictemplate を execute すると、適用対象テンプレートの候補が denite.nvim のインターフェースでリスト表示される リストからテンプレートを選択( <Enter> )すると、ソースコードに適用される それ :Template でできるよ そもそも :Template までが command モードで入力された状態で <Tab> 等を押せば、候補が表示&補完される機能が本家の sonictemplate-vim 自身に備わっているので、必要十分ではあります ならなんで作ったの? 自分が denite.nvim のインターフェースにかなり依存して Neovim を用いているため、作業中の操作を極力ひとつに統一させておきたい denite.nvim 上で候補リストを表示することで、候補の絞り込み機能が提供されるため、少し便利になる Vimスクリプトコーディングのリハビリを兼ねて書きたかった (Python スクリプトだけど) 辺りが主な理由です なんで fork じゃなく別リポジトリで作ったの? 以前 unite.vim 用の source & kind を作ったときは、 Vim があれば使えたので一緒でも良かったのですが(実際当時はそこまで考えてませんでしたが)、今回は de