本教程由AI润色,旨在将一个单调、乏味的终端转变为一个充满活力、色彩鲜艳的彩虹终端。我们将使用 Starship 这个快速、可自定义的终端提示符工具来实现这一目标。

image

前置准备:安装 Nerd Font (图标字体)

在开始之前,为了确保终端中的小图标(如文件夹、Git分支、时间等)能够正常显示,你必须安装一个 Nerd Font 字体。

  1. 下载字体:前往 Nerd Fonts 官网 下载一款你喜欢的字体。推荐使用 FiraCode Nerd Font、MesloLGS NF 或 Hack Nerd Font。

  2. 安装字体:解压下载的文件并安装到你的操作系统中。

  3. 配置终端:打开你的终端程序(如 VS Code 终端、iTerm2、Windows Terminal),在设置中将字体设置为你刚才安装的 Nerd Font 字体(例如,'FiraCode Nerd Font')。如果不做这一步,图标可能会显示为乱码或方块。


第一步:安装 Starship (终端提示符美化工具)

Starship 是一个用 Rust 编写的极速终端提示符工具,它可以根据你的环境(如当前文件夹、Git状态、编程语言版本等)自动显示相关信息和图标,并允许你深度自定义其外观。

Windows (使用 Scoop 或 Winget):

  • 使用 Scoop:

    scoop install starship
    
  • 使用 Winget:

    winget install --id Starship.Starship
    

第二步:在终端中启用 Starship

安装好 Starship 之后,你需要告诉你的 Shell(如 Zsh, Bash, PowerShell)在每次打开终端时自动运行它。这需要将初始化命令添加到 Shell 的配置文件中。

请根据你使用的 Shell 类型(可以运行 echo $SHELL 查看),修改相应的配置文件:

如果你使用 PowerShell (在 Windows 上):

  1. 打开你的 PowerShell 配置文件(如果文件不存在,它会创建一个新文件):

    notepad $PROFILE
    
  2. 将以下初始化命令添加到文件的末尾:

    # 初始化 Starship
    Invoke-Expression (&starship init pwsh)
    
  3. 保存文件并关闭记事本。

  4. 在当前的 PowerShell 窗口中运行以下命令使配置生效:

    . $PROFILE
    

第三步:应用彩虹版本配置

现在 Starship 已经启用了,但它目前显示的是默认的简约外观。为了实现“彩虹条”效果,我们需要创建一个自定义的配置文件 starship.toml。

请复制以下预先配置好的“彩虹版本”TOML 代码块,并将其保存到正确的配置文件路径。

“彩虹版本”配置文件内容 starship.toml:

🌸 示例 1:春日多普勒

清透、高明度的色彩(清晰、鲜艳但依然柔和)🌸 樱花粉 ➔ ☀️ 阳光黄 ➔ 🍃 新叶绿 ➔ 💜 薰衣草紫 ➔ 💧 晴空蓝

image

"$schema" = 'https://starship.rs/config-schema.json'

format = """
[](#CEBCFD)\
$os\
$username\
[](fg:#CEBCFD bg:#FFF491)\
$directory\
[](fg:#FFF491 bg:#B0F2C2)\
$git_branch\
$git_status\
[](fg:#B0F2C2 bg:#98EFFF)\
$c\
$elixir\
$elm\
$golang\
$gradle\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
$scala\
$docker_context\
[](fg:#98EFFF bg:#FFC1E3)\
$time\
[ ](fg:#FFC1E3)\
"""

# 禁用提示符开头的空行
add_newline = false

[username]
show_always = true
style_user = "bg:#CEBCFD fg:#2F2F2F" # 薰衣草紫
style_root = "bg:#CEBCFD fg:#2F2F2F"
format = '[$user ]($style)'
disabled = false

[os]
style = "bg:#CEBCFD fg:#2F2F2F"
disabled = true # 默认禁用

[directory]
style = "bg:#FFF491 fg:#2F2F2F" # 水蜜桃
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"

[git_branch]
symbol = "🌱 "
style = "bg:#B0F2C2 fg:#2F2F2F" # 新叶绿
format = '[ $symbol$branch ]($style)'

[git_status]
style = "bg:#B0F2C2 fg:#2F2F2F"
format = '[$all_status$ahead_behind ]($style)'

[time]
disabled = false
time_format = "%R" # 时:分
style = "bg:#FFC1E3 fg:#2F2F2F" # 樱花粉
format = '[ ⏰ $time ]($style)'

# 万能工具箱(天蓝色背景),包含多种编程语言和工具图标
[c]
symbol = "⚙️ "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[golang]
symbol = "🐹 "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[java]
symbol = "☕ "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[nodejs]
symbol = "📦 "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[rust]
symbol = "🦀 "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[docker_context]
symbol = "🐳 "
style = "bg:#98EFFF fg:#2F2F2F"
format = '[ $symbol$context ]($style)'

🎨 示例 2:完美莫兰迪彩虹

