![如何使用 zsh 更改主题](https://linux22.com/image/78322/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20zsh%20%E6%9B%B4%E6%94%B9%E4%B8%BB%E9%A2%98.png)
我在用这个配置在我的 mac(unix) 上自定义我的 shell。我使用 zsh 而不是 bash,而且 zsh 带来的东西太多了。该.dotfile
配置包含vim, zsh, git, homebrew, nvm, nginx, neovim
各自的主题和配置。我Oh-my-zsh
可以自定义如此多的主题,但这里zsh
控制着我的 shell,并且是使用我从 Github 的 .dotfile 包中使用的文件~/.zshrc
创建的符号链接。.dotfiles/zsh/zshrc.symlink
我已将 oh-my-zsh 版本的 zshrc 文件重命名为 ~/.zshrc.bak。此外,将主题配置添加到文件zsh's
版本~\zshrc
不起作用。如何,我可以使用 更改主题zsh
吗?
来自 ~/.dotfiles 的 zshrc 符号链接
❯ cat ~/.zshrc
# Ruby Motion android tool
export RUBYMOTION_ANDROID_SDK=/Users/abhimanyuaryan/.rubymotion-android/sdk
export RUBYMOTION_ANDROID_NDK=/Users/abhimanyuaryan/.rubymotion-android/ndk
export DOTFILES=$HOME/.dotfiles
export ZSH=$DOTFILES/zsh
# display how long all tasks over 10 seconds take
export REPORTTIME=10
[[ -e ~/.terminfo ]] && export TERMINFO_DIRS=~/.terminfo:/usr/share/terminfo
# define the code directory
# This is where my code exists and where I want the `c` autocomplete to work from exclusively
if [[ -d ~/code ]]; then
export CODE_DIR=~/code
fi
# source all .zsh files inside of the zsh/ directory
for config ($ZSH/**/*.zsh) source $config
if [[ -a ~/.localrc ]]; then
source ~/.localrc
fi
# initialize autocomplete
autoload -U compinit
compinit
for config ($ZSH/**/*completion.sh) source $config
export EDITOR='nvim'
export PATH=/usr/local/bin:$PATH
# add /usr/local/sbin
if [[ -d /usr/local/sbin ]]; then
export PATH=/usr/local/sbin:$PATH
fi
# adding path directory for custom scripts
export PATH=$DOTFILES/bin:$PATH
# check for custom bin directory and add to path
if [[ -d ~/bin ]]; then
export PATH=~/bin:$PATH
fi
[ -z "$TMUX" ] && export TERM=xterm-256color
# install rbenv
if hash rbenv 2>/dev/null; then
eval "$(rbenv init -)"
fi
if [[ -d ~/.rvm ]]; then
PATH=$HOME/.rvm/bin:$PATH # Add RVM to PATH for scripting
source ~/.rvm/scripts/rvm
fi
# alias git to hub
if hash hub 2>/dev/null; then
eval "$(hub alias -s)"
fi
# source nvm
export NVM_DIR=~/.nvm
if hash brew 2>/dev/null; then
source $(brew --prefix nvm)/nvm.sh
source `brew --prefix`/etc/profile.d/z.sh
fi
# Base16 Shell
# if [ -z "$THEME" ]; then
export THEME="base16-eighties"
# fi
if [ -z "$BACKGROUND" ]; then
export BACKGROUND="dark"
fi
BASE16_SHELL="$DOTFILES/.config/base16-shell/$THEME.$BACKGROUND.sh"
# [[ -s $BASE16_SHELL ]] && source $BASE16_SHELL
source $BASE16_SHELL
oh-my-zsh 版本的 zshrc 文件不起作用。
❯ cat .zshrc.bak
# Path to your oh-my-zsh installation.
export ZSH=/Users/abhimanyuaryan/.oh-my-zsh
ZSH_THEME="robbyrussell"
plugins=(git)
# User configuration
export PATH="/Users/abhimanyuaryan/bin:/usr/local/bin:/Users/abhimanyuaryan/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
# export MANPATH="/usr/local/man:$MANPATH"
source $ZSH/oh-my-zsh.sh
即使我添加ZSH_THEME="agnoster"
到 ~/.zshrc 中。主题不变。仍然和尼克提供的一样。
我问他(过去式。他说你的 oh-my-zsh 与我的配置冲突。创建你自己的。我不想创建自己的,因为我对所有这些东西都很陌生。一旦我擅长 tmux、vim 和所有这些东西,我就会创建自己的东西。在那之前我只想使用这个 .dotfiles 配置。请帮助我使用此配置自定义我的主题。另外,请帮助我理解黑白 zsh 和 oh-my-zsh 的区别。
答案1
感谢上面评论中的@John P,因为这确实是他的答案,但对于那些想要一种“动态”更改 zsh 主题而不编辑和重新配置配置的人来说,只需在您的文件中定义此别名即可.zshrc
alias ztheme='(){ export ZSH_THEME="$@" && source $ZSH/oh-my-zsh.sh }'
用法:
ztheme blinks
答案2
完成编辑后~/.zshrc
,在 shell 提示符下运行命令source ~/.zshrc
。它会从中读取配置~/.zshrc
并应用它,就像重新加载您的配置一样。