如何从 tmux 中更改默认的新窗口目录

如何从 tmux 中更改默认的新窗口目录

我最近从GNU 屏幕多路复用器
我发现它非常相似,但有更大的支持(我切换是因为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}"该命令将我的当前目录设置为默认目录。
谢谢。

答案1

太长了;博士

  • Ctrl+b :

  • attach -c desired/directory/path

长答案

  1. 开始tmux如下:

     (cd /aaa/bbb; tmux)
    

现在,您创建的任何新窗口(或窗格)都将从 目录 开始/aaa/bbb,无论当前窗格的当前目录如何。

  1. 如果要在tmux启动并运行后更改默认目录,请attach-session使用-c.

引用手册tmuxattach-session

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

例如:

  • Ctrl+b :

  • attach -c /ddd/eee

新窗口(或窗格)现在将在 目录 中启动/ddd/eee,无论当前窗格的目录如何。

答案2

对于那些可能正在寻找比所选答案提供的更多参考的人,StackOverflow 上对此问题有另一个很好的答案:

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

attach它提供了无需离开会话即可完成此操作的方法,对于那些以多会话方式使用 tmux 的人(比如我自己),上面的答案提供了关于/如何工作的更好的上下文attach-session

请参阅两个可用答案以了解它们的不同使用方式。我发现两者都很有帮助/富有洞察力。

相关内容