複数の過去の編集箇所への移動No.32873
ひでまりも さん 14/01/26 18:08
 
三点目(最後)の要望です。

秀丸には「最後に編集した所に移動」というコマンドがあり、しょっちゅう使ってい
ます。ヘルプに「便利です」書いてあるだけのことはあります。
しかし例えば、ある箇所を編集中に、別の箇所に移動して「切り抜き」を実行後、元
の箇所に戻って貼り付けようとしても、戻ることができません。

MicrosoftのWordはこの辺気が利いていまして、直近の編集箇所を3箇所(ちがうか
も?) 記憶しており、Ctrl+F5を押すたびに、地点1→地点2→地点3→地点1→・・・のよ
うにグルグル回転する感じでカーソル移動が可能です。(なんかうまく動作しないと
きもあるのですが・・・)

同様の機能が秀丸にあれば、とても便利だと思います。

具体的な案としては、
・「最近編集した行に移動」コマンドを設ける
・直前と異なる行を編集するたびに、その行の位置をFIFO形式で記憶 -- (a)
・記憶する数は動作環境の設定で指定(最大9箇所もあれば十分でしょうか)
・「最近編集した行に移動」コマンドを実行するたびに、(a)で記憶している各行の
行頭に、順次移動 -- (b)
(直近の編集箇所の行頭 → 直近から2番目の編集箇所の行頭 → ・・・ → 最後まで達
したら直近の編集箇所の行頭に戻る)
・(b)で順次移動している最中に編集操作(c)を行った場合は、(b)の「今何番目の位
置に移動したか」の情報を破棄。
つまり(c)の後に「最近編集した行に移動」コマンドを実行すると、(c)の地点の行頭
に移動。以降コマンドを実行するたびに、先ほどと同様に過去の編集行にさかのぼる
以上が私の案なのですが・・・

ちなみに、行単位でしか記録しないのは、そうでないと記憶箇所の更新が頻繁すぎる
ためです。

似た機能として、「上(下)の編集マーク」というコマンドが既にありますが、私は
保存でマークを消す設定にしている&しょっちゅう保存する癖があるため、うまく活
用できていません・・・。
それに、「位置が上か下か」ではなく、「編集した順序」を基準に移動したいので・・・。

マクロで行番号を記録して実現させることも考えましたが、行の挿入や削除をおこな
うたびに行番号を計算しなおす必要があるので、マクロレベルではできそうにありま
せんでした。

以上、面倒な変更になりそうな気もするのですが、よろしければご検討いただければ
幸いです。(ヘルプには「すごく便利です」と記載できると思うのですが)。

[ ]
RE:32873 複数の過去の編集箇所への移動No.32879
秀丸担当 さん 14/01/27 15:35
 

最後に編集した所に移動するコマンドを連続ですると、過去の幾つかにジャンプ
できたらより便利だと思います。
今後の参考にさせていただきます。

参考までに、現状で無理矢理やるとしたら、自動起動マクロで「編集した直後」
で透明なカラーマーカーを置いておき、そのカラーマーカーへジャンプするよう
なマクロを実行することでやることも不可能ではないとは思います。
ちょっと長くなりそうなのと無駄がありそうなので、ここに書くのはやめておき
ますが、もし必要でしたら書きます。

[ ]
RE:32879 複数の過去の編集箇所への移動No.32884
ひでまりも さん 14/01/27 22:57
 
ご提案どうもありがとうございます。透明なカラーマーカーというのは気づきません
でした。

あまりお手数をおかけするのも悪いので、いただいたヒントを参考にして、時間のあ
るときにでも自分でチャレンジしてみようと思います。実は、「開いている秀丸ウィ
ンドウを、最近編集した順にリストアップし、そこから選択してアクティブ化する」
という自作の自動起動マクロを使用しておりまして、今回のと似ているので、同様に
自分で作成できるかもしれません。

