実行中のTmuxセッションでtmuxが使用する設定ファイルをどのように見つけることができますか?

実行中のTmuxセッションでtmuxが使用する設定ファイルをどのように見つけることができますか?

tmux私はArch Linuxを使用しており、これを端末で実行しています。

~ ❯ tmux -V
tmux 3.2a

tmuxセッション内で実行するとき、次のことをどのように確認できますか?

  1. Aがtmux.conf使っている
  2. 使用中のファイルの場所ですtmux.conf

答え1

誤解があると思います。 「tmuxセッション中」のときはtmux.conf「使用中」ではなくすでに使用されている。比較するBashへのこの答えと.bashrc、同様の状況。リンクされた回答の段落の1つは、「bash」から「tmux」に「翻訳」することができます。 「翻訳された」バージョンは次のとおりです。

シェルtmuxサーバーの現在の設定を保持しているファイルとは思わないでください。ソースがあるという意味です。.bashrc tmux.confクリーンシェルtmuxサーバーに入ると自動的に。人々は時々手動で取り戻し、働く* [...]

*前のタスクを2回実行すると、発生する可能性のある副作用に適用されます。

構成ファイルを解析した後、tmuxサーバーはそのファイルを忘れる可能性があります。これでサーバーの設定が完了しました。それ自体それが最も重要なことです。構成はファイルによって適用されますが、ファイルに保存または更新されません。ファイル(つまり以前のバージョン)がすでに処理されているため、ファイルの変更はすでに実行されているサーバーには影響しません。

ただし、Tmuxはロードされた設定ファイルを覚えています。この情報は、次の形式変数で提供されます。config_files。たとえば、tmux 内のシェルでは、次のことができます。

tmux display-message -p 'This is a list of config files: #{config_files}'

私にとって、このコマンドは次のように印刷されます。

This is a list of config files: /etc/tmux.conf,/home/kamil/.tmux.conf

このファイルについて本当に知りたい場合存在する使用後に確認してくださいcurrent_file型変数。#{current_file}フォーマット文字列で処理中のファイルのパス名(autoまたはUsed)に拡張されますsource-file。ファイル外(たとえば、tmux display-message -p '#{current_file}'tmux内のシェルで実行されている場合)は空の文字列に展開されます。

~によると変更ログcurrent_filetmux 3.2に追加されました。

答え2

それはうまくいきませんが、うまくいきますtmux -v(ユーザーが書き込み権限を持つディレクトリから始まります)grep loading tmux-server-<pid>.log。ログが急速に大きくなったら、ログを終了して削除することを忘れないでください。

ただし、通常、構成ファイルの場所を読み取る可能性はいくつかあります(3.2aでテスト済み)。

  • まず、tmux -f configfile使用すると他のものよりも優先されます。システム構成も処理されません。
  • -fコマンドラインにない場合:
    • /etc/tmux.confその後、システムを処理します(存在する場合)。
    • 次に、ユーザー設定を処理します~/.tmux.conf(存在する場合)。
    • 次に、(3.2a のみ) ユーザ設定~/.config/tmux/tmux.conf(存在する場合)を処理します.

もちろん、そのうちの1つがsource-file別のものになることも、他のものがsource-file別のものになることもあります。ただし、少なくともプレイしている設定を簡単に解決できるはずです。

関連情報