TMUX 设置会话的环境变量

2023-12-19

我的工作环境是,我有多个项目,并且每个项目中都有许多脚本,这些脚本使用设置为特定于该项目的值的环境变量。

我想做的是为每个项目使用单独的 tmux 会话并设置变量,以便为该会话中的所有窗口设置它们。

我尝试使用 set-environment 选项,该选项使用 -g 选项工作,但随后为连接到该服务器的所有会话设置变量。

如果没有 -g 选项,我在使用 show-environment 时会看到它的设置,但无法访问 shell 中的变量。

有人想出解决这个问题的方法吗?

使用 tmux 1.8 和 tcsh


我想出了一个方法来做到这一点。我正在使用 tmux 2.5。

背景

在 tmux 手册页中,它指出有两组环境变量:全局变量和每会话变量。当您创建新的 tmux 会话时,它将把两个组合并在一起,并成为会话中可用的环境变量集。如果环境变量被添加到全局组中,它们似乎会在所有打开的会话之间共享。您想要将它们添加到每个会话组中。

Do this

第 1 步:创建 tmux 会话。

tmux new-session -s one

步骤 2:将环境变量添加到每会话组。

tmux setenv FOO foo-one

这会将环境变量添加到每个会话的环境变量集中。如果您输入tmux showenv,您将在输出中看到它。但是,它不在当前会话的环境中。打字echo $FOO不会给你任何东西。可能有更好的方法来做到这一点,但我发现最简单的方法是手动导出:

export FOO='foo-one'

第 3 步:创建新窗口/窗格

现在,每次在当前会话中创建新窗口或窗格时,tmux 都会从每个会话组中获取 FOO 环境变量。

自动化

我使用 bash 脚本自动创建利用这些环境变量的 tmux 会话。这是我如何自动化上述操作的示例:

