如何停止 tmux 自动设置 RBENV_VERSION

问题描述 投票:0回答:2

当我启动 tmux 时,tmux 会自动设置 RBENV_VERSION...

有人知道如何阻止吗?

因为它会自动设置,所以我需要这样做

$ export RBENV_VERSION

取消设置并使 .ruby-version 工作。谢谢。

ruby shell tmux rbenv
2个回答
15
投票

tmux 本身永远不会自行设置(或取消设置)RBENV_VERSION。您的一些配置导致了这种情况。

我的猜测是,RBENV_VERSION 在您启动 tmux 服务器时设置,现在是 tmux“全局环境”的一部分(由 tmux 启动的所有进程继承的基本环境)。你可以检查这个

tmux show-environment -g | grep RBENV

如果存在,您可以使用以下命令将其删除:

tmux set-environment -gu RBENV_VERSION

如果您经常发现自己在已经设置了 RBENV_VERSION 的情况下启动 tmux(并且您不希望将其发送到“内部”tmux),那么您可以将上述命令添加到您的

~/.tmux.conf
文件中以确保它是每次启动服务器时都会清除。

另一种可能性是它是您的 tmux“会话环境”的一部分;该环境“分层”在全局环境之上,以形成由会话中为新窗口和窗格启动的进程继承的环境。您可以使用此命令检查它(在会话内运行它,或添加

-t sessname
来指定会话):

tmux show-environment | grep RBENV

如果存在,您可以以类似的方式取消设置:

tmux set-environment -u RBENV_VERSION

最后,如果该变量不存在于全局或会话环境中,那么它可能来自 shell 初始化文件中的某些内容。默认情况下,tmux启动登录 shell,因此请务必检查 shell 配置的相应位(例如,

.bash_profile
.bash_login
.profile
等)以及任何其他初始化位。


0
投票

要检查环境变量是否是 tmux 会话环境的一部分,请查看

的输出
tmux show-environment

然后对全局环境做同样的事情:

tmux show-environment -g

tmux 默认启动登录 shell,因此您可以清除全局环境并让登录 shell 从头开始构建它(从 ~/.profile 等)。这是一种方法:

(tmux show-environment -g |less |sed 's/=.*//' |while read e; do tmux set-environment -gu -- "$e"; done)
© www.soinside.com 2019 - 2024. All rights reserved.