web-dev-qa-db-ja.com

tmux内からデフォルトの新しいウィンドウディレクトリを変更する方法

最近 GNU画面 から tmux に移動しました。
かなり似ていますが、サポートが大きくなっています( neovimでのエスケープ時間の問題のために切り替えました -解決はtmuxのみでした)。

残念ながら、tmuxではこれに似たコマンドを見つけることができません。

_screen -X eval "chdir $(some_dir)"
_

上記のコマンドは、GNU画面内から新しいウィンドウ/画面/ペインのデフォルトディレクトリを変更したので、 Ctrl+a (tmuxと同様 Ctrl+b)-$(some_dir)ディレクトリに新しいウィンドウが開きます。

Tmuxにも同様のものはありますか?

回答:
@ Lqueryvg回答を使用し、コメントからの@Vincent Nivoliersの提案と組み合わせて、現在のディレクトリをデフォルトとして設定するコマンド_attach -c "#{pane_current_path}"_の新しいバインディングを取得しました。
ありがとうございます。

49
lewiatan
  1. 次のようにtmuxを開始します。

    (cd /aaa/bbb; tmux)
    

    これで、作成する新しいウィンドウ(またはペイン)は、現在のペインの現在のディレクトリに関係なく、/aaa/bbbディレクトリから始まります。

  2. tmuxの起動後にデフォルトディレクトリを変更する場合は、attach-session-cを組み合わせて使用​​します。

    attach-sessiontmux manページからの引用:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    例えば:

    • Ctrl+b:

    • attach -c /ddd/eee

    新しいウィンドウ(またはペイン)は、現在のペインのディレクトリに関係なく、ディレクトリ/ddd/eeeで開始されます。

76
Lqueryvg

選択した回答が提供するよりも少し多くの参照を探している可能性がある人のために、StackOverflowでこの質問に対する別の良い回答がありました:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

これは、セッションを終了せずにそれを行うことができる方法を提供します。また、(私のような)マルチセッション形式でtmuxを使用する人にとって、上記の答えは、attach/attach-session機能します。

それぞれの使用方法については、利用可能な両方の回答を参照してください。どちらも参考になりました。

3
nicklamuro