如何将默认路径/目录设置为会话启动的目录?

如何将默认路径/目录设置为会话启动的目录?

我正在使用旧版本的 tmux (v1.5)。如何配置 tmux 以将默认目录设置为启动会话的目录?

对于较新版本的 tmux(1.7 及更高版本),这不是问题。我只需添加以下内容即可~/.tmux.conf获得我想要的结果:

set-option -g default-path "-"

不幸的是,我使用的 tmux 版本没有这个选项。

答案1

这有点复杂,但是有效:

  • 将此函数定义添加到您的~/.profile

    tmux() ( ORIG_PWD_FOR_TMUX="${PWD}" command tmux "$@"; )
    

    此函数运行时tmux将环境变量ORIG_PWD_FOR_TMUX设置为当前目录 ( ${PWD})。每次创建新窗口时都会引用此变量。

  • 将以下内容添加到您的~/.tmux.conf文件中:

    set-option -g default-command "[ -z \"\${ORIG_PWD_FOR_TMUX+set}\" ] || { cd \"\${ORIG_PWD_FOR_TMUX}\"; unset ORIG_PWD_FOR_TMUX; }; exec ${SHELL}"
    set-option -g -a update-environment " ORIG_PWD_FOR_TMUX"
    

    上述default-command值检查ORIG_PWD_FOR_TMUX环境变量是否已设置。如果已设置,则转到该目录并取消设置变量(以保持环境清洁)。然后调用 shell,该 shell 将在原始目录中运行。

    update-environment设置告诉tmux将值复制ORIG_PWD_FOR_TMUX到会话环境中,以便将来的new-window命令可以获得变量值。

现在您可以像平常一样运行,tmux只是新窗口将在与会话相同的目录中启动。

相关内容