ブックマーク、ツール内容のマージについNo.10753
stone404 さん 23/05/27 10:16
 
ブックマークやツールの内容を後でマージする良い方法はありますでしょうか?

秀丸ファイラーClassicを複数環境で使っており、RDPのリモートホストとローカルの
それぞれでブックマークを編集することがよくあります。
「設定内容の保存/復元」ではマージできないので、後で気づいたときにブックマー
クメニューから差分を見ながら手で編集したりしています。
また、OneDrive同期ができない環境向けに hfcreg をgithubなどで同期しています。

もし良いマージ方法がない場合、当方の勝手な案ですが、
  - ブックマーク編集の度にyamlなど編集可能な形式に自動(or 手動)でexportする
  - ブックマークを開く度に上記ファイルの更新をチェック、更新されていれば自動
(or 手動)で取り込む
といった動作をしてもらえると良いのかなと考えております。

ご検討いただけると幸いです。よろしくお願いいたします。

[ ]
RE:10753 ブックマーク、ツール内容のマーNo.10754
ラフ さん 23/05/27 12:42
 
ブックマークの整理やツールの整理にある「保存」でテキストファイルにexportでき
ますので、
テキストエディタで必要部分をコピペしてそれぞれの環境で「読込み」すればいいと
思います。
多分、更新チェックや自動同期や差分取り込みは。参考にさせていただきますになっ
て、対応してもらえないと思います。
せめて、スクリプトに、

export(confno,strFilename)とimport(confno,strFilename)
confno: 0=ブックマーク、1=ツール
strFilename: 保存ファイル名(フルパスまたは相対パス)

のような機能を追加してもらえると、差分編集は自力で何とかするとして、バックア
ップツールなどで更新チェックはできるのでありがたいんですけどね

[ ]
RE:10754 ブックマーク、ツール内容のマーNo.10755
stone404 さん 23/05/27 21:07
 
