V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Oilybear
V2EX  ›  Terminal

iTerm/zsh 环境变量快速切换问题

  •  
  •   Oilybear · 2022-11-10 09:54:17 +08:00 · 1097 次点击
    这是一个创建于 777 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Hi,各位 请教工具的用法,iTerm 支不支持快速开启一个配置了特定环境变量的 zsh shell 因为环境变量在 ~/.zshrc 中设置后是每次打开都生效的,但是在想可能环境变量设置多了是不是会互相干扰,比如:

    1. Tab1
      $ export PATH=$PATH:anaconda/Script
      $ which conda 
       out:path ...
      
    2. Tab2
      $ export PATH=$PATH
      $ which conda 
       out:no which conda in path
      

    所以想请教各位 iterm 支不支我预先配置好某种自定义的 tab 需要的环境变量,然后快速的打开。还是说以上的操作只能自己写一个 sh ,然后每次先 source 一下

    5 条回复    2022-11-10 10:42:31 +08:00
    TimePPT
        1
    TimePPT  
       2022-11-10 09:58:06 +08:00
    你的需求是快速切 conda 环境?
    看看 direnv 能不能满足你 https://direnv.net/
    Oilybear
        2
    Oilybear  
    OP
       2022-11-10 10:04:54 +08:00
    @TimePPT 不全是 conda ,主要是任意切换,比如有的配了 cmake 、有的配了 go 有的配了 python 等等,不过谢谢你的回复,我看一下这个工具
    HAWCat
        3
    HAWCat  
       2022-11-10 10:21:03 +08:00
    1~/.zshrc 里面声明多套环境的 shell 函数,函数里面 export 环境变量,
    然后 iterm 的 Preference / Profiles 配置相应的 profile ,每个 profile 的 Command 里面选择 Command ,Command 值输入相应的函数名,这样就可以快速打开 Tab 并载入相应的环境变量了
    imycc
        4
    imycc  
       2022-11-10 10:35:26 +08:00
    在不同工作目录下用不同的环境变量,我之前是用 zsh+dotenv 来做的。但是你这种修改 PATH 的场景可能不太适用。
    python 的多环境管理我用的 pyenv ,进入到哪个工作目录就动态加载`.python-version`。但是 go 的多环境我就不熟悉了
    Oilybear
        5
    Oilybear  
    OP
       2022-11-10 10:42:31 +08:00
    @HAWCat 我试试看起来这个方案很不错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1079 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:10 · PVG 03:10 · LAX 11:10 · JFK 14:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.