风格特点: 采用低饱和度的莫兰迪色系,文字颜色加深。给人一种克制、高级、温柔的冷淡风。适合深夜写代码,绝对不刺眼。

image

"$schema" = 'https://starship.rs/config-schema.json'

# 采用严丝合缝的单行强制排版
format = '[](#D8BFD8)$os$username[](fg:#D8BFD8 bg:#EAE0CC)$directory[](fg:#EAE0CC bg:#CCD5AE)$git_branch$git_status[](fg:#CCD5AE bg:#BDE0FE)$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$docker_context[](fg:#BDE0FE bg:#FCD5CE)$time[](fg:#FCD5CE)'

[username]
show_always = true
style_user = "bg:#D8BFD8 fg:#2F2F2F"
style_root = "bg:#D8BFD8 fg:#2F2F2F"
format = '[ $user ]($style)'
disabled = false

[directory]
style = "bg:#EAE0CC fg:#2F2F2F"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"

[git_branch]
symbol = " "
style = "bg:#CCD5AE fg:#2F2F2F"
format = '[ $symbol$branch ]($style)'

[git_status]
style = "bg:#CCD5AE fg:#2F2F2F"
format = '[$all_status$ahead_behind ]($style)'

[c]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[cpp]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[docker_context]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[  $context ]($style)'

[golang]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[java]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[nodejs]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[rust]
style = "bg:#BDE0FE fg:#2F2F2F"
format = '[ $symbol($version) ]($style)'

[time]
disabled = false
time_format = "%R" 
style = "bg:#FCD5CE fg:#2F2F2F"
format = '[ 󱑂 $time ]($style)'

🧱 示例 3:垂直段堆叠布局

春日阶梯瀑布版,给每一行加入了递进的缩进控制。换上了高明度、高饱和的初春马卡龙色(鲜亮紫、水蜜桃、新叶绿、晴空蓝、亮樱粉)。

风格特点: 打破常规的单行长条,利用 $line_break 将信息分层显示。第一层显示身份和路径,第二层显示 Git 状态,第三层显示时间,第四层留给光标输入。非常适合屏幕较窄(比如分屏或者用笔记本)的场景。

image

"$schema" = 'https://starship.rs/config-schema.json'

# 全局排版:恢复换行符,并保证空模块自动折叠
format = """
[](#E6E6FA)$username[](bg:#FFDAB9 fg:#E6E6FA)$directory[](fg:#FFDAB9)\
$line_break\
$git_branch$git_status\
$line_break\
$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$docker_context\
$line_break\
$time\
$line_break\
$character"""

[username]
show_always = true
style_user = "bg:#E6E6FA fg:#2F2F2F" # 亮薰衣草
style_root = "bg:#E6E6FA fg:#2F2F2F"
format = '[ $user ]($style)'
disabled = false

[directory]
style = "bg:#FFDAB9 fg:#2F2F2F" # 亮水蜜桃
format = "[  $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"

[git_branch]
symbol = "🌱 "
style = "bg:#98FB98 fg:#2F2F2F" # 高明度新叶绿
# 阶梯 1:向右缩进 2 个空格
format = '  [](#98FB98)[ $symbol$branch ]($style)'

[git_status]
style = "bg:#98FB98 fg:#2F2F2F"
format = '[$all_status$ahead_behind ]($style)[](fg:#98FB98)'

