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

投稿

2011の投稿を表示しています

ujihisa.vim#2 に行ってきました

愛を語るには長い道のりが必要であり、
まずは友達から始め、地道に歩まなければならない。

ということを学んだ勉強会でした。

Fin.

以下余談

多々勉強になったのですが、Kaoriyaさんの "Vimのソースコードをdisってみよう" で、とりあ
えず動くものを作ってユーザーを獲得して、そのユーザーを保持し続けることの重要性だというのを多々感じました。
これはツールだけじゃなくて、何にでも言えることだなぁと。

後ほど直で話を伺って、生きるモチベーションを頂きました。
きっとこんな自分でも、何か頑張れるんじゃないか・・・むりかな・・いや・・


その後、ちょっと前のエントリで出してみた物を、先輩に使っていただいたら、いきなりバグっていたりと、作ったら広めて使ってもらってdisってもらわないと何も始まらないなと反省したり。

色々と凹んだり凹んだりしましたが、楽しい勉強会(カンファレンス?)でした。

今度から勉強会等の懇親会は、片隅で佇んでるだけでもいいから参加しよう。


to 未来の自分

コマンド3発で割と最近のvim環境が構築できるパッケージを作ってみた

社内でuniteを布教しようとするも、vimscriptはインストールが面倒くさいと、なかなか広まらないので、makeコマンドを打てば勝手に環境を構築してくれるパッケージを作りました。

https://github.com/kmnk/vimrc-builder

Shougoさん作の neobundle.vim を使わせて頂いて、もりもり僕が割と良く使う vim plugin をインストールして、とりあえず使えるようにします。


$ git clone git://github.com/kmnk/vimrc-builder.git
$ cd vimrc-builder
$ make
mapleader を Space にしていて、unite 関連のkeymapは基本的に Leader × 2 を始動にしているので、大体はスペース2連の後何がしかを打つと unite の何かが動くようにしています。


https://github.com/kmnk/vimrc-builder/blob/master/vim/profiles/unite.vim


これを基にして、社内環境に合わせてカスタマイズした物を社内リポジトリにアップしてみようかと目論んでいますが、使われるかなぁ。。


精神に余裕のあるときにデフォルトで入れているキーマップを書きます。

一日に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が入力される

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

英字配列か日本語配列か

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



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



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

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

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



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

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

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

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



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

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

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

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



https://gist.github.com/1130197



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

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



人間の手が届く範囲

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



人の手をホームポジションに置いた際に指が届く範囲はキーボード全体をカバーすることはできません…

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

はじめに

この記事は半分本気ですが、半分ネタです。また、体調不良でテンションがおかしい状態で書かれています。そのため、この記事を真に受けて慣れるまで生産効率が著しく下がったとしても、当方は一切責任を負いません。

また、既に何度か記事にしている変態キーバインドの話とかなり被っています。最新版として生暖かい目で見守ってあげてください。

あ と、この記事はWindowsでないと実現できないものが多いですが、自分がWindows教の信者なのは、このキーバインドが充てられるか否かに依ると ころが非常に大きいため、Mac教の方々で同じようなキーバインドできるぜ!というものがもしあれば是非お知らせいただけるとありがたいです。



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

プログラミングを効率的に行えるよう日々環境の最適化を行っている皆様であれば、当然キーボードの最適化も行っていらっしゃると思います。



ハー ドウェア的な意味であれば、HHKやRealforceなどの静電容量無接点方式のタイプしているだけでストレスが解消されるようなキーボードを使ってい たり、Kinesisの様な一般的なキー配列?何それおいしいの的な最も器用な指のひとつである親指を最大限に使用できるキーボードを使っている方もい らっしゃるでしょう。



ちなみに、自分はThinkpadのトラックポイントキーボードを愛用しており、マウス?何それおいしいの的な方向を進んでいます。タッチパッド?何それおいしいの。



ハードウェア的な意味では英字配列(104)と日本語配列(109)のどちらを選択するかというのも、こだわりのひとつだと思います。今回はこのキー配列の話も含めて、一日30分節約することのできるキーバインドをご紹介します。



とりあえず30分節約する

ここから長々とキーボードの選択やキー配列の話をするのですが、おそらく「御託はいいからとりあえず何で30分節約できるのか述べよ。」という方が大多数だと思うので、とりあえずどういう話なのかをさくっと書きます。



まず、前提条件を下記します。

OSWindowsキー配列日本語配列キーバインドソフトのどか(窓使いの憂鬱)



次に、のどかのキー設定は以下にあげています(2011/08/07現在)。

https://github.com/kmnk/config/blob/df6528c8b4f992f46f5995…

vimスクリプトのuniteでsvn statusとsvn diffするsource書いた

書きました。
普段使い用に自己満足化した状態で作ってしまっているので、
必要だろうと思われる設定や機能等、教えていただけるとありがたいです。
更には“既にもっと便利なプラグインあるよ!”みたいなのもあれば教えていただけると助かります。

使い方は unite.vim を入れた上で、autoloadディレクトリをマージしてもらえればいけると思います。

そもそも Unite とは、emacsのanythingプラグインと似た感じの動作をするvimのプラグインです。すばらしいですね!

Uniteを開発されているShougoさんのリポジトリ(github):https://github.com/Shougo/unite.vim

ということで僕が書いた駄ソースは以下になります。

https://github.com/kmnk/vim-unite-svn

svn/statusに対してsvnコマンドを実行するactionを拡張していますが、ベースは jump_list なので特に違和感は無いと思います。
拡張しているのは以下のコマンドです。


複数選択可

commit
add
revert
delete
diff




複数選択不可

blame
log




以下、簡単な動作説明


Unite svn/status すると


簡単な一覧が出ます。


Tabでメニューを出して add と打って実行すると


svn addされてステータスが変わります。


複数ファイルの場合もスペースでマークして


Tabでメニューを出して commit と打って実行すると


コメント入力画面になるので(普段使わないので -m 対応してないです)、記述して:wqで


コミットされます。


適当に編集すると差分が発生するので



選択して diff と打って実行すると


Unite svn/diff:{file name 1}:{file name 2}:... が実行された結果が出るので、見たい行を選択して Enter を押すと


デフォルトの open が動作して対象ファイルの対象行に飛びます。

一部を選択して操作するのが若干簡単になるかもしれません。

特に今のところ status と diff に関してはこれで困ってないので他により便利なsourceが見つかったりしなければ、次は blame を書こうと思います。

追記(11/02/12 23:22):
書きました。
blame差分

大き目のブランチで試していな…