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-每晚)允许你轻松地做到这一点。 你可以在这里下载。
一旦你安装并打开它:
- 通过sshlogin到远程机器,然后单击iTerm2 (应用程序菜单)> 安装Shell集成 。 它会用
curl
下载一个脚本并安装它。 在你的本地机器上做同样的事情 。 - 转到首选项 > configuration文件 。
- 为您的本地机器创build一个新的configuration文件。 自定义它以适应您的需求(更改背景颜色,名称等)
- 转到高级选项卡并滚动到底部。
- 在自动configuration文件切换中 ,单击“+”并添加本地机器的主机名。 主机名是在目标机器上运行
echo $HOST
时得到的。 并不总是你在提示中看到的那个。 - 创build另一个configuration文件,这次是为您的远程机器,并定制它。
- 在自动configuration文件切换中添加远程机器的主机名。
- 现在,如果你ssh进入远程机器,你的configuration文件将会改变,如果你
exit
ssh会话,你将回到你的本地configuration文件。
您可以将此解决scheme与@ esod的答案无缝地结合在一起。
注意:直到我为桌面创build一个configuration文件,而不是使用默认configuration文件,它才起作用。
有关更多信息,请参阅文档 。
为zsh用户
可以说你有2个configuration文件,一个名为mac (用于你的主机),一个用于linux (你的远程机器)
进入会话时 ,我们需要告诉zsh加载我们的configuration文件
- 连接到远程linux
- 在
~/.zshrc
添加echo -e "\033]50;SetProfile=linux\a"
- 源文件立即生效:
source ~/.zshrc
- 您的新主题应该在iterm会话中可见。
退出会话时 ,我们需要告诉zsh切换回原来的configuration文件
- 连接到远程linux
- 在
~/.zlogout
添加如下内容
if [ "$SHLVL" = 1 ]; then echo -e "\033]50;SetProfile=mac\a" clear fi
现在您可以轻松地交换configuration文件<3。
如果你使用的是bash,我相信这些步骤是相似的,但是你会修改~/.bashrc
和~/.bash_logout
演示
我有同样的愿望,并发现这可以在应用程序的首选项中的iTerm 2(生成1.0.0.20130319)完成。
您可以通过以下方式指定一个configuration文件(比如远程configuration文件)
configuration文件 – >打开configuration文件selectconfiguration文件,然后单击编辑configuration文件…转到颜色选项卡,并从加载预设…列表中select该configuration文件的预设
此外,我已经为不同的configuration文件设置了快捷键,所以我可以有一个iTerm窗口看起来不同于另一个窗口。 我是这样做的:
- 在首选项中创build一个新的configuration文件
- 在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。
- 在自动configuration文件切换中,单击“+”并添加本地机器的主机名。 主机名是在目标机器上运行echo $ HOST时得到的。 并不总是你在提示中看到的那个。
我的登台服务器不设置$ HOST,主机名是:
[devel@alveo-staging ~]$ hostname alveo-staging
但是我不能将主机名的规则设置为alveo-staging
。 因为事实上, alveo-staging只是真正的主机名(alveo-staging.xxx)的别名,可以在/etc/hosts
。
所以对此的快速解决scheme是使用*通配符,将规则设置为*staging*
。
然后它工作。