ところで、仮にこの機能を標準機能として実装していただける場合、「直前の編集行
の前後n行以内の編集は記憶しない」というようなオプションがあれば、より便利か
もしれませんね。カーソルを大きく動かさずに編集を繰り返したとき、それをいちい
ち記憶してもあまり意味はないかと思いますので・・・。
今後のバージョンアップのヒントにしていただければ幸いです。ありがとうございま
した。

[ ]
RE:32884 複数の過去の編集箇所への移動No.32886
秀丸担当 さん 14/01/28 16:03
 

>ところで、仮にこの機能を標準機能として実装していただける場合、「直前の編集行
>の前後n行以内の編集は記憶しない」というようなオプションがあれば、より便利か
>もしれませんね。カーソルを大きく動かさずに編集を繰り返したとき、それをいちい
>ち記憶してもあまり意味はないかと思いますので・・・。

そういう指定も細かくできたら便利だと思います。
基本的な機能だけでなくオプションを作るとすると、どこまで遡って記憶すると
か、他にもいろいろサポートする必要が出てきてしまいそうなことが心配ではあ
ります。

こういう細かい調整にこそマクロで何でもできたらいいという気もします。
ただ試しにやってみたらあまり格好のいいマクロではないというか、編集のたび
にゼロ幅で範囲選択してカラーマーカーして、ちらつきや単語補完が切れてしま
うことが、あまり良くありませんでした。
本題とは外れるかもしれませんが、colormarker文で範囲選択せずに位置を数値
で直接指定してやることがもしできればよさそうです。
そのようにできたら単語補完も不便なくできそうで、修正も簡単なので、そうい
うパラメータの追加も検討します。

[ ]
RE:32886 複数の過去の編集箇所への移動No.32888
ひでまりも さん 14/01/28 22:28
 
なるほど、単語補完が切れてしまうのであれば、実使用は厳しそうですね。

>本題とは外れるかもしれませんが、colormarker文で範囲選択せずに位置を数値
>で直接指定してやることがもしできればよさそうです。
>そのようにできたら単語補完も不便なくできそうで、修正も簡単なので、そうい
>うパラメータの追加も検討します。

もしそのようなマクロ機能を搭載していただけたら、それを使って編集履歴移動のコ
マンドをぜひ作ってみたいと思います。

[ ]
RE:32888 複数の過去の編集箇所への移動No.32904
ひでまりも さん 14/02/01 14:52
 
お世話になっております。
8.40β3で、範囲選択しないカラーマーカーを早速実装していただいたため、前に書
いたマクロをためしに作っているのですが、問題が出てきました。

例えば直近の編集箇所3つにカラーマーカーをつけるとして・・・
現状の処理は、colormarker文のユーザーデータを識別用に用いて、ユーザーデータ1
→2→3→1→2→3・・・のようにマーカーをつけていっています。レイヤーは適当な名前
のものひとつだけを使用しています。

ここで、2つ目のユーザーデータ1をマークしたときには1つ目のユーザーデータ1の
マーカーは不要となるため消去したいのですが、範囲選択やカーソル移動を行わずに
消去を行う方法はありますでしょうか?

もしかすると、colormarker文で1つ目のカラーマーカーの座標を指定して、全て透
明・透過で上書きすれば消えるのかもしれないのですが、1つ目のカラーマーカーの
座標を知るためには、そこにいったんジャンプする(カーソル移動する)しかないよ
うに思います。
ユーザーデータの代わりにレイヤーを識別に使用してdeletecolormarker文を使った
としても、範囲選択を行わずに消去はできなさそうです。

deletecolormarker文の拡張で、ユーザーデータとレイヤーを指定して、かつ範囲選
択を行わずに消去するような方法が実現できればいいかなと思うのですが・・・
例えば
  deletecolormarker レイヤー名, ユーザーデータ, 動作
  (動作に1を指定すると、範囲選択にかかわらず指定したレイヤーとユーザーデー
タに属するものを全て消去)
のような感じです。

とはいうものの、私の勝手なマクロ作成の願望ために、あまり特殊な機能が追加され
てしまうのも本位ではありません。
このような仕様がほとんど需要がなさそうでしたら、(残念ですが)きれいさっぱり
あきらめますので、先日作成していただいた範囲選択しないカラーマーカーを正式版
で採用するかどうかも含め、ご検討いただければと思います。

