当我启动 tmux 时,tmux 会自动设置 RBENV_VERSION...
有人知道如何阻止吗?
因为它会自动设置,所以我需要这样做
$ export RBENV_VERSION
取消设置并使 .ruby-version 工作。谢谢。
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
等)以及任何其他初始化位。
要检查环境变量是否是 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)