[c]
symbol = "⚙️ "
style = "bg:#87CEFA fg:#2F2F2F" # 晴空蓝
# 阶梯 2:向右缩进 4 个空格
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[cpp]
symbol = "🛠️ "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[golang]
symbol = "🐹 "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[java]
symbol = "☕ "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[nodejs]
symbol = "📦 "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[rust]
symbol = "🦀 "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol($version) ]($style)[](fg:#87CEFA)'

[docker_context]
symbol = "🐳 "
style = "bg:#87CEFA fg:#2F2F2F"
format = '    [](#87CEFA)[ $symbol$context ]($style)[](fg:#87CEFA)'

[time]
disabled = false
time_format = "%R" 
style = "bg:#FFB6C1 fg:#2F2F2F" # 亮樱花粉
# 阶梯 3:向右缩进 6 个空格
format = '      [](#FFB6C1)[ ⏰ $time ]($style)[](fg:#FFB6C1)'

[character]
# 阶梯 4:输入光标向右缩进 8 个空格!
success_symbol = "        [❯](bold #98FB98)"
error_symbol = "        [✗](bold #FFB6C1)"

🔵 示例 4:简约多普勒

风格特点: 极致的断舍离!摒弃了花哨的彩虹条,只保留一个沉稳的“深海蓝”色块,把路径和 Git 状态统统塞进去。最酷的是末尾的输入箭头,会呈现出从绿到黄到红的多重多普勒褪色效果。真正的黑客极简风。

image

"$schema" = 'https://starship.rs/config-schema.json'

# 极致极简:单色明亮胶囊 + 春日渐变多普勒箭头
format = '[](#FFC1E3)$directory$git_branch$git_status[](fg:#FFC1E3)$character'

[directory]
style = "bg:#FFC1E3 fg:#2F2F2F" # 亮眼樱花粉
format = "[ 📂 $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"

[git_branch]
symbol = "🌱 "
style = "bg:#FFC1E3 fg:#2F2F2F"
format = '[ | $symbol$branch ]($style)'

[git_status]
style = "bg:#FFC1E3 fg:#2F2F2F"
format = '[$all_status$ahead_behind ]($style)'

# 极简的灵魂就是断舍离,禁用所有不必要的花哨模块
[username]
disabled = true
[time]
disabled = true
[c]
disabled = true
[golang]
disabled = true
[java]
disabled = true
[nodejs]
disabled = true
[rust]
disabled = true
[docker_context]
disabled = true

# 视觉焦点:输入光标处的春日多普勒褪色效果
[character]
# 成功时:粉色 ➔ 水蜜桃 ➔ 新叶绿 的活力渐变
success_symbol = " [❯](bold #FFC1E3)[❯](bold #FFDAB9)[❯](bold #98FB98)"
# 报错时:醒目的西瓜红
error_symbol = " [✗](bold #FF6B6B)[❯](bold #FF6B6B)[❯](bold #FF6B6B)"

如何保存配置文件:

  1. 打开你的终端(PowerShell)。

  2. 运行以下命令,使用记事本打开配置文件(如果文件不存在,它会创建一个新的空文件):

    notepad $env:USERPROFILE\.config\starship.toml
    
  3. 全选、清空 记事本中已有的内容(如果文件不为空)。

  4. 将上面提供的完整的“彩虹版本”TOML 代码块一字不差地复制粘贴进去。

  5. 在记事本中,按 Ctrl + S 保存文件,然后关闭记事本。


第四步:使配置生效

现在,配置已经保存了,但当前的终端窗口可能还没有应用它。

运行以下命令,或者重新打开一个终端窗口,见证你的彩虹终端诞生!

使用 PowerShell:

. $PROFILE

当你看到带有圆角箭头、图标和鲜艳颜色过渡的终端提示符时,恭喜你,你已经从零到一构建了你的彩虹终端!


第五步:自定义 (可选)

虽然这个教程提供了预先配置好的彩虹效果,但 Starship 的强大之处在于其无限的自定义能力。你以后可以根据自己的审美和需求,进一步调整你的终端:

  • 修改颜色:你可以编辑 starship.toml 文件,通过鼠标悬停在 VS Code 调色盘上或直接修改十六进制颜色代码(如 "#CEBCFD")来自定义每个模块的背景和前景颜色。

  • 更换图标:你可以将 Emoji 表情(如 🦀)替换为你喜欢的 Nerd Font 极客图标代码(如 󱑂、、)。注意:如果图标显示为乱码或方块,请确保你已经安装并正确配置了 Nerd Font 字体。

  • 启用/禁用模块:你可以在 starship.toml 文件中,为每个模块(如 [username]、[time])添加 disabled = true 或 disabled = false 来启用或禁用它。

  • 探索更多预设:Starship 官网有许多 Presets (预设主题),你可以浏览并尝试不同的风格,比如“Pastel Powerline”、“Gruvbox Rainbow”等。

运行以下命令,可以在你的编辑器中打开配置文件进行修改:

code $env:USERPROFILE\.config\starship.toml

(此命令前提是你已经安装了 VS Code 并且将 code 添加到了环境变量中。如果你想使用其他编辑器,请自行替换 code)

🥚 隐藏彩蛋:召唤全彩神龙 (预览所有颜色)

由于 Starship 极其聪明,它采用了上下文感知 (Context-Aware) 技术。这意味着,如果你当前所在的文件夹里没有 Java 代码,它是不会显示咖啡杯图标和对应颜色的;没有 Rust 代码,就不会显示小螃蟹。它会自动隐藏不需要的信息,保持终端极简。

如果你想一次性检阅你配置的所有颜色过渡(召唤出完整的春日彩虹条),你可以通过创建一个包含所有触发文件的“假文件夹”来“骗”出所有图标。

操作步骤:

  1. 创建一个测试文件夹并进入:

    mkdir test_colors; cd test_colors
    
  2. 施展“障眼法”,瞬间创建触发文件:

    (这行命令会同时创建 Node.js, C语言, Go语言, Rust, Java 和 Docker 的触发文件)

    New-Item package.json, main.c, main.go, main.rs, main.java, Dockerfile -ItemType File
    
  3. 见证奇迹:

    敲下回车后,你会看到终端瞬间点亮了所有的模块,展示出一条从紫到黄、绿、蓝,最后以粉色收尾的超长完美彩虹条!

  4. 清理战场(看完记得打扫):

    欣赏完毕后,为了保持电脑整洁,请务必运行以下命令把这个假文件夹删掉:

    cd ..; rm -r -Force test_colors