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

一日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



コメント

このブログの人気の投稿

Firefoxのvim化アドオンVimperatorを使ってみた

Firefoxのアドオン Vimperator をここ1,2か月ほど使っています。 機能的には、知る人(訳:Linux触る機会がある人)ぞ人知るテキストエディタvi又はvimの操作をFirefoxの操作に組み込んでしまおうというもの。 vimに慣れている人なら、導入して少し覚えるだけでマウスを使わずに普通のブラウジングはすべてキーボードで完結できるようになります。 タブのURLコピーや新しいタブでクリップボードにあるURLや検索文字列の検索をボタン一つで開いたり、タブ操作をキーボードの操作のみで出来るなど、慣れればかなり便利で、現在自宅、学校、仕事先すべてのPCに導入するまでに至っております。 操作詳細などは FirefoxのVimperatorがすごく便利 Firefox拡張:FirefoxをVim風のキーバインドで操作するVimperator このあたりを参照してもらえば主要な操作はわかります。直で言ってもらえれば自分が個人的に作ったよく使う操作一覧などお送りします。 さくさく動くのでほとんど満足なのですが、唯一コピペのWindowsデフォルトであるCtrl+cやCtrl+v等の操作が競合してしまうため、感覚的にコピーしたいと思った時にCtrl+Cを押してコピーできていないことによくはまってしまうことが難点な感じです。 今のところ対応策としてはテキストを選択してShift+yでヤンク(コピー)するか、Ctrl+vで1操作エスケープする状態にしたうえでCtrl+cなどする以外にはなさそうな気がします(他に方法があれば教えてくださいpq)。 ここのキーバインドのon/offなどが簡単にできれば最高なのですが、まだまだ発展途上な感じなので今後に期待。

git status と git branch ができる unite の source 書いた

書きました。 https://github.com/kmnk/vim-unite-giti すでに有りそうな気もするんですが、今のところ知らないのと、 http://kmnk.blogspot.com/2011/02/unitesvn-statussvn-diffsource.html で書くといって既に一年経っているのとで自分で書いてみました。 まだ仕事でがっつり使っていないので、バグや動作不全などあるかもしれません。 昔作った svn と違って何故か vim-unite-git じゃなくて giti なのは、日和っただけで深い意味は無いです。 インストール方法は割愛します。unite.vim 使っている方なら余裕なはずという想定で… 作ったsourceの名前は以下。 giti/status giti/branch 追記(02/29): READMEには追加しているんですが、sourceをいくつか追加しました。以後は README.markdown を参照してください。 giti giti/log giti/config  追記ここまで(02/29) それぞれ、独自 kind を定義していて、以下のactionを持っています。 giti/status add $ git add $FILES rm_cached $ git rm --cached -- $FILES reset $ git reset HEAD $FILES commit $ git commit $FILES amend ←動作が怪しい $ git commit --amend $FILES checkout $ git checkout -- $FILES diff $ git diff $FILES diff_cached $ git diff --cached $FILES git/branch run $ git checkout $BRANCH_NAME or git checkout -b $NEW_BRANCH_NAME delete $ git branch -d $BRANCH_NAME その他、以下の関数を用意しています。key map などして使えるかもしれないです。 giti#branch#delete_force(branch) $ git branch -D...

ホストOSからゲストOSへsshでアクセスできるようにする

前回 ホストOSからゲストOSのsvnを使えるようにしました。 同様なポートフォワーディング等を使って、sshでアクセスできるようにします。 1. やりたいこと ホストOS、その他PCからゲストOSにsshでアクセスする 2. やること ゲストOSでsshアクセスの設定 ホストOSでポートフォワーディングの設定 アクセスできるか確認 3. 操作の解説 ここまででsvnにアクセスできていれば面倒なところは無いのでさくさく進みます。 1. ゲストOSでsshアクセスの設定 1.1 インストール ゲストOS上で以下のコマンドを実行し、インストールする $ sudo apt-get install ssh 2. ホストOSでポートフォワーディングの設定 2.1 設定の更新 svnへポートを通した操作と似たようなことをsshのポート用に行います。 コマンドプロンプトで以下のコマンドを実行。VirtualBoxのインストール場所が異なる場合は調整してください。 また、svnと同様にアダプタタイプが「PCnet」の場合は「e1000」を「pcnet」に書き換え、また「VirtualBox_Ubuntu」は各自が設定したマシン名に書き換えてください。 cd "C:\Program Files\Sun\xVM VirtualBox" VBoxManage setextradata "VirtualBox_Ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP VBoxManage setextradata "VirtualBox_Ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22 VBoxManage setextradata "VirtualBox_Ubuntu" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 2222 2.2 設定の確認 念のため確認します。前記の位置で引き続き以...