w,e,bを直観的にするVimscript


vimではカーソル移動の基本はhjklであるわけだが、これでは弱すぎる。
そこでw,e,b等をよく使うわけだが、これは本当に使いづらい。
何故か。カーソルがどこに飛ぶか分かりづらいからだ。
wは次の単語(Word)に飛んでくれるコマンドだ。行の終りのほうにもwを数回押すだけで簡単にアクセスができてしまうわけだ。聞くだけでわくわくしてしまう。もちろんf,tというコマンドで動くという手もあるわけだが、w,bの良さは惰性にあるのだ。何も考えずにポンポン押すだけでいいんだよ。最高じゃない。
というわけでwだ。
もしカーソルを行の微妙に遠い場所へ動かしたいとき、

もちろん、のように飛びたいと思うのが人情というものだろう。

ところがどうだ。現実は非情だ。

アルファベット以外の記号ドットや括弧でいちいち躓いてしまうのだ。
そこで思考はさえぎられる。先ほど考えていた良いアイデアは永遠に消えさる。まあそれもいい。また熟成されて思い出すさ。まあそれはともかく、こんなものをデフォルトで使っている奴は変態だね。使ってたけど。使いづらいと思っていた。


なぜ使いづらいのか。目的まで何回押せばいいのかが分かりにくいからだ。
人間には、デフォルトでサーチ機能がついている。たとえばはてなホッテントリを見ると、訪問済みは赤く、未訪問は青いリンクが羅列される。これらを同時にみることは結構めんどくさい。どちらかというと未訪問のみ、訪問済みのみにフォーカスを充てることになるだろう。その方が簡単だからだ。人間は、映像から対象の情報のみをすばやく取得できるようになっている。というより、選別することがデフォルトになっていて、むしろ一度に認識することに長けてはいない。さらに、その検索情報の定義はあいまいだ。先ほどのように青と赤というように色で選別したり、日本語と英語、というようにして無意識に大雑把に選別することになる。ちょっと慣れれば単語くらいはそれなりの速度で検索することができるようになる。


しかし、その選別は好きにできるわけではない。まあ練習すればできるのだろうけど、それより外部処理に頼ったほうが楽だし。
どうやらアルファベットと記号(.,;:'"/><%!等簡単なもの)は簡単に選別できるが、それらを混ぜることは意外と困難であるらしい。


この文を見たとき、人は自然とアルファベットにフォーカスを当てることになる。それだというのに、wを押すと(デフォルトでは)それら意識の当たっていないドットでいちいち引っかかってしまうのだ。気持ち悪い。それに加え、ジャンプする幅が極端に変わりすぎる。感覚でカーソルがどこに行くか分からない。相当気持ち悪い。


ということでスクリプト書いた。b,w,eにおいては、[a-zA-Z0-9_]で構成されるStringsにしかフォーカスが当たらなくなる。数字を削ろうかどうか迷ったけど一応入れておいた。b,e,wが理想的に動いてくれるため本当に気持ちいい。B,E,Wはまだ作ってない。いらない気がするけど。
.vimrc(winなら_vimrc)を作って以下をコピペして$HOMEにでもほ織り込むといいよ!!
(まあ長いから外部スクリプトにしたほうがいい気もするけど)Vimscriptはリスト等では0から始まるのに、row,colは1から始まるんだね死ねばいいのに。
まあでもvimscriptの代わりにpython使えるらしいよ。

ビジュアルモードで使えない,数字が使えない,2バイト文字だと使えない等問題がいろいろ発生.

//11.21 22:00ファイルTop,Bottomでの無限ループバグ修正
//11.22 16:002バイト文字のみの無限ループバグにより公開停止