Vim のキーバインドを他のアプリケーションでも使いたい!

このエントリーをはてなブックマークに追加
初めまして。シャノンに去年新卒で入社し、プログラマ2年目になります、numaと申します。

私は去年、先輩の勧めでVimを使いはじめました。まだ、Vim歴半年ほどですが、今ではすっかり、あの独特なキーバインドの虜になってしまい、何でもVimのように操作したいという衝動にかられてしまいます。

今日はそんなわけで、思いっきり個人的な趣味に走ってしまうのですが、Vim以外で、Viライクなキーバインドが使えるアプリケーションをまとめてみました。キーバインドは好嫌いが分かれるものでありますし、誰にでもおすすめ出来るものではありませんが、一度ハマってしまえば手放せなくなる重要な機能の一つでは無いでしょうか。

画像はhttp://www.vi-improved.org/より引用です

Web ブラウザでVi風キーバインドを使いたい

vi派各種Webブラウザでは、アドオンによりViライクなキーバインンドが実現出来ます。これらの 拡張機能と同時にAutoPagerizeなど、次のページを自動で読み込むアドオンと組み合わせて使うと、jキーで次々にページ読込むことが出来るためさらに効果的です。


FireFoxの場合
WebブラウザのViキーバインド拡張機能と言えば、FireFoxのVimperatorが最も有名だと思います。
インストールと同時に、メニューバーやロケーションバーが消えてしまうと言うストイックなところまでVi譲りですが、拡張性が他のブラウザと比べても一番大きいようです。使い方は以下のサイトがよくまとまっています。

Chromeの場合
私は現在、ブラウザはchromeを使うことが多いので、これを愛用しています。Vimperatorと比べると、カスタマイズ制は劣りますが、特に設定ファイルなどを用意せずにデフォルトですぐ使えるので満足しています。Scroll step sizeをデフォルトより大きめに設定するとスクロールが早くなり、より効果が実感できるのでは無いでしょうか。


safariの場合
safariでも同様の拡張機能が実装されているようです


WEB番外編:gmailのキーボードショートカット
ブラウザ自体のキーバインドではありませんが、gmailはjやkのキー操作でメールのスレッド移動が出来たり、/で検索フォームに移動したりと若干ではありますがviライクな操作が採用されています。



Windows全般でViライクなキーバインドを実現したい


Web ブラウザのキーバインドを変更しただけでは物足りない、そんなヘビーViユーザーにオススメなのがKeyViです。
Windows上のすべてのアプリケーションにおいてvi likeな操作性を提供するという、Vi派にとってはある意味究極の環境を実現してしまおうという意欲的なキーボードユーティリティです。Xkeymacsのvi版と言ったほうがピンと来る方もいらっしゃるかもしれません。

実際にインストールして使ってみたのですが、実に素晴らしい再現ぶりです。全てのアプリケーションでキーバインドを変更してしまうと言うと、過激な印象を受けますが、なんと言いますか決してやり過ぎでは無く、GUIアプリにちょうど良い案配にviが取り入れられているのです。
普段Vimを使っていれば、ほとんど違和感無く使うことが出来ると思います、
これさえあれば、Excelであろうが、他のテキストエディタでも何でもかんでもViのように動かせてしまいます。

もし、Viキーバインドを使いたくないアプリがあれば、一時的に無効化したり、無効化するアプリを予め指定することも出来ます。

また、レジストリを一切使用しておらず、アンインストールはファルダの削除のみでいいようなので、手軽に試せるのも嬉しいポイントです。少しでも気になった方は試してみてはいかかがでしょう?


以下、KeyViよりキーバインドを転載。


・Inputモードで【Esc】を押す → Commandモードに移行
・Commandモードで【Esc】を押す → 【Esc】キーイベント発行
・Inputモードで【無変換】を押す → Commandモードに移行
・Commandモードで【i】を押す →Inputモードに移行
・Commandモードで【:q】【Enter】を押す →KeyVi無効モードに移行

●モード不問
 ・【変換】キーを押すとIMEのON/OFFが切り替わります
 
●Inputモード
 ふつうにキーを押した通りのキーイベントが発生します。(【Esc】【変換】【無変換】キーを除く)



●Commandモード
 ・hjkl : カーソル移動(←↓↑→)
 ・Shift + hjkl : 選択しながらカーソル移動(Shift + ←↓↑→)
 ・y : コピー(Ctrl + c) 
 ・yy : 行コピー(【↓】→ HOME → Shift + 【→】 + Home → Shift+End → Ctrl+c)
 ・p : ペースト(Ctrl + v) 
 ・o : 現在行の下に行挿入し、Inputモードに移行(End → Enter → Inputモード) 
 ・shift + o : 現在行の上に行挿入し、Inputモードに移行(Home → Enter → カーソル↑ → Inputモード) 
 ・x : 一文字削除(Delete) 
 ・Shift + x : 前の文字を一文字削除(Backspace) 
 ・dd : 行削除(【↓】→ HOME → Shift + 【→】 + Home → Shift+End → Delete)
 ・u : 直前操作の取り消し(Ctrl + z) 
 ・Ctrl + f : 1画面下にスクロール(PageDown)
 ・Ctrl + b : 1画面上にスクロール(PageUp)
 ・Ctrl + h : 前の文字を一文字削除(Backspace)
 ・0 : 行頭に移動(Home)
 ・$(Shift + 4) : 行末に移動(End)
 ・w : 次の単語に移動(Ctrl + 【→】)
 ・b : 前の単語に移動(Ctrl + 【←】)
 ・gg : 文頭に移動(Ctrl + Home)
 ・Shift + g : 文末に移動(Ctrl + End)
 ・Shift + i : 行頭に挿入(Home → Inputモード)
 ・Shift + a : 行末に挿入(End → Inputモード)


次の記事
« Prev Post
前の記事
Next Post »

1 コメント:

Write コメント
easter
AUTHOR
2011年5月9日 9:05 delete

初めまして。KeyViの作者のeasterと申します。
元々KeyViは完全に自分専用のツールとして作ったもので、「こんな変態ソフト、他に誰が使うんだろう?」と思いながらソースを公開したのですが、思いのほかたくさんの人に使っていただいているようで、うれしいやらはずかしいやら。
私自身はLinuxを教材にプログラミングを覚えたクチで、Perl+CGIが元々のスタイルなので、不慣れなC#で書いたKeyViのソースを読まれるのは実は少しはずかしかったり(笑)。
それはさておき、このたびは拙作KeyViをご利用いただき、ありがとうございました。

Reply
avatar
Related Posts Plugin for WordPress, Blogger...