iTerm 2configuration文件

我最近切换到iTerm2,并喜欢它。 我想知道,如果有一种方法来使用configuration文件来对应您所在的环境/特定机器。

如果我在我的Mac上的一个窗口中执行任务,则configuration文件显示为默认configuration文件,但是如果我将sshconfiguration为一台机器(让dev0),则iTerm上的configuration文件将更新为configuration文件dev0。 一旦我完成了dev0并呼叫退出,configuration文件将再次切换到默认值。

我意识到一个解决办法是打开一个特定的configuration文件,每当我想SSH入另一台机器,并有一种方法来区分,但如果连接closures它需要你注意基于文本而不是说窗口的背景。

这可能吗? 如果不是这个function怎么能被添加的,有没有办法可以做出贡献?

iTerm2支持自定义转义代码,可以即时更改configuration文件。 把它放在你的.bashrc或.bash_profile中。

<esc>]50;SetProfile=X^G 

其中X是configuration文件。 例如,要将configuration文件更改为名为“Foo”的configuration文件,请使用以下shell脚本:

 #!/bin/bash echo -e "\033]50;SetProfile=Foo\a" 

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

每晚最新的iTerm2(编写时build立2.9.20150329-每晚)允许你轻松地做到这一点。 你可以在这里下载。

一旦你安装并打开它:

  1. 通过sshlogin到远程机器,然后单击iTerm2 (应用程序菜单)> 安装Shell集成 。 它会用curl下载一个脚本并安装它。 在你的本地机器上做同样的事情
  2. 转到首选项 > configuration文件
  3. 为您的本地机器创build一个新的configuration文件。 自定义它以适应您的需求(更改背景颜色,名称等)
  4. 转到高级选项卡并滚动到底部。
  5. 自动configuration文件切换中 ,单击“+”并添加本地机器的主机名。 主机名是在目标机器上运行echo $HOST时得到的。 并不总是你在提示中看到的那个。
  6. 创build另一个configuration文件,这次是为您的远程机器,并定制它。
  7. 自动configuration文件切换中添加远程机器的主机名。
  8. 现在,如果你ssh进入远程机器,你的configuration文件将会改变,如果你exit ssh会话,你将回到你的本地configuration文件。

您可以将此解决scheme与@ esod的答案无缝地结合在一起。
注意:直到我为桌面创build一个configuration文件,而不是使用默认configuration文件,它才起作用。

有关更多信息,请参阅文档 。

为zsh用户

可以说你有2个configuration文件,一个名为mac (用于你的主机),一个用于linux (你的远程机器)

进入会话时 ,我们需要告诉zsh加载我们的configuration文件

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

退出会话时 ,我们需要告诉zsh切换回原来的configuration文件

  1. 连接到远程linux
  2. ~/.zlogout添加如下内容
 if [ "$SHLVL" = 1 ]; then echo -e "\033]50;SetProfile=mac\a" clear fi 

现在您可以轻松地交换configuration文件<3。

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

演示

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

我有同样的愿望,并发现这可以在应用程序的首选项中的iTerm 2(生成1.0.0.20130319)完成。

您可以通过以下方式指定一个configuration文件(比如远程configuration文件)

configuration文件 – >打开configuration文件selectconfiguration文件,然后单击编辑configuration文件…转到颜色选项卡,并从加载预设…列表中select该configuration文件的预设

此外,我已经为不同的configuration文件设置了快捷键,所以我可以有一个iTerm窗口看起来不同于另一个窗口。 我是这样做的:

  1. 在首选项中创build一个新的configuration文件
  2. 在Preferences-> Keys中创build一个新的configuration文件快捷键,其操作是带有configuration文件的New Window

我的默认configuration文件有黑色的背景,但有时它可以帮助我有一个白色的背景。 我复制我的默认configuration文件,并命名新的configuration文件DefaultLight。 在我的默认configuration文件中,我转到“密钥”选项卡,在其中创build一个新的configuration文件快捷键,其快捷键是^ + cmd + n,其操作是带有configuration文件的新窗口,其configuration文件为DefaultLight。

在保存前提后,cmd + n打开一个黑色背景的新窗口,^ + cmd + n打开一个白色背景的新窗口。

如果您有兴趣进一步了解,还可以在“键盘快捷键首选项”中select带有configuration文件操作的新选项卡。

在我的情况下,我需要将YohaïBerreby的回答与主持人的设置结合起来,以实现此function。

  1. 在自动configuration文件切换中,单击“+”并添加本地机器的主机名。 主机名是在目标机器上运行echo $ HOST时得到的。 并不总是你在提示中看到的那个。

我的登台服务器不设置$ HOST,主机名是:

 [devel@alveo-staging ~]$ hostname alveo-staging 

但是我不能将主机名的规则设置为alveo-staging 。 因为事实上, alveo-staging只是真正的主机名(alveo-staging.xxx)的别名,可以在/etc/hosts

所以对此的快速解决scheme是使用*通配符,将规则设置为*staging*

然后它工作。