お手数をおかけいたしますが、どうぞよろしくお願いいたします。

[ ]
RE:32904 複数の過去の編集箇所への移動No.32908
秀丸担当 さん 14/02/03 09:40
 

確かにdeletecolormarker文では範囲選択を必要とするので、そういう指定もで
きたらいいと思います。
colormarker文で数値で位置指定できるのはいろいろ他にも使えそうな気もしま
す。
deletecolormarker文でユーザーデーターを指定できるようにするのは、今回の
用途以外になにかあるかというと、ちょっとわからないです。
ご意見を参考にさせていただきつつ考えたいと思います。

前のコメントで試しにやろうとしていたのは、古いものは消さず、ひたすらユー
ザーデータを加算して追加していくものでした。
現状の仕様のままで、3つくらいを順繰りで使って古いものを消すとしたら、レ
イヤーを3つくらい使って、古いレイヤーをdeletecolormarkerallで消すといい
かもしれないです。
ただレイヤーはユーザーデータと違って際限なく重ねていくことは想定していな
いので、100レイヤーとかは無理で、やはり3つくらいにしたほうがよさそう
です。

[ ]
RE:32908 複数の過去の編集箇所への移動No.32915
ひでまりも さん 14/02/04 22:32
 
>前のコメントで試しにやろうとしていたのは、古いものは消さず、ひたすらユー
>ザーデータを加算して追加していくものでした。

あまりたくさんのマーカーをつけるのはご法度なのかなと(なんとなく)思っていた
ので、順繰りに使うことにしたのですが、問題ないのであれば、ユーザーデータをひ
たすら加算していく方法で作ってみることにします。

とりあえずそれでやってみて、気になるようなら、古くなったマーカーをdisabledra
w状態で一掃するようなマクロを別途作って、編集の合間に(保存時の自動起動とか
で)実行させようと思います。

色々とアドバイスをいただけて、大変参考になりました。
どうもありがとうございます。

[ ]
RE:32915 複数の過去の編集箇所への移動No.32965
ひでまりも さん 14/02/23 10:38
 
お世話になっております。
カラーマーカーに関する不具合のようなもの?を見つけましたので、ご報告させてい
ただきます。

1. 先日追加していただいた、colormarker文の範囲選択なしの色付けで、カーソル行
以外の行に色付けを行った場合、その行にカーソルを移動するまでは色づけ結果が表
示に反映されないようです。
例)
colormarker -1, 0xffff00, 11, 0, 1, "LAYER", 10, 0, 10, 0;
を10行目以外にカーソルを置いて実行しても、その後、10行目にカーソルを持ってい
くまではマーカーが表示されない

2. 選択範囲がゼロ文字で背景透明のカラーマーカーをつけると、マークされた部分
の背景が透明にならず、文字が欠けたような表示となってしまいます。
例)
MSゴシック12ポイントのフォント設定で10行目の先頭に「8」を書いた状態で上記マ
クロを実行すると、「8」の左部分がマーカーで隠れて、「3」と区別がつかないよう
な状態になる。

以上、たびたびお手数をおかけいたしますが、もし可能ならば修正いただければと思
います。

[ ]
RE:32965 複数の過去の編集箇所への移動No.32966
ひでまりも さん 14/02/23 11:59
 
先ほどの投稿に追記です。

1とは逆にカーソル行に対してマクロを実行した場合も、表示が反映されない場合が
あります。
例えば、x,y = 5,10 にカーソルを置いて先のマクロを実行した場合、カーソルを別
の行に移動しないとマーカーが表示されないようです。

ご参考まで。

[ ]
RE:32966 複数の過去の編集箇所への移動No.32970
秀丸担当 さん 14/02/24 08:50
 

バグ情報ありがとうございます。
1. 2. の件とも確認することができました。
1の件は、当初の目的としては画面を乱さずに情報だけを作ることでしたが、そ
れは透明のときだけで色が指定されているときは描画されるべきでした。
調べて次のβ版で修正させていただきます。

