メモ帳

2006-08-08

テキストエディタ「単語単位で移動」の違い 22:34 テキストエディタ「単語単位で移動」の違いを含むブックマーク テキストエディタ「単語単位で移動」の違いのブックマークコメント

hoge@moge,death/peso ff

というテキストの1桁目から「単語単位で移動」を繰り返したときのカーソル移動位置の違いを比較する。

秀丸:h→m→d→p→f

サクラエディタ:h→@→m→,→d→/→p→f

xyzzy:h→@→,→/→<space>

meadow:h→@→,→/→<space>

vim:h→@→m→,→d→/→p→f

VisualStudio:h→@→m→,→d→/→p→f

意外にもサクラVisualStudiovim が同じ挙動である。

ところで 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

RommyRommy 2007/07/04 00:56 はじめまして。たしかにEmacs系で単語の移動をしたときに途中にあるアンダースコアで止まってしまうのはすごく使いづらいですね。。。ただこれは素の状態がそうなっているだけなので、アンダースコアも単語の一部と見なしてよと、具体的には (modify-syntax-entry ?_ ”w”) とか設定しといてやると、まともになります。

parasporospaparasporospa 2007/07/05 20:46 どうも、今~/.emacsを見てみたら、同じものが既に書いてありました。
ちなみに私はEclipseの大文字で止まってしまうのも嫌いです。VimでもEclipseと同じにするスクリプトがあるので、好きな人もいるんでしょうけどね。

トラックバック - http://d.hatena.ne.jp/parasporospa/20060808/1155044076
2005 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
2009 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 06 | 08 | 09 |