我正在使用旧版本的 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
只是新窗口将在与会话相同的目录中启动。