TeraTermProject / teraterm

Other
465 stars 38 forks source link

ログ保存先として前回保存したフォルダを引き続き使いたい (ログにヒストリ機能を追加する) #236

Open osakanataro opened 3 months ago

osakanataro commented 3 months ago

TeraTermでログを取る時、とりあえず全ログ取得という方向性と、必要に応じてログ取得の2種類があると思っています。

私の場合は後者で、TeraTerm 4で作業内容ごとにフォルダを分けて手動でログ開始をする形でログを取っています。 (例 "デスクトップ\log\実施する作業内容名\yyyyddmm-1000-現状確認.txt " で保存) 作業の区切りごとに、手動でログファイルを切り替え (yyyyddmm-1010-対処.txt → yyyyddmm-1030-変更確認.txt ) といった運用を取っています。

TeraTerm4では、ログを切り替える際に前回使用したフォルダ "デスクトップ\log\実施する作業内容名\"が指定されているので、あとはファイル名だけ入力する、という形で使っていました。

TeraTerm 5では、同じことをしようとした場合、必ず「標準のログ保存先フォルダ」を起点に設定されるので、 作業内容ごとに用意した異なるフォルダに保存しようとすると「...」をクリックするというアクションが増える形になっています。

TeraTerm4のような、前回ログを保存したフォルダを記憶し引き続き使う、という設定追加は可能でしょうか?

zmatsuo commented 3 months ago

色々やっていると、このフォルダで作業していて、 次々生成されるファイルはいまは全てここに置きたい、 となりますね。

TeraTerm4のような、前回ログを保存したフォルダを記憶し引き続き使う、という設定追加は可能でしょうか?

ログファイルのヒストリ、新しい接続のヒストリのようにできれば良いのではないかと思います。 こんな感じにすればかなり便利ではないでしょうか。 log_history フォルダ名だけでなくファイル名も再利用できます。

このダイアログが開いたとき、ログファイル名のところにフォーカスがあるので そのままALT+↓でヒストリが開いて(ドロップダウンして)選択できます。 そのまま←→(多分ファイル名を変更するので→ですね)で編集したいところに移動して修正、とできます。 (加えてemacsキーバインドも使えると便利そうです) どうでしょうか?

ファイルだけでなくフォルダのドロップもできるので試してみてください。

内部ではどうなっているかというと、 Tera Term 5 ではログフォルダの場所を必ず指定しています。 https://github.com/TeraTermProject/teraterm/blob/a49041c32abe5a6d58b2f5dd5dd8fbf852160c12/teraterm/teraterm/logdlg.cpp#L386

最近のWindowsではログ置くならこのフォルダが標準的かな というのが定まってきているので指定しています。

Tera Term 4 では指定がなければフォルダの初期値を指定していませんでした。 https://github.com/TeraTermProject/teraterm/blob/4-stable/teraterm/ttpfile/ttfile.c#L507

指定していないとどこになるの? というとOSが覚えていて最後に使用したフォルダを出してくれます。 https://learn.microsoft.com/ja-jp/windows/win32/shell/common-file-dialog#state-persistence 多分レジストリのどこかに保存されているんだと思います 過去の履歴がどんどんたまりそうですけど便利ですね。

osakanataro commented 2 months ago

確認が遅くなって申し訳ありません。 ヒストリー機能はたしかに便利そうです(v5.2では未搭載ですよね?)

zmatsuo commented 2 months ago

貼り付けてある画像は試しに作ってみたもので まだ実装していません。 そのうち実装しますね😄

osakanataro commented 2 months ago

実装楽しみにしています(issue は閉じた方がいいでしょうか?)

zmatsuo commented 2 months ago

いただいた提案を忘れないようこのままにしておいて、 作ってから閉じますね。 不具合?や取り掛かっている改良の後になると思います。😅