ファイルヒストリの要望No.29393
Roka さん 11/01/19 14:28
 
最近使用したファイルのヒストリですが、ファイルが存在しない場合には秀丸起動時
に、
ヒストリから自動的に削除するオプションを追加してください。

[ ]
RE:29393 ファイルヒストリの要望No.29394
秀丸担当 さん 11/01/19 16:28
 

>最近使用したファイルのヒストリですが、ファイルが存在しない場合には秀丸起動時
>に、
>ヒストリから自動的に削除するオプションを追加してください。

要望ありがとうございます。
起動時だと遅くなってしまうかもしれないので、ファイルメニューを最初に表示
させるときに自動的に判断できたら便利かもしれません。
今後のネタにさせていただきます。

[ ]
RE:29394 ファイルヒストリの要望No.29989
Roka さん 11/07/05 11:45
 
>>最近使用したファイルのヒストリですが、ファイルが存在しない場合には秀丸起動時
>>に、
>>ヒストリから自動的に削除するオプションを追加してください。

出来れば「存在しないファイルヒストリを削除する」機能をコマンドとして追加して
もらえるとうれしいのですが、
よろしくお願いします。

[ ]
RE:29989 ファイルヒストリの要望No.29991
秀丸担当 さん 11/07/05 12:58
 

>出来れば「存在しないファイルヒストリを削除する」機能をコマンドとして追加して
>もらえるとうれしいのですが、
>よろしくお願いします。

マクロで作ると現状でもできると思います。
ヒストリに全部アクセスするとネットワークで固まることや、USBメモリの存在
など、いろいろな状況が考えられるので、必要に応じてマクロを改変していただ
ければいいと思います。

#i=0;
#c=0;
while(1){
    $a=getfilehist(#i);
    if( $a=="" )break;
    #c=#c+1;
    if( existfile($a) == false ) {
        question str(#c) + "番目のヒストリ\n" +
            $a + "\nを削除しますか?";
        if( result == yes ) {
            call DeleteHist #i;
            continue;
        }
    }
    #i=#i+1;
}
message "ヒストリ" + str(#c) + "個をチェックしました";
endmacro;

DeleteHist:
##iDel=##1;
while(1){
    $$sDel=getfilehist(##iDel+1);
    $$sFavo=getfilehist(##iDel+1,1);
    if( $$sDel=="" ) {
        setfilehist ##iDel, "";
        break;
    }
    setfilehist ##iDel, $$sDel;
    setfilehist ##iDel, $$sFavo,1;
    ##iDel = ##iDel+1;
}
return;

[ ]
RE:29991 ファイルヒストリの要望No.29993
Roka さん 11/07/05 14:40
 
>マクロで作ると現状でもできると思います。
失礼しました、setfilehist, getfilehistがあるのを見逃していました。


[ ]
RE:29993 ファイルヒストリの要望No.30007
Roka さん 11/07/06 11:31
 
>>マクロで作ると現状でもできると思います。

setfilehist, getfilehistだけだとレジストリに空のファイルヒストリのゴミが残る
ので削除するようにしたのですが、
マクロが終了した時点ではレジストリは変更されていますが、秀丸エディタを終了す
るとレジストリが戻ってしまいます。
たぶん秀丸エディタがメモリ内に持っているファイルヒストリの内容を終了時にレジ
ストリに戻しているのではないかと
思いますが、これを回避する方法はあるでしょうか?
出来れば delfilehist のようなファイルヒストリを削除するマクロを追加してもら
えるとうれしいです。

[ ]
RE:30007 ファイルヒストリの要望No.30009
秀丸担当 さん 11/07/06 11:42
 

>setfilehist, getfilehistだけだとレジストリに空のファイルヒストリのゴミが残る
>ので削除するようにしたのですが、

レジストリへの書き込みは、確かに秀丸エディタ終了時にしているので、レジス
トリを直接削除するようなマクロを作られているということだとしたら、元に戻
ってしまうことになると思います。
setfilehistで""が途中に入って歯抜けになるような形にすると、ゴミとして見
えてしまいますが、上のコメントのサンプルのマクロのように""が途中に入らな
いように詰めてやると大丈夫なのではないかと思います。

[ ]
RE:30009 ファイルヒストリの要望No.30010
Roka さん 11/07/06 12:06
 
>setfilehistで""が途中に入って歯抜けになるような形にすると、ゴミとして見
>えてしまいますが、上のコメントのサンプルのマクロのように""が途中に入らな
>いように詰めてやると大丈夫なのではないかと思います。

ファイルヒストリの途中に空のヒストリ""は入らないようなマクロですが、レジスト
リを見るとファイルヒストリの最後に
削除したヒストリ分の""に相当するゴミが残っています。
レジストリ上のファイルヒストリの数もヒストリを削除する前の物となっています。
このゴミを削除したいのですが現状ではできません。

[ ]
RE:30010 ファイルヒストリの要望No.30012
秀丸担当 さん 11/07/06 13:15
 

>ファイルヒストリの途中に空のヒストリ""は入らないようなマクロですが、レジスト
>リを見るとファイルヒストリの最後に
>削除したヒストリ分の""に相当するゴミが残っています。
>レジストリ上のファイルヒストリの数もヒストリを削除する前の物となっています。
>このゴミを削除したいのですが現状ではできません。

確かにレジストリにゴミが残るのはあまりよくないです。
現状で空の内容があっても100個までかバッファを超えるまでしか書かないので
際限無く増えるということは無いですが、V8.10でゴミは書かないように修正さ
せていただきます。

[ ]
RE:30012 ファイルヒストリの要望No.30020
Roka さん 11/07/13 16:57
 
対応ありがとうございました。

[ ]
RE:30020 ファイルヒストリの要望No.30029
Roka さん 11/07/20 16:16
 
ファイルヒストリをクリーンアップするマクロを秀丸を終了する時に自動的に実行し
たいのですが、
何か方法はあるでしょうか?

[ ]
RE:30029 ファイルヒストリの要望No.30032
秀丸担当 さん 11/07/21 11:36
 

>ファイルヒストリをクリーンアップするマクロを秀丸を終了する時に自動的に実行し
>たいのですが、
>何か方法はあるでしょうか?

自動起動マクロには終了させたとき限定というのは無いですが、「ファイルを閉
じる直前」の自動起動マクロで、
if(hidemarucount==1){
   ....
}
という感じにしておくと近いようにはできると思います。
ただ、「ファイルを閉じる」(Ctrl+F4)のコマンドでも実行されたりしてしまい
ます。

クリーンアップというのが例のファイル存在チェックのことではなくて、全て消
すという意味でしたら、[その他]→[動作環境]→[プライバシー]のところに設定
があります。常駐秀丸エディタも含めた全てを終わらせたときに消すように指定
できます。

[ ]
RE:30032 ファイルヒストリの要望No.30034
Roka さん 11/07/21 12:02
 
>ただ、「ファイルを閉じる」(Ctrl+F4)のコマンドでも実行されたりしてしまい
>ます。
>
>クリーンアップというのが例のファイル存在チェックのことではなくて、全て消
>すという意味でしたら、[その他]→[動作環境]→[プライバシー]のところに設定
>があります。常駐秀丸エディタも含めた全てを終わらせたときに消すように指定
>できます。

実行したいと思っているクリーンアップのマクロはファイルが存在しないヒストリを
削除するものなので、
「ファイルを閉じる」毎に実行されてしまうのは避けたいです。
出来たら自動起動のマクロに「終了時」を追加してもらえるとうれしいです。
よろしくお願いします。

[ ]
RE:30034 ファイルヒストリの要望No.30035
秀丸担当 さん 11/07/21 13:26
 

>実行したいと思っているクリーンアップのマクロはファイルが存在しないヒストリを
>削除するものなので、
>「ファイルを閉じる」毎に実行されてしまうのは避けたいです。
>出来たら自動起動のマクロに「終了時」を追加してもらえるとうれしいです。
>よろしくお願いします。

「終了時」の自動起動マクロもあったらいいということでネタにさせていただき
ます。

[ ]