テキストエディタ「単語単位で移動」の違い

hoge@moge,death/peso ff
というテキストの1桁目から「単語単位で移動」を繰り返したときのカーソル移動位置の違いを比較する。
秀丸:h→m→d→p→f
サクラエディタ:h→@→m→,→d→/→p→f
xyzzy:h→@→,→/→
meadow:h→@→,→/→
vim:h→@→m→,→d→/→p→f
VisualStudio:h→@→m→,→d→/→p→f
意外にもサクラ、VisualStudio と vim が同じ挙動である。
ところで vi の w の挙動はかなり複雑なのはご存知だろうか。例えば
hoge sage
というテキストの h の上で w をするとカーソルは s へ行くが、dw は s の前のスペース(含む)まで削除し、cw はスペースの手前の e までを変更になる。一貫性という観点から見れば美しくないが、これは最も利便がよく、かつ自然に感じられる挙動である。論理的な審美性よりも実用性を重視する vi の設計思想の好例だろう。

なお Visual Studio やサクラでも C-Delete はスペース(含む)までを削除する。しかしこちらは逆に「単語の末尾までを選択」というコマンドがないため不便に感じることがある。C-S-Right は「単語の末尾までを選択」という挙動にしてほしいというのは私だけだろうか。

xyzzy, meadow正規表現 [A-Za-z0-9][^A-Za-z0-9] で検索しているように見える。逆移動の M-b は [^A-Za-z0-9][A-Za-z0-9] 検索のようだ。まさに一貫しているが、「単語の末尾へ移動」というのと _ (アンダースコア)で止まってしまうのは使いづらくないだろうか。

使い勝手という面では、秀丸式の移動単位が大きすぎず、細かすぎずでベストなように思う。あらゆる点でバランスがとれ、そつのない秀丸らしい単語移動である。

単語移動1つとっても各エディタの個性が見て取れるものである。

[追記]
サクラエディタには「単語単位で移動するときに単語の両端に止まる」というオプションがある。すばらしい。


参考:
Vz Editorのようにカーソルを構文境界毎に移動させる
http://d.hatena.ne.jp/Rommy/20060818/1155852221