iTerm 2个人资料

Mil*_*lin 40 macos iterm

我最近切换到iTerm2并喜欢它.我想知道是否有一种方法可以使用配置文件来对应您所在的环境/特定机器.

如果我在我的Mac上的一个窗口中执行任务,则配置文件显示为默认值,但如果我将ssh插入计算机(例如dev0),则iTerm上的配置文件将更新为配置文件dev0.完成dev0并调用exit后,配置文件将再次切换到默认值.

我意识到一个解决方法是每当我想要ssh到另一台机器并且有办法区分时打开一个特定的配置文件,但如果连接关闭它需要你注意文本而不是说窗口的背景.

这可能吗?如果没有,如何添加此功能,有没有可以贡献的方式?

Geo*_*rge 53

iTerm2支持自定义转义码,可以动态更改配置文件.把它放在.bashrc或.bash_profile中.

<esc>]50;SetProfile=X^G
Run Code Online (Sandbox Code Playgroud)

其中X是配置文件.例如,要将配置文件更改为名为"Foo"的配置文件,请使用以下shell脚本:

#!/bin/bash
echo -e "\033]50;SetProfile=Foo\a"
Run Code Online (Sandbox Code Playgroud)

要在注销时将其更改回来,请将代码更改为〜/ .bash_logout中的默认值.

  • 刚刚添加到此,我发现以下代码段可用于根据我是否ssh到主机来更改配置文件:`sshToMyFavouriteHost(){echo -e"\ 033] 50; SetProfile = Profile2\a"; ssh my.favourite.host.com && echo -e"\ 033] 50; SetProfile = Profile1\a"} (2认同)

lfe*_*445 11

对于zsh用户

假设你有2个配置文件,一个名为mac(用于主要机器),一个用于linux(远程机器)

进入会话时,我们需要告诉zsh加载我们的个人资料

  1. 连接到远程linux
  2. ~/.zshrcecho -e "\033]50;SetProfile=linux\a"
  3. 找到您的文件立即生效: source ~/.zshrc
  4. 你的新主题应该在iterm会话中可见.

退出会话时,我们需要告诉zsh切换回原始配置文件

  1. 连接到远程linux
  2. 在linux中~/.zlogout添加以下内容
if [ "$SHLVL" = 1 ]; then
  echo -e "\033]50;SetProfile=mac\a"
  clear
fi
Run Code Online (Sandbox Code Playgroud)

现在你可以轻松地交换配置文件<3.

如果你使用bash,我相信步骤是相似的,但你会修改~/.bashrc~/.bash_logout

演示

在iterm2中基于会话的配置文件的演示


Yoh*_*eby 11

每晚最新的iTerm2(编写本文时编译2.9.20150329)可让您轻松完成.你可以在这里下载.

安装并打开后:

  1. 通过ssh登录到远程计算机,然后单击iTerm2(应用程序菜单)> 安装Shell集成.它将下载脚本curl并安装它.在本地计算机上执行相同操作.
  2. 转到首选项 > 配置文件.
  3. 为本地计算机创建新的配置文件.自定义它以满足您的需求(更改背景颜色,名称等)
  4. 转到" 高级"选项卡并滚动到底部.
  5. 自动配置文件切换中,单击"+"并添加本地计算机的主机名.主机名是echo $HOST在目标计算机上运行时获得的主机名.它并不总是您在提示中看到的那个.
  6. 为远程计算机创建另一个配置文件,并对其进行自定义.
  7. 自动配置文件切换中添加远程计算机的主机名.
  8. 现在,如果您进入远程计算机,您的个人资料将会更改,如果您exit退出ssh会话,您将返回到本地个人资料.

您可以无缝地将此解决方案与@ esod的答案相结合.
注意:在我专门为桌面创建配置文件而不是使用默认配置文件之前,它对我不起作用.

有关详细信息,请参阅文档.


Mar*_*mon 5

步骤1:

自定义您的 iterm 配置文件,例如darklight

第2步:

在您的 shell 配置文件之前添加代码,例如.bashrc or .zshrc

# Change iterm2 profile. Usage it2prof ProfileName (case sensitive)
it2prof() { echo -e "\033]50;SetProfile=$1\a" }
Run Code Online (Sandbox Code Playgroud)

步骤3:

让你的个人资料有意义

exec $SHELL -l
Run Code Online (Sandbox Code Playgroud)

步骤4:

切换您的 iterm 主题配置文件

it2prof dark
it2prof light
Run Code Online (Sandbox Code Playgroud)