カーソル位置の自動復元No.39609
Roka さん 22/03/16 10:08
 
現在「ヒストリの記録を中断!」で使用していて、ファイルをセーブした時にマクロ
でファイルの拡張子によってヒストリを保存するという環境で秀丸エディタを使用し
ています。
最近「カーソル位置の自動復元」をオンにしたのですが、ファイルをセーブしなくて
も(ファイルを開いただけで)ヒストリにそのファイルがある場合はカーソル位置が
保存されてしまいます。

カーソル位置の保存はヒストリを保存した時のみにしてもらいたいです。

また要望として「カーソル位置の自動復元」のオプションとして「最後に編集した位
置」で保存できるようにしてもらいたいです(マクロでもいいです)。


[ ]
RE:39609 カーソル位置の自動復元No.39610
秀丸担当 さん 22/03/16 12:36
 

カーソル位置の自動復元は、確かにヒストリの記録が中断されているときであっても
記憶されるようになっていました。
ヒストリの記録が中断されているときは、カーソル位置の記憶もしないように変更し
てもいいと思います。
V9.12はそろそろ正式にしようと考えていますが、そのように修正しようと思います。

最後のカーソル位置の代わりに、最後に編集した位置を記憶できるオプションがあっ
たらいいかもしれません。
ご意見参考にさせていただきます。
マクロでやるとしたら、[マクロ]→[マクロ登録]→[自動起動]で、「ファイルを閉じ
る直前」にマクロを登録して、以下のような内容にしておくとよさそうでした。
if(event==7) {
    disabledraw;
    golastupdated;
}
ただ復元されるときは、最後に編集したところではなくなるので、有効なのは1回の
みになってしまいます。
オプションでやるとしたら、最後に編集した位置そのものを復元できたらいいです。

[ ]
RE:39610 カーソル位置の自動復元No.39613
Roka さん 22/03/18 10:36
 
Version 9.12でヒストリの記録の中断中はカーソル位置の保存はされなくなりました
が、マクロのsetfilehistを実行した場合にカーソル位置が保存されず、次に開いた
時にカーソル位置はファイルの先頭になってしまいます。

[ ]
RE:39613 カーソル位置の自動復元No.39616
秀丸担当 さん 22/03/18 11:40
 
setfilehistは、任意のファイル名をヒストリに設定するだけなので、このときは
カーソル位置は保存されないです。
ヒストリの記録を中断しているときは、カーソル位置の保存もしないようにしたので、
一応想定通りということになります。

どういう使われ方を想定しているかによりますが、固定のファイルのセットをメニ
ューから選ぶような場合、ブックマークを使う方法もあります。
[その他]→[メニュー編集]でブックマークメニューを有効にするとメニューバーに現
れます。
マクロで切り替える場合、loadbookmarkで切り替えが可能です。
ファイルヒストリは記録するままにしておくと、固定のファイルのセットを使いつつ、
カーソル位置の復元も使える感じになると思います。

[ ]
RE:39616 カーソル位置の自動復元No.39617
Roka さん 22/03/18 14:14
 
ファイルヒストリをデフォルトのまま使用しないでマクロで実行している理由は、保
存を実行したファイルだけヒストリに残したいためです。さらに特定の拡張子だけや
とか、特定のフォルダを除いたりしたりとかを実現しています。
最初の書き込みでマクロでファイルヒストリを実現していることを書いたつもりです
が、言葉が足りなかったようで、マクロではカーソル位置が保存できないのであれば、
ヒストリの記録の中断中でもカーソル位置が保存される方がまだ使いやすいです。
現在の仕様だとヒストリの記録の中断中はファイルの記録の方法はマクロで実現でき
るけど、カーソル位置を保存する方法は無いということになってしまうので、カーソ
ル位置の保存もマクロで実現できるようにしてもらいたいです。

[ ]
RE:39617 カーソル位置の自動復元No.39618
秀丸担当 さん 22/03/18 17:10
 
特定の条件ではヒストリ記録とカーソル位置の記憶もしたかったということで、失礼
しました。
setfilehistで位置の情報も変えられる方法も検討します。

いったん記録するようにするとしたら、動作環境のヒストリのところにもボタンがあ
りますが、「ヒストリの記録を中断」コマンドでも変更できます。
マクロでやるとしたら、stophistoryswitch文で切り替えして、もう一度stophistory
switch文で元に戻したりできます。
ですが、コマンドになっているとはいえ、動作環境を変更することに相当して、あま
り頻繁に変更することには向いていないかもしれません。全ての秀丸エディタに伝わ
って画面が更新されたりします。
あと、readonlyswitch文に対してreadonlyキーワードがあるように、stophistoryswi
tchの状態取得が無かったので、合わせるために追加しておきます。

[ ]
RE:39618 カーソル位置の自動復元No.39660
Roka さん 22/03/31 21:50
 
9.15 Beta 1 でやりたいことが実現できるようになりました、ありがとうございます。

PS: 1点気が付いたことがあります、マクロファイルの編集時に「disabledraw2」が
青文字になっていませんでした。

[ ]
RE:39660 カーソル位置の自動復元No.39661
Roka さん 22/03/31 22:32
 
もう1点気、「stophistory」も青文字になっていませんでした。

[ ]
RE:39661 カーソル位置の自動復元No.39663
秀丸担当 さん 22/04/01 08:58
 
最近追加された文などで、標準のマクロ用の強調表示で不足しているものは幾つかあ
りました。
disabledraw2 template getfiletime darkmode が不足しているので、また追加して
いきます。

[ ]
RE:39663 カーソル位置の自動復元No.39664
Roka さん 22/04/01 15:42
 
setfilehist マクロですが第4、第5パラメータを指定して第1パラメータに「46」以
上を指定すると、保護違反が発生するようです。第4、第5パラメータを指定しなかっ
た場合には発生しません。

[ ]
RE:39664 カーソル位置の自動復元No.39665
秀丸担当 さん 22/04/01 16:02
 
すみません。その通りというか、もっと範囲が狭くおかしかったです。
0〜19の範囲でないといけませんでした。-1でも良くなかったです。
本当は必要無かったのですが、古い形式の20個だった頃の情報も念のため書き換えよ
うとしていて、おかしくなっていました。
次のβ版で修正させていただきます。

[ ]
RE:39665 カーソル位置の自動復元No.39666
Roka さん 22/04/01 16:15
 
こちらでは現在-1で常用していて動作しているようですが、使用するのは次のベータ
版まで待った方がいいでしょうか?

[ ]
RE:39666 カーソル位置の自動復元No.39667
秀丸担当 さん 22/04/01 17:22
 
詳しく調べてみたところ、-1は先頭に挿入した後、古い情報のためには0となるよう
にしてありました。
-1は大丈夫でした。

[ ]