vim のキーバインドをダイヤモンドカーソルに変更する
wikipedia:ダイヤモンドカーソル って何?何なのよー
@phpbeginners ダイヤモンドカーソルはControl+ESDXのことを言います。QWERTYでダイヤモンド型になることから、そう呼ばれています。Emacsやviのカーソル移動のキー割り当てはダイヤモンドカーソルではありません。
2011-01-18 17:11:15 via Tween to @phpbeginners
歴史的背景も、この話題が出た経緯も、どういう空気なのかも全く分かりませんが、つまりは vim でダイヤモンドカーソルのキーバインドに変更するのはどうやるの?って言っているのですよね。
以下のように .vimrc に定義することで簡単にキーバインドを変更できます *1。nmap がノーマルモードでのキーバインド、imap が挿入モードのキーバインドです *2 。ダイヤモンドカーソルへキーバインドを変更すること自体はあまり意味がないのですが、例えば、コマンドモードで任意のコマンドをショートカットキーで実行させたいときにとっても便利です。
$ vi ~/.vimrc " keybind settings nmap <C-S> <LEFT> imap <C-S> <LEFT> nmap <C-E> <UP> imap <C-E> <UP> nmap <C-D> <RIGHT> imap <C-D> <RIGHT> nmap <C-X> <Down> imap <C-X> <Down>
Fedora13 の環境で試してみたのですが Ctrl-S のキーバインドの変更が意図したように動作しません。Ctrl-S と Ctrl-Q はフロー制御文字としてターミナルで特別な扱いになっているのでその設定変更が必要です *3 。この辺はターミナルかプラットフォームのデフォルト設定によって異なるのかもしれません。
$ rpm -q vim-common gnome-terminal vim-common-7.3.055-1.fc13.i686 gnome-terminal-2.30.1-1.fc13.i686 $ stty -ixon -ixoff
これでダイヤモンドカーソルを堪能できました。
最近、見つけたのですが Vim-users.jp が素晴らしいです。Vim Hacks Project に目を通すと vim を使う楽しさがもっと広がると思います。
*1:vimをカスタマイズして、使い慣れたキーバインドを設定する - builder by ZDNet Japan
*2:map は全てのモードで有効になるとあったのですが、私の環境では動作しませんでした