gpt4 book ai didi

tmux - 每个窗口的起始目录不同?

转载 作者:行者123 更新时间:2023-12-01 22:49:59 26 4
gpt4 key购买 nike

我每天在我的笔记本电脑上使用 tmux (2.5) 来工作,我的 tmux session 有一个起始目录,它是我启动 tmux session 的工作目录。我打开的每个 Pane /窗口都以此起始目录作为工作目录。

我可以change this starting directory ,并且此更改将应用​​于整个 session 。

但是如果我想在一个有多个 Pane 的不同项目上工作,我可以启动一个新窗口,但我要在其中打开的每个 Pane 都将从 session 的起始目录开始:我必须 cd 到每个 Pane 的新位置,这是不切实际的。

如果我需要同时处理多个项目/目录,我可以启动一个新的终端 session ,然后 cd 到相关目录/项目并启动一个新的 tmux session 。这并不复杂。

但是如果我想通过 ssh 在服务器上做同样的事情,我需要:

  • 打开一个新的 ssh session 。
  • 要么将我的远程 tmux session 嵌入到另一个 tmux session 中。

对我来说这两个听起来都不实用,我更喜欢远程机器上的单个 tmux session 。

我认为如果能够使用自己的起始目录位置来启动新窗口会更方便,该起始目录位置适用于在其中打开的任何新 Pane 。有办法实现吗?

编辑:

我已经试过tmux new-window命令的-c参数

但它不会将其起始目录分配给以这种方式创建的窗口,它只会将此自定义起始目录应用于创建的第一个 Pane 。

在此窗口中打开的任何新 Pane 然后使用 session 的起始目录作为默认工作目录(而不是传递给 tmux new-window 的路径)。

最佳答案

这个问题非常类似于:https://unix.stackexchange.com/questions/12032/create-new-window-with-current-directory-in-tmux

这取决于您的 tmux 版本,但 -c 参数确实可以解决问题,但它不会记住设置。曾经有一个 default-path 设置,但不幸的是,它已在 1.9 版中删除。

对于较新的版本,您将需要在所有情况下传递 -c(如果您手动执行该命令,则可以使用别名)或者如果您使用键绑定(bind),则需要重新绑定(bind)拆分/新窗口键。

bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

要使用自定义路径而不是当前 Pane 路径,请执行此命令:

tmux setenv custom_path /home/whatever/some/path

将其放入您的配置中:

bind '"' split-window -c "#{custom_path}"
bind % split-window -h -c "#{custom_path}"
bind c new-window -c "#{custom_path}"

关于tmux - 每个窗口的起始目录不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com