#!/bin/bash
BAR='foo-one'
tmux new-session -s one \; \
  setenv FOO $BAR \; \
  send-keys -t 0 "export FOO="$BAR C-m \; \
  split-window -v \; \
  send-keys -t 0 'echo $FOO' C-m \; \
  send-keys -t 1 'echo $FOO' C-m
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TMUX 设置会话的环境变量 的相关文章

  • tmux自用

    创建新的 tmux new s NAME 回到 tmux attach t NAME
  • tmux内外vim主题theme不一致

    每次在tmux里边用vim都觉得好丑 明明外边设置theme了 但是到里边就识别不了 在 tmux conf里添加set g default terminal screen 256color 依然不行 解决方案 使用tmux 2 打开tmu
  • 让 tmux windows 继承`activate`d anaconda 环境

    为了方便起见 并考虑到activate 环境非常慢 我想激活一个环境 然后启动一个tmux会议 我想要全新的tmuxwindows 也可以激活环境 我想要不同的tmux会话能够支持不同的 anaconda 环境 我该怎么办 是否存在任何不支
  • SSH 会话中 TMUX 内的系统剪贴板 Vim

    我在 ssh 会话中的 tmux 中打开了 vim 如何让 vim 使用笔记本电脑的系统剪贴板作为默认复制粘贴 默认set clipboard unamed不工作 以防万一 两个系统都是 Ubuntu 如果您的终端仿真器支持 剪贴板集成功能
  • TMUX 设置会话的环境变量

    我的工作环境是 我有多个项目 并且每个项目中都有许多脚本 这些脚本使用设置为特定于该项目的值的环境变量 我想做的是为每个项目使用单独的 tmux 会话并设置变量 以便为该会话中的所有窗口设置它们 我尝试使用 set environment
  • tmux 使用当前激活的 conda 环境创建新窗格或窗口

    当我使用 tmux 创建新窗格或窗口时 我想使用我刚刚使用的相同 conda 环境 IE 我现在使用名为 conda envXXXenv 我用Ctrl b 要创建一个新窗格 我想要的是新创建的窗格由 conda env 激活XXXenv 事
  • 如何禁用 Tmux 中的键绑定

    使用 Tmux 和 Vim 有时很痛苦 对我来说 冲突之一是Control S 我在 Vim 中使用它来分割打开缓冲区 但是当使用 Tmux 时 嗯 Tmux 用它做了一些愚蠢的事情 我不明白其目的是什么 但基本上 当C s在 Tmux 中
  • 我可以在 tmux 中双击选择并复制吗?

    我正在学习使用 tmux 我发现当我在 tmux 窗口中时 双击选择和复制功能不再起作用 我可以像 iterm2 一样使用双击来选择和复制吗 我用谷歌搜索了一段时间 但没有找到简短而明确的答案 我已经添加了setw g mode mouse
  • 具有 tmux 集成的 Iterm2 不使用 .tmux.conf 中的键绑定

    我已经在 iTerm2 中使用 tmux 一段时间了 但我还没有使用 iTerm2 现在附带的 tmux 集成 我开始考虑使用 tmux 集成 因为它允许您在 tmux 内使用 shell 集成 我遇到的问题是在我这样做之后tmux CC我
  • 在 tmux 2.4 上如何一次性进入复制模式并开始搜索?

    我正在尝试将 F1 键绑定到 进入复制模式 开始反向搜索 我在网上唯一找到的是 bind key F1 copy mode send key 然而 这似乎不适用于 tmux 2 4 有没有办法让它在所有 tmux 版本上工作 这有效 bin
  • 在窗格/窗口之间共享历史记录

    有没有办法在 tmux 会话中的窗格 窗口之间共享 shell 命令历史记录 将这些选项添加到您的 zshrc setopt inc append history 我还发现hist ignore dups hist ignore space
  • Tmux:如何使用选择树过滤当前会话窗口并格式化输出以显示不带主机名的窗口名称

    我想配置tmux choose tree to 仅显示我当前会话的窗口 但与此同时我想保留我当前使用的格式 不带主机名的窗口名称 我当前的设置是 bind key w choose tree F window name 看起来像这样 我发现
  • 可以配置 Tmux 加载 ~/.bashrc 而不是 ~/.bash_profile 吗?

    现在 当我登录 Tmux 时 仅 bash profile被加载 我想要 bashrc改为被呼叫 那可能吗 这个问题与以下无关tmux 要解决它 请确保添加source bashrc to bash profile就是这样 您可以了解更多有
  • 适用于 Microsoft Windows 的终端多路复用器 - GNU Screen 或 tmux 的安装程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找适用于 Microsoft Windows 的终端多路复用器 我无法找到 tmux 和 GNU Screen 的 Microso
  • 我该如何将 HOME 键绑定为 tmux 前缀?

    有没有办法在 tmux conf 中执行此操作 如果其他一切都配置正确 那么应该很简单 只需将其放入您的 tmux conf set option g prefix Home 注意 除非您手动 获取 您的 tmux conf 对文件的更改仅
  • Google Compute Engine - 使用启动脚本启动 tmux

    我试图在启动过程中使用元数据键 startup script 启动 tmux 我正在尝试执行tmux new session d s toto在启动期间 但是当我执行tmux ls之后我没有看到任何 tmux 会话 我在这里缺少什么 您可能
  • 如何将vim(通过tmux)绑定到Cmd键

    我通常使用 macvim 并且使用 macs 命令键有许多键绑定 我正在尝试切换到 tmux 但这些绑定都不起作用 有关如何修改我的 tmux config 或 vimrc 以恢复这些绑定的任何提示 你是否有机会使用
  • 如何使用鼠标滚轮在 tmux 面板中启用滚动? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 需要使用鼠标滚轮在 tmux 窗格中启用滚动 我怎样才能得到这些提示 我可以使用它 当然如果它存在的话 鼠标选择窗格打开 option 原
  • 启动时 Tmux [退出] [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 在 Mac OS Lion 上使用 tmux 提示之前出现奇怪的空格

    它刚刚发生在我的 Lion 系统上 我正在使用 zsh 和 tmux 在 zsh shell 中正常 tmux 屏幕中的双倍空间 我是否缺少 zsh 或 tmux 中的某些配置 使用 u 选项启动 tmux 以实现 unicode 功能 看

随机推荐