コメントありがとうございます。
ブックマークやツールの設定をテキストファイルに保存する機能、気づきませんでし
た。(汗
テキストなら差分編集できるので活用させていただきます。ありがとうございました。



[ ]
RE:10755 ブックマーク、ツール内容のマーNo.10756
秀丸担当 さん 23/05/29 17:03
 
ブックマークをマージするという機能は無いですが、ラフさんの言われる通り、保存
できて、テキストとして扱えるようになっています。

起動オプションでブックマークを保存できたり読み込みできたりする気がしていたの
ですが、よく見あたらありませんでした。
レジストリの設定として/savereg-onlyとか/restore-onlyで保存したりするものがあ
るだけでした。
ブックマークの保存として.hfcbookも扱える方法もあったらよさそうなので、また検
討します。

[ ]
RE:10756 ブックマーク、ツール内容のマーNo.10757
ラフ さん 23/05/30 14:15
 
>ブックマークの保存として.hfcbookも扱える方法もあったらよさそうなので、また
>検討します。
検討していただけるなら、起動オプションでなくスクリプトでお願いします。
読込みはともかく、保存を実際に使用するのは起動時ではなく起動中に追加や削除、
変更があった時ですので、一々起動し直すのは非常に不便になります。
異なる設定を使いたい人も、起動中にスクリプトで変更できれば楽かと思います。
あと、前にも書いたんですが、保存先フォルダを秀丸エディタのようにオプションで
指定するようにしてほしいです。現状の仕様との互換性のためカレントと指定フォル
ダを選択できるようにして置けばいいかと思います。
カレント保存を要望した人が何をしたかったのかわかりませんが、設定ファイルをカ
レントに置くメリットがあるようには思えません。複数の設定ファイルで切り替えた
いならファイル名を変えればいいだけですしね。

以上、検討よろしくお願いします。

[ ]
RE:10757 ブックマーク、ツール内容のマーNo.10758
秀丸担当 さん 23/05/30 17:53
 
スクリプトでもいいのですが、ブックマークにスクリプトを書いているとそれ自体が
入れ替わってしまうので、起動オプションのほうが都合がいい場合があります。
/restoreなんとかや/saveregなんとかもそうなのですが、起動のためというより、外
部から指示するためものになっています。
-onlyのほうはその改良版ですが、起動していなければ処理だけして終わり、既に起
動されていれば既存の秀丸ファイラーClassicに指示します。

ブックマークにオプション付きhmfilerclassic.exeや、スクリプトでhmfilerclassic.
exeを起動することで、既存である自分自身への指示にもできるようになると思います。

[ ]
RE:10758 ブックマーク、ツール内容のマーNo.10760
ラフ さん 23/05/31 20:36
 
入れ替わるのは読み込んだ場合ですよね?
で、それが問題ですか?
読み込む内容に入っていればいいだけではないですか?
外部からの指示だとしても、結局それで置き換わるわけですよね?

人によって使い方が異なりますが。
保存と読込みでは圧倒的に保存の方が使用頻度が高いです。
個人的にはメインPCとサブPCのドライブ、フォルダ構成は同じにしてあるので、マー
ジもする事なく、メインPC内容をサブに持っていくだけ。
なので、メインでの設定がサブで必要になった時だけしか読込みは使いません。
が、スクリプトはメインPCで開発しているので、割と頻繁に保存することになります。
起動オプションに有ってもいいですが、起動オプションしかないと、多分私は使う事
はないでしょうから、これまでどおり不便なまま使わせていただきます。
というか、ブックマークはあまり使わないので、ブックマークよりツールの設定の保
存の方が大事なんですけどね。

[ ]
RE:10760 ブックマーク、ツール内容のマーNo.10761
秀丸担当 さん 23/06/01 09:08
 
うまく伝わらなかったのならすみません。
起動オプションは、/restore-onlyの処理に倣って作ってみています。
外部からの実行で、何も起動していないときは、処理だけします。次に起動するとき
は適用済みになります。

外部からの実行で、既に起動していたら、読み込んで適用します。

自身の実行で、ブックマークやツールのパスに
"%programfiles%\hmfilerclassic\hmfilerclassic.exe" /import-bookmark c:\folde
r\test.hfcbook
としておけば、読み込んで適用します。

自身の実行で、ブックマークやツールのパスに
js:new ActiveXObject("Shell.Application").ShellExecute(fullName, '/import-bo
okmark c:\\folder\\test.hfcbook');
としておけば、スクリプトとして同様のことができます。

スクリプトのメソッドとしてあるだけの場合、操作できるアプリ起動が伴わないとい
けないですが、起動オプション(コマンドライン)の場合はバックグラウンドでもス
クリプトでも何でもありという感じです。

今回ブックマークのほうだけやってみましたが、ツールもやるべきだと思います。
ツールのほうもしていきます。
あとV1.84β1ではリーク的なことが発生していました。また修正していきます。


[ ]
RE:10761 ブックマーク、ツール内容のマーNo.10772
ラフ さん 23/06/11 14:58
 
忙しかったのとそのせいで体調崩してたので遅くなりましたが。

>スクリプトのメソッドとしてあるだけの場合、操作できるアプリ起動が伴わないと
>いけないですが
の部分ですが、
なぜアプリ起動を気にするのかわかりません。
ファイラーである以上起動していない場面の方が少ないですよね?
エクスプローラの代わりに使う人がほとんどだと思いますので、ログイン後まず真っ
先に起動するでしょ?
私はログインすると自動的にファイラーが起動するので、起動していない状態はわざ
わざ終了させることになり、個人的には必要ない機能ですね。必要な人もいるのかも
しれませんが。
というのは24時間運転しているのでファイラーの起動は、WindowsUpdateなどでWindo
wsのrebootを強制された時くらいしかないです。
まぁそれは置いといて。

多分私のやりたい事も伝わっていないというか、伝えていないと思います。

私の使い方の前提として、メインPCは設定が壊れない限り、読込みは使わない。
あくまでトラブル時の回復用として保存してあったものを読み込む。
サブPCは回復用およびメインPCの設定とのSync時のみ読込みを使う。

スクリプトでやりたかったこと
オプション:
/target=xx     ブックマークまたはツールの指定
/load=設定ファイルパス     読込み(フルパスまたは相対パス)
/save=設定ファイルパス     保存(フルパスまたは相対パス)
/copy=コピー先設定ファイルパス     コピー(フルパス)
/merge=設定ファイルパス     自分の設定ファイルでない設定ファイルとのマージ

[メインPC]
スクリプト引数 /save=パス名 /copy=ネットワークドライブ上のパス名
1. メインPCの現在のブックマーク及びツールの設定を所定のフォルダに保存
2. 保存した設定をサブPCにコピー

[サブPC]
スクリプト引数 /save=パス名 /merge=メインPCからコピーされてきたファイルのパス名
1. サブPCの現在のブックマーク及びツールの設定を所定のフォルダに保存
2. メインPCの設定とサブPCの設定のdiffを取る
3. 違いがあった場合に必要な項目のみサブPCの設定ファイルに反映し読み込む
※マージが必要でない項目はサブPC側で対象外項目としてファイル化しておくなど必
要かな
ただし、マージは将来使うかもしれない機能として実装するけど私自身は当面は使わ
ないかなとw

というのを一本のスクリプトで書き、ツールバーに設定保存(メイン側)と設定マージ
(サブ側)を貼り付けておき、
ワンクリックで実行したかった。

で、今まで通り手動でする意思を固めたのでもういいです。というのが前回の投稿の
意味です。
まだオプション対応版を見てないので、読み込みは滅多に使わないし/exportだけで
もパス指定できるなら使ってもいいかなって感じですかね。
Shell.Application使えばできるんだろうけどスクリプト製作者&使いとしてはスマー
トじゃないですよね。
まぁ当面は開発する暇がないし、微熱がつづいてて開発する気力もないので、スクリ
プトも増えないから保存を使用する機会も当分なさそうですw
ということで、これで終わりにしましょう

[ ]