您的位置:

打造时尚动感的最佳oh-my-zsh主题

一、oh-my-zsh简介

oh-my-zsh是一款针对zsh的命令行界面美化工具,基于zsh提供了更为强大的自定义能力和可扩展性,支持快速切换主题和插件。oh-my-zsh非常受欢迎,拥有超过1万个star。通过oh-my-zsh,我们可以制作属于自己的个性化主题,提高工作效率和提升使用体验。

二、选择合适的主题

在制作oh-my-zsh主题之前,我们首先应该选择一款自己喜欢的主题,而选择主题的方式也很简单。我们可以在oh-my-zsh提供的主题仓库中,查看每个主题的截图、功能和用法说明。同时,在GitHub上也有其他人分享的oh-my-zsh主题,可以作为借鉴和参考。

三、修改主题配色

修改主题配色是oh-my-zsh主题开发的必走之路。首先我们应该了解主题中用到的颜色规则,以及如何对命令行的输出进行颜色渲染。其中,zsh默认使用的配色方案是256色方案,可以满足我们对配色的各种需求。而对于不同操作系统的高亮显示、配色、渲染方案有所不同,需要定制。


  # 定义颜色
  COLOR_RED="%F{red}"
  COLOR_YELLOW="%F{yellow}"
  COLOR_BLUE="%F{blue}"
  COLOR_MAGENTA="%F{magenta}"
  COLOR_CYAN="%F{cyan}"
  COLOR_WHITE="%F{white}"
  COLOR_BLACK="%F{black}"
  # 定义终止颜色
  COLOR_END="%f"

四、更改字体大小和样式

除了颜色的改变外,还可以通过更改字体的大小和样式来定制oh-my-zsh主题。我们可以在.zshrc文件中直接设置字体大小,如下所示:


  # 字体大小改变
  if [[ $OSTYPE == darwin* ]] then
      # macos
      export CLICOLOR=1
      export LSCOLORS="gxfxcxdxbxegedabagacad"
      export PS1="%{$COLOR_RED%}%n@%m %{$COLOR_WHITE%}%~ $(git_prompt_info)%{$COLOR_END%}\n% "
      export LC_ALL=en_US.UTF-8
      export LANG=en_US.UTF-8
      export LC_CTYPE=en_US.UTF-8
      export LC_ALL=en_US.UTF-8
      export FPATH="/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:$FPATH"
      export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/opt/grep/libexec/gnubin:$PATH"
      ### 字体大小设置
      zstyle ':prezto:module:terminal' font-size "22"
      zstyle ':prezto:module:terminal' font "Source Code Pro for Powerline"
  fi

五、添加特定的功能

在oh-my-zsh主题的定制中,除了颜色和字体的修改,还可以添加特定的功能,比如添加Git状态显示、快速跳转到常用目录、PROMPT等。下面是添加Git状态显示的示例代码:


  # 显示当前git分支
  parse_git_branch() {
      git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
  }
  # PROMPT的设置
  export PROMPT='%{$COLOR_RED%}%n@%m %{$COLOR_WHITE%}%~$(parse_git_branch) %{$COLOR_END%}\n% '

六、创建自己的oh-my-zsh主题

如果感觉自带主题不太满足,我们可以自己打造oh-my-zsh主题。在这里,我举一个简单的例子,实现在命令行中显示当前所在地理位置和天气状况。


  # 版本控制
  export LANG=en_US.UTF-8
  source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
  # 获取当前所在位置
  alias whereami='curl -s http://ipinfo.io | jq ".loc" | awk -F"," "{print \"Latitude: \" $1 \"\\nLongitude: \" $2}" && curl -s https://wttr.in && echo ""'
  # PROMPT的设置
  export PROMPT='%{$COLOR_RED%}%n@%m %{$COLOR_BLUE%}$(whereami)%{$COLOR_WHITE%}%~ $(git_prompt_info)%{$COLOR_END%}\n% '

七、主题示例

最后,我给出一款自己定制的oh-my-zsh主题示例,展示如何结合以上技巧打造时尚动感的oh-my-zsh主题。


  # 主题代码
  PROMPT='%{$COLOR_RED%}%n@%m %{$COLOR_YELLOW%}%D{%b-%d %H:%M:%S} %{$COLOR_BLUE%}$(whereami)%{$COLOR_WHITE%} %~ $(git_prompt_info)%{$COLOR_END%}\n% '

八、总结

通过本文,我们了解了oh-my-zsh的基本概念和使用方法,以及如何使用各种技巧定制个性化oh-my-zsh主题。通过不断尝试和创新,我们可以打造自己的时尚动感oh-my-zsh主题,提高工作效率和提升使用体验。