≠ナローイング
ところで、emacs/xyzzy のナローイングに相当する機能の基礎を作っているのですが、emacs/xyzzy のそれのような、ナローイングをしたままの編集、を実現しようとしているわけではありません。範囲内置換を実装するための手段という位置付けです。
仮にナローイングしたままの編集というのを実現するとなると、
- アクセス禁止領域へのキャレットの移動の制限
- ナローイング中にナローイングしたときの端点の退避/復帰
なんかを考えなければならないと思うので、めんどいのです。
というわけで、とりあえず置換に組み込んでみます。
検索のオプションとして、
- 正規表現
- 大文字と小文字を区別
- すべてのバッファを対象
- ループして検索
- 下方向へ検索/上方向へ検索
というのがあります。これらに加えて、「範囲内を置換」というのが増えることになります。既存のオプションとの兼ね合いはどうかというと、「すべてのバッファを対象」との関係が気になるところです。これらの同時指定を許すことはできますが、あらかじめ各バッファで置換したいところを選択してから置換。。。という使い方になるなあ。まあそれはそれで、いいのかも。
あとは検索方向との相性が悪いかも。選択を開始して、下方に選択範囲を伸ばしていった状態で範囲内置換(下方向へ検索)をしたら、当然何もヒットしないです。
なので、範囲内の置換を実行したときはキャレットは選択範囲の端点に強制的に移動させる必要があるのかも。そうすると、「ループして検索」というオプションを無視することになります。
by knife37
| 2005-01-03 19:47
| 妄想を申そう
| Top
|