[ ]
RE:32970 複数の過去の編集箇所への移動No.32981
ひでまりも さん 14/03/01 09:59
 
お世話になっております。

先日投稿させていただいた不具合2点に関して、8.40β7の変更履歴で修正済みとなっ
ていたため、動作確認を行いました。
結果、1番目の問題は修正されていることを確認いたしましたが、2番目のほうが修正
されていないようです。

ただ、読み返してみると、私のほうの説明に誤っていた点がありました。

>選択範囲がゼロ文字で背景透明のカラーマーカーをつけると、マークされた部分の
>背景が透明にならず、文字が欠けたような表示となってしまいます。
と書いておりましたが、背景透明ではなく、色つきの背景の誤りでした。(再現例の
部分の記載は正しかったのですが、説明文が間違っていました。)

下記の例:
>colormarker -1, 0xffff00, 11, 0, 1, "LAYER", 10, 0, 10, 0;

>MSゴシック12ポイントのフォント設定で10行目の先頭に「8」を書いた状態で上記マ
>クロを実行すると、「8」の左部分がマーカーで隠れて、「3」と区別がつかないよ
>うな状態になる。

を実行していただければ、文字の上に背景色がかぶってしまう症状を確認していただ
けると思います。

もともとの投稿では透明のマーカーをつけるマクロを作る話になっていましたが、動
作検証のために当面は色つきのマクロで動作させようとしています。ご報告させてい
ただいた不具合はその過程で判明したもので、「透明」が頭の中に残っていたために、
誤った説明を書いてしまいました。
混乱させてしまい、申し訳ありません。

修正を急ぐわけではありませんので、お時間のあるときに調査いただければ幸いです。
以上、よろしくお願いいたします。

[ ]
RE:32981 複数の過去の編集箇所への移動No.32983
秀丸担当 さん 14/03/03 09:09
 

私のほうも勘違いがあって失礼しました。
β7より前までは、幅があるときに意味のない白い縦線が描画されることがあっ
たので、それのことかと思ってしまいました。(結果的に別件のバグを直せてよ
かったです)

幅ゼロのカラーマーカーは、理由あってこのような表現になっていました。
文字の裏側に行くと幅ゼロのものが存在するかどうかを判別することが難しくな
ってしまうため、そうしていました。
V8.40よりも前でもそうだったのですが、V8.40で複数選択できるようになり、幅
ゼロの範囲選択をカーソル位置以外でも表現する必要があって、その理由が強ま
ってしまいました。
例えば「L」とか「F」では文字の左端に縦線があって、文字の裏側に背景色があ
ると、幅ゼロのものが存在することがわかりづらくなってしまうため、幅ゼロの
ときは例外的に表側に背景色だけを表示しています。
何かいい方法があるといいのですが、現状では意識的にそうなっているというこ
とでお願いしたいところです。

[ ]
RE:32983 複数の過去の編集箇所への移動No.32987
ひでまりも さん 14/03/03 23:03
 
なるほど、そういう事情なら納得です。

範囲選択なしのマーキング機能が正式版に搭載されるのを心待ちにしています。
ありがとうございました。

[ ]
RE:32873 複数の過去の編集箇所への移動No.33756
きっこ さん 14/11/30 13:31
 
こんな機能があったらいいなと思い検索したら、ここを発見しました。
ひでまりもさんが要望されている機能とても魅力です。
私からも正式の機能としての採用を希望します。
ぜひ検討お願いいたします。

[ ]
RE:33756 複数の過去の編集箇所への移動No.33757
秀丸担当 さん 14/12/01 15:32
 

そういう需要があるということで、ご意見参考にさせていただきます。
やるとしてもマクロと同じようなものになると思いますが、マクロでやるとして
も、前にひでまりもさんとの話でdeletecolormarker文でユーザーデータ指定で
消去ができたらいい話がまだだったので、その対応を行いたいと思います。

[ ]