【问题标题】:Is there any way to load .zprofile like file on tmux new command?有没有办法在 tmux new 命令上加载 .zprofile 之类的文件?
【发布时间】:2020-05-27 08:32:13
【问题描述】:

我只是想将当前的 zsh 环境传递给 tmux 会话。我在.zprofile 中有RUST_BACKTRACE=1。我确实喜欢下面。

创建一个新会话,如下所示。

tmux new -d -s ipython ipython

附加到会话。

然后检查它有哪些环境变量。

In [1]: import os

In [2]: os.environ.copy()
Out[2]: 
(No RUST_BACKTRACE environemnt.)

显然,环境变量和zsh的不一样。有没有办法让 tmux 加载 .zprofile 或类似的文件?

【问题讨论】:

  • 我目前使用这个命令。 tmux new -d -s ipython zsh -c "source .zshrc;ipython"
  • 如果创建子进程,它会从父进程继承环境。在执行tmux 之前,通过执行printenv RUST_BACKTRACE) 来验证此环境变量是否存在。
  • 请记住tmux 的客户端/服务器架构。 服务器 首次启动时会继承您的环境。之后,任何新会话都会从 服务器 继承其环境,而不是在您重新连接时继承 客户端 的环境。 update-environment session 选项允许您指定环境变量列表,客户端应请求服务器为该会话更新。

标签: zsh tmux


【解决方案1】:

感谢@chepner 的评论,我在.tmux.conf 中添加了下面的命令,一切似乎都正常。谢谢!

run-shell "cat ~/.zprofile | sed -n 's/export *\\(.*\\)=\\(.*\\)/tmux set-environment -g \\1 \\2/e'"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多