複数選択範囲の伸縮方法No.08694
たけとり さん 18/06/04 01:00
 
 お世話になります。
 表記について、いろいろ試したのですが&ヘルプ内を探してみたのですが、方法が
見つかりませんでしたので、投稿します。
 もし、どこかに記載されていたのならすみません。
 (秀丸Ver8.83 Beta 1)

 例えば、

aaaaccbbbcccffffcccZZZ
aaaaaaaacccccbbbcccccccffccccccccccZZZZ
aacccccbbbbbcffffffffccZZ

といったような3行があって、各行の「aの直後のc」から「fの直前のc」までマーキング
(colormarker -1, -1, 2, 2, #userData, $layerName〜)
されており、さらに「Zの直前のc」には長さ0で別のユーザデータでマーキングされてる
(colormarker -1, -1, 2, 2, #userData+1, $layerName〜)
…としたとき、
selectcolormarker $layerName, #userData;
で範囲選択したあとに、その(複数)範囲選択を伸縮する、特に同じ行の#userData+1
でマーキングされたマーカーまで伸ばすには、何か方法がありますでしょうか。

 1行目のマーカーを伸ばすことについては
selectcolormarker $layerName, #userData;
nextcolormarker (0x01|0x02|0x04), #userData | 0x01, $layerName;
でできたのですが、2行目の範囲までカーソルを移動させようと思って
moveto seltopx[2], seltopy[2];
としたら、1行目末尾のZZZZや2行目頭のaaaaaまで選択されてしまいます。
 また、これは、どこか(マクロ先頭や途中)に
setcompatiblemode 0x00100000;
などとやっても同じです。
#  そして、nextcolormarkerがなくても同じです…といいたいのですが、なぜかそ
の場合は
# moveto seltopx[1], seltopy[1];
# と添え字を一つ減らさないと、同じところへカーソルが移動しないです。
# (nextcolormarkerで、複数選択範囲が1つ増える?)

 上記なような個別に伸縮できる方法がもしありましたら、ご教示ください。
 なかったらないで、何とか工夫します。
 また、伸縮を個別ではなく一斉に伸縮する方法もあるのでしたら、それも併せて教
えていただけたら幸いです。

 よろしくお願いします。

[ ]
RE:08694 複数選択範囲の伸縮方法No.08696
秀丸担当 さん 18/06/04 11:26
 

複数選択を個別に伸縮するという方法は無いです。
やるとしたら、いったんカラーマーカーにして、カラーマーカーを追加したり削除し
たりしてから、カラーマーカーを選択(selectcolormarker)するということになる
と思います。
または複数選択予約にしてから、複数選択予約を選択(selectreservedmultisel)を
しても同じだと思います。

[ ]
RE:08696 複数選択範囲の伸縮方法No.08699
たけとり さん 18/06/07 22:13
 
了解しました。
提示していただいた方法で試してみたいと思います。

[ ]