ヒストリでファイル名のみ表示の際No.40353
もみじ さん 23/03/07 18:20
 
またまたすみません。

最近頻繁にヒストリを使います。
使い方としては、作成・改変したファイルの履歴を管理するためにディレクトリを分
ける運用です。

ディレクトリ&ファイル構成としては以下のような感じで、格納しているディレクト
リは異なりますがファイル名は同一です。


(この上にも階層あり)
|
+doc
  |
  +Aユーザ
  +A案件
  |
    +マニュアル
   +Ver1
   |  + file_01.txt
   |  + file_02.txt
      |  +Ver101_あれやこれやの理由で改変
      |    + file_01.txt
      |    + file_02.txt
      +20230307_あーだこーだで改変
         + file_01.txt
         + file_02.txt

この状態で、「ファイル名の表示方法」を「フルパス」にするとディレクトリ名の長
さが異なるので、ファイルが表示される場所が凸凹してしまいファイル名の視認性が
下がっています。(老眼のせいもありますが)

「ファイル名のみ」にすると、同じファイル名が並ぶのでどこのディレクトリのファ
イルか見分けがつきません。

カレントフォルダ以外はフルパスだと、パスの長さが極端に異なり見づらくなります。

ということで、ファイル名のみの場合、マウスを乗せるとパスがポップアップで表示
されると良いと思うのですが、いかがでしょうか?

お願いばかりですみませんがご検討よろしくお願いいたします。


[ ]
RE:40353 ヒストリでファイル名のみ表示のNo.40354
Micky さん 23/03/08 08:52
 
Micky@ユーザです。
まいどお世話になります。

もみじ さん write:
>この状態で、「ファイル名の表示方法」を「フルパス」にするとディレクトリ名の長
>さが異なるので、ファイルが表示される場所が凸凹してしまいファイル名の視認性が
>下がっています。(老眼のせいもありますが)

秀丸担当さんから正式コメントあると思いますが、
私も同じようなことを思ったことがあり、投稿したらマクロを作っていただけました。

hidesoft.2:39398| RE 39396 ファイルマネージャ枠について
で見つかると思います。
個の中身を"FileHistRight.mac"とかいう名前で保存し、
メニューからマクロ → 実行
ってやってます。

右寄せでヒストリが表示されるので、ファイル名を見て、どこに保存してあるやつか
って探すのには重宝しています。

[ ]
RE:40354 ヒストリでファイル名のみ表示のNo.40356
秀丸担当 さん 23/03/08 11:11
 
ファイルメニューのヒストリは、オプションでいろいろ変えることができるものの、
メニューそのものは独自ではなくてWindows標準のメニューになっています。
ここにツールチップを表示させることは不可能ではないと思いますが、ちょっと難し
いかもしれません。

Mickyさんの以前の書き込みで、マクロを作ったことがありました。忘れていました。
ありがとうございます。
そのときの話題は以下のページになります。
https://www.maruo.co.jp/hidesoft/2/x39394_.html

ダークモードだと、現在のファイルと同じフォルダにあるファイルの色付けとかがわ
かりにくくなっています。
もしダークモードで判別しにくくなったということだとしたら、次のβ版でライト
モード同様に色付けすることを復活させる予定です。

[ ]
RE:40356 ヒストリでファイル名のみ表示のNo.40357
もみじ さん 23/03/08 14:39
 
Mickyさん
秀丸担当さん

お返事ありがとうございます。

マクロ利用してみました。
右寄せってなかなか斬新な感じですね(笑)

私の場合、常駐も頻繁に利用しているのですが、現状のマクロだと常駐が反映されて
いないようでした。
これって反映可能なのでしょうか??

マクロを利用した右寄せベースで利用してみて、ファイル名とディレクトリパスの区
切りがぱっと見でわかりにくかったので、技術的に難しいとのことは承知で、将来的
に実装されたら嬉しいな、という案を考えてみました。


(案)
左寄せでファイル名が表示、その後、スペースかカンマかタブで区切ってパスが表示
される。

ex.

あいうえお.txt   c:\users\documents\abc
hogehoge.cpp        c:\users\documents\project\hoge

で、いま、ふと思ったのですが、この表示方法はもしかしてマクロで可能だったりし
ますか??





[ ]
RE:40357 ヒストリでファイル名のみ表示のNo.40358
秀丸担当 さん 23/03/08 17:30
 
前のマクロでは、ヒストリに常駐とかは考慮していませんでした。
ファイルメニューのように、表示個数に収まるように常駐を寄せて持ってくるのは、
同じようなロジックのマクロを作る必要があって大変面倒なことになります。
最近動作環境に追加した、ヒストリ常駐の動作の[上位に表示]のように一番上にもっ
てくるのであれば、比較的マクロを作るのもやりやすいです。

ファイル名部分とフォルダ名部分を分けるのは、文字列をどうにかすればそういうマ
クロはできると思いますが、左のツラを合わせるのは困難です。
メニューのフォントは普通はプロポーショナルフォントなので、空白で合わせるのは
無理で、タブ文字で合わせようとすると、勝手に右揃えになってしまいます。

ある程度妥協したマクロであれば以下のような感じになります。
一部jsで書いていて、別に使わなくてもできるのですが、こっちのほうが書きやすい
ので使ってしまいました。
FileSystemObjectも使わなくていいのですが、ファイル名とフォルダ名を分けるため
だけの手抜きの手法です。

$open="";
#i=0;
while(getfilehist(#i) != ""){
  //あらかじめ変数に入れておいたほうが高速
  $aHist[#i]=getfilehist(#i);
  $aPin[#i]=getfilehist(#i,1);
  #i=#i+1;
}
#m=#i;

js{
  n=20;
  m=getVar("#m");
  c=0;
  aFile=[];
  aName=[];
  fso=createobject("Scripting.FileSystemObject");
  for(j=0;j<2;j++){ // 1周目常駐
    for(i=0;i<m;i++){
      file=getVar("$aHist["+i+"]");//getfilehist(i)
      fPin=(getVar("$aPin["+i+"]")=="1");//getfilehist(i,1)
      if(j==0 ? (!fPin) : fPin) continue;
      aFile[c]=file;
      aName[c]=(fPin?"★":" ")+"&"+c+" "+fso.GetFileName(file)+"\t"+fso.Get
ParentFolderName(file);
      c ++;
      if(c==n){
        aName[c]="\x01\tファイルヒストリのつづき(&\\)";
        c ++;
      }
    }
  }
  r=menuarray(aName, c);
  if(r>0){
    setVar("$open",aFile[r-1]);
  }
  fso=null;
}

if($open!=""){
  openfile $open;
}
endmacro;

[ ]
RE:40358 ヒストリでファイル名のみ表示のNo.40359
もみじ さん 23/03/08 20:18
 
おお!!すばらしい!!

マクロを作っていただきありがとうございます!

メニューフォントがプロポーショナルでパス部分の頭が揃わないのは理解しました。

ちょっと、このマクロを元にファイル名の長さにあわせて現在のタブでは無くてス
ペースを入れてなんとなく揃うやつを作ってみようと思います。

たとえば、ファイル名が16文字以下であれば、スペースを入れて20文字目からパスが
始り、ファイル名が26文字以下であれば、30文字目からパスが始る、、、のように。

プロポーショナルなのできっちりは揃わないと思いますが、なんとなく揃うと思いま
すので。

ありがとうございました!!


[ ]