运行ssh时更改oh-my-zsh主题

时间:2014-07-10 17:32:53

标签: terminal zsh iterm2 oh-my-zsh

我在iterm2上安装了Oh-my-zsh。每当运行ssh时,如何使终端更改主题?如果脚本还将背景更改为导入的其中一个预设,那就太好了。

我是一个完整的bash菜鸟。请用新手语言解释。

3 个答案:

答案 0 :(得分:7)

您需要知道的第一件事是 .zshrc 是在zsh上打开新会话之前运行的脚本。因此,提供zsh是您的默认shell,当您在本地计算机上打开终端时,它会运行 .zshrc 。当您打开到该计算机的ssh会话时,它也会运行 .zshrc

.zshrc 内,您可以找到评论的那段代码:

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

您可以使用此示例来实现您的目标:

if [[ -n $SSH_CONNECTION ]]; then
  ZSH_THEME="robbyrussell"
else
  ZSH_THEME="agnoster"
fi

其中 robbyrussell 将用于您的ssh会话, agnoster 用于其他会话。因此,只需将上面设置主题的行替换为上面的if / else语句,然后自定义

答案 1 :(得分:0)

您可以在主动提示前添加主机名。

遵循此gist

只需粘贴此文件的内容:

~/.oh-my-zsh/themes/robbyrussell.zsh-theme

然后基本上在你的本地机器上:

enter image description here

在你的远程机器上:

enter image description here

在我的情况下,ded12是我的遥控器的主机名,我只更改了我的遥控器上的主题文件,如果我在本地更改它,我的本地主机名也会在提示符前面加上

答案 2 :(得分:-1)

我认为你不能这样做,但你可以在远程主机上更改zsh-theme。 使用ssh连接到远程主机,然后编辑.zshrc:

ZSH_THEME="ys"

注销/登录以检查更改。

在本地计算机和远程服务器中保持主题不同。