Find yourself,Be yourself
Starship 是一款基于 Rust 的终端提示符工具,可以自定义终端提示符的样式,提供了丰富的自定义选项,其中很多图标的显示需要依赖 Nerd Fonts。
Nerd Fonts 是包含了Nerd图标的字体的统称,Starship 和其他终端个性化工具都依赖它们来实现图标的终端显示。
对于小白而言,安装 Nerd Fonts 可能会比较困难,因为字体很多,安装步骤繁琐。这里提供一个简单的方法:
最直接的方法是直接去 Nerd Fonts 的 GitHub 仓库,下载你需要的字体,然后安装即可。但是这种方法非常繁琐,因为同一种字体的不同变体(如 Regular、Bold、Italic 等)都需要安装,步骤繁琐。
这里提供两种方法。第一种是使用 Scoop 安装,第二种是 PowerShell 模块。
确保电脑安装了 Scoop。如果在 PowerShell 中输入 scoop 提示未找到,则需要安装 Scoop。
在 PowerShell 中输入以下命令:
1Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
2Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
然后,添加 Nerd Fonts 仓库
1scoop bucket add nerd-fonts
然后,安装 Nerd Fonts
1scoop install FiraCode-NF
这里可以将 FiraCode-NF 替换成你需要的字体。
以下是一些推荐的Nerd Fonts字体对应的编号:
| 字体名称 | 字体编号 | 推荐指数 |
|---|---|---|
| MesloLGS NF | Meslo-NF | ⭐⭐⭐⭐ |
| JetBrainsMono Nerd Font | JetBrainsMono-NF | ⭐⭐⭐⭐ |
| FiraCode Nerd Font | FiraCode-NF | ⭐⭐⭐⭐⭐ |
| CaskaydiaCove Nerd Font | CaskaydiaCove-NF | ⭐⭐⭐⭐ |
| CascadiaCode Nerd Font | CascadiaCode-NF | ⭐⭐⭐⭐⭐ |
| Hack Nerd Font | Hack-NF | ⭐⭐⭐⭐⭐ |
在 PowerShell 中输入以下命令:
1Install-PSResource -Name NerdFonts
2Import-Module -Name NerdFonts
然后,安装 Nerd Fonts
1Install-NerdFont -Name FiraCode # 这种方法支持 Tab 自动补全
如果想给所有用户安装,则需要提升权限。在 PowerShell 中输入以下命令:
1Install-NerdFont -Name FiraCode -Scope AllUsers
以上两行命令中的 FiraCode 都可以替换成你需要的字体。
以下是一些推荐的Nerd Fonts字体对应的编号:
| 字体名称 | 字体编号 | 推荐指数 |
|---|---|---|
| MesloLGS NF | Meslo | ⭐⭐⭐⭐ |
| JetBrainsMono Nerd Font | JetBrainsMono | ⭐⭐⭐⭐ |
| FiraCode Nerd Font | FiraCode | ⭐⭐⭐⭐⭐ |
| CaskaydiaCove Nerd Font | CaskaydiaCove | ⭐⭐⭐⭐ |
| CascadiaCode Nerd Font | CascadiaCode | ⭐⭐⭐⭐⭐ |
| Hack Nerd Font | Hack | ⭐⭐⭐⭐⭐ |
在 Windows Terminal 中,可以通过以下方式配置终端字体:
PWSH,则改为 PWSH在 VS Code 中,可以通过以下方式配置终端字体:

Fira Code 支持连字。例如 != 会显示为 ≠。但是 VS Code 默认不支持连字,需要开启。
fontLigaturesFont Ligatures:Enabled

在终端输入 code ~/.config/starship.toml 即可打开startship配置文件。以下是我的配置文件:
1# ~/.config/starship.toml
2
3# 使用自定义格式
4# 颜色方案:Nord (稳重风格) + Official Icon Colors
5# 变量化颜色配置
6
7# 使用 format string 引用 palette 中的颜色名称
8format = """
9[](mauve)\
10$os\
11$username\
12[](bg:red fg:mauve)\
13$directory\
14[](fg:red bg:peach)\
15$git_branch\
16$git_status\
17[](fg:peach bg:blue)\
18$c\
19$elixir\
20$elm\
21$golang\
22$gradle\
23$haskell\
24$java\
25$julia\
26$nodejs\
27$nim\
28$rust\
29$scala\
30$php\
31$python\
32$ruby\
33$swift\
34$zig\
35$buf\
36$bun\
37$cmake\
38$cobol\
39$crystal\
40$daml\
41$dart\
42$deno\
43$dotnet\
44$erlang\
45$fennel\
46$guix_shell\
47$haxe\
48$helm\
49$kotlin\
50$lua\
51$meson\
52$nix_shell\
53$ocaml\
54$opa\
55$perl\
56$purescript\
57$raku\
58$red\
59$solidity\
60$spack\
61$vlang\
62[](fg:blue bg:teal)\
63$docker_context\
64$conda\
65$package\
66$aws\
67$gcloud\
68$openstack\
69$azure\
70$kubernetes\
71$terraform\
72$pulumi\
73$vagrant\
74[](fg:teal bg:surface1)\
75$time\
76$cmd_duration\
77[](fg:surface1)
78$character\
79"""
80
81# Disable the blank line at the start of the prompt
82add_newline = false
83
84# Set active palette
85palette = "nord_steady"
86
87# Official Brand Colors Palette (Standard Hex Codes)
88[palettes.nord_steady]
89# Core Styles (Nord)
90mauve = "#5E81AC" # nord10 (Frost Blue - Darkest) - OS
91red = "#81A1C1" # nord9 (Frost Blue - Medium) - Directory
92peach = "#EBCB8B" # nord13 (Aurora Yellow) - Git
93blue = "#88C0D0" # nord8 (Frost Cyan) - Lang Bg
94teal = "#8FBCBB" # nord7 (Frost Mint) - Tools Bg
95surface1 = "#434C5E" # nord2 (Polar Night - Dark Grey) - Time Bg
96text = "#D8DEE9" # nord4 (Snow Storm) - Light Text
97crust = "#2E3440" # nord0 (Polar Night - Darkest) - Dark Text/Bg
98green = "#A3BE8C" # nord14 (Aurora Green)
99purple = "#B48EAD" # nord15 (Aurora Purple)
100maroon = "#BF616A" # nord11 (Aurora Red)
101
102# Official Brand Colors (Icons)
103c_blue = "#00599C" # C/C++ (Generic) or "#555555"
104elixir_purple = "#4e2a8e"
105elm_green = "#60B5CC"
106golang_blue = "#00ADD8"
107gradle_green = "#02303A"
108haskell_purple = "#5e5086"
109java_red = "#b07219"
110julia_purple = "#9558B2"
111nodejs_green = "#339933" # Node.js Official Green
112nim_yellow = "#FFE953"
113rust_orange = "#DEA584" # Rust (Light Orange)
114scala_red = "#DC322F"
115php_purple = "#777BB4"
116python_yellow = "#3776AB" # Python Blue/Yellow
117ruby_red = "#CC342D"
118swift_orange = "#F05138"
119zig_orange = "#ECA700"
120dart_blue = "#0175C2"
121deno_white = "#FFFFFF" # Deno is black/white logo
122dotnet_purple = "#512BD4"
123kotlin_purple = "#7F52FF"
124lua_blue = "#2C2D72"
125perl_blue = "#0073a1"
126docker_blue = "#2496ED"
127aws_orange = "#FF9900"
128azure_blue = "#007FFF"
129gcloud_blue = "#4285F4"
130kube_blue = "#326CE5"
131terraform_purple = "#623CE4"
132conda_green = "#348721"
133
134# User & OS Styles
135[username]
136show_always = true
137style_user = "bg:mauve fg:text"
138style_root = "bg:mauve fg:text"
139format = '[$user ]($style)'
140disabled = false
141
142[os]
143style = "bg:mauve fg:text"
144disabled = false
145format = '[$symbol ]($style)'
146
147[os.symbols]
148Windows = ""
149Ubuntu = ""
150SUSE = ""
151Raspbian = ""
152Mint = ""
153Macos = ""
154Manjaro = ""
155Linux = ""
156Gentoo = "u"
157Fedora = ""
158Alpine = ""
159Amazon = ""
160Android = ""
161Arch = ""
162Artix = ""
163EndeavourOS = ""
164CentOS = ""
165Debian = ""
166Redhat = ""
167RedHatEnterprise = ""
168Pop = ""
169
170# Directory Style
171[directory]
172style = "bg:red fg:crust"
173format = "[ $path ]($style)"
174truncation_length = 3
175truncation_symbol = "…/"
176
177[directory.substitutions]
178"Documents" = " "
179"Downloads" = " "
180"Music" = " "
181"Pictures" = " "
182
183# Git Stylef
184[git_branch]
185symbol = ""
186style = "bg:peach fg:crust"
187format = '[ $symbol $branch ]($style)'
188
189[git_status]
190style = "bg:peach fg:crust"
191format = '[$all_status$ahead_behind ]($style)'
192
193# Language Block Style (Official Icon Colors)
194[c]
195symbol = " "
196style = "bg:blue fg:crust"
197format = '[ $symbol]($style fg:c_blue)[(via $name $version) ]($style)'
198
199[elixir]
200symbol = " "
201style = "bg:blue fg:crust"
202format = '[ $symbol]($style fg:elixir_purple)[($version) ]($style)'
203
204[elm]
205symbol = " "
206style = "bg:blue fg:crust"
207format = '[ $symbol]($style fg:elm_green)[($version) ]($style)'
208
209[golang]
210symbol = " "
211style = "bg:blue fg:crust"
212format = '[ $symbol]($style fg:golang_blue)[($version) ]($style)'
213
214[gradle]
215style = "bg:blue fg:crust"
216format = '[ $symbol]($style fg:gradle_green)[($version) ]($style)'
217
218[haskell]
219symbol = " "
220style = "bg:blue fg:crust"
221format = '[ $symbol]($style fg:haskell_purple)[($version) ]($style)'
222
223[java]
224symbol = " "
225style = "bg:blue fg:crust"
226format = '[ $symbol]($style fg:java_red)[($version) ]($style)'
227
228[julia]
229symbol = " "
230style = "bg:blue fg:crust"
231format = '[ $symbol]($style fg:julia_purple)[($version) ]($style)'
232
233[nodejs]
234#symbol = " "
235style = "bg:blue fg:crust"
236format = '[ $symbol]($style fg:nodejs_green)[($version) ]($style)'
237
238[nim]
239symbol = " "
240style = "bg:blue fg:crust"
241format = '[ $symbol]($style fg:nim_yellow)[($version) ]($style)'
242
243[rust]
244symbol = " "
245style = "bg:blue fg:crust"
246format = '[ $symbol]($style fg:rust_orange)[($version) ]($style)'
247
248[scala]
249symbol = " "
250style = "bg:blue fg:crust"
251format = '[ $symbol]($style fg:scala_red)[($version) ]($style)'
252
253[php]
254symbol = " "
255style = "bg:blue fg:crust"
256format = '[ $symbol]($style fg:php_purple)[($version) ]($style)'
257
258[python]
259symbol = " "
260style = "bg:blue fg:crust"
261format = '[ $symbol]($style fg:python_yellow)[${pyenv_prefix}(${version})(\($virtualenv\)) ]($style)'
262
263[ruby]
264symbol = " "
265style = "bg:blue fg:crust"
266format = '[ $symbol]($style fg:ruby_red)[($version) ]($style)'
267
268[swift]
269symbol = "ﯣ "
270style = "bg:blue fg:crust"
271format = '[ $symbol]($style fg:swift_orange)[($version) ]($style)'
272
273[zig]
274symbol = " "
275style = "bg:blue fg:crust"
276format = '[ $symbol]($style fg:zig_orange)[($version) ]($style)'
277
278[buf]
279symbol = " "
280style = "bg:blue fg:crust"
281format = '[ $symbol($version) ]($style)'
282
283[bun]
284symbol = "🦄 "
285style = "bg:blue fg:crust"
286format = '[ $symbol($version) ]($style)'
287
288[cmake]
289symbol = "△ "
290style = "bg:blue fg:crust"
291format = '[ $symbol($version) ]($style)'
292
293[cobol]
294symbol = "⚙️ "
295style = "bg:blue fg:crust"
296format = '[ $symbol($version) ]($style)'
297
298[crystal]
299symbol = "🔮 "
300style = "bg:blue fg:crust"
301format = '[ $symbol($version) ]($style)'
302
303[daml]
304symbol = "Λ "
305style = "bg:blue fg:crust"
306format = '[ $symbol($version) ]($style)'
307
308[dart]
309symbol = " "
310style = "bg:blue fg:crust"
311format = '[ $symbol]($style fg:dart_blue)[($version) ]($style)'
312
313[deno]
314symbol = "🦕 "
315style = "bg:blue fg:crust"
316format = '[ $symbol]($style fg:deno_white)[($version) ]($style)'
317
318[dotnet]
319symbol = " "
320style = "bg:blue fg:crust"
321format = '[ $symbol]($style fg:dotnet_purple)[($version)(🎯 $tfm) ]($style)'
322
323[erlang]
324symbol = " "
325style = "bg:blue fg:crust"
326format = '[ $symbol($version) ]($style)'
327
328[fennel]
329symbol = " "
330style = "bg:blue fg:crust"
331format = '[ $symbol($version) ]($style)'
332
333[guix_shell]
334symbol = " "
335style = "bg:blue fg:crust"
336format = '[ $symbol ]($style)'
337
338[haxe]
339symbol = " "
340style = "bg:blue fg:crust"
341format = '[ $symbol($version) ]($style)'
342
343[helm]
344symbol = "⎈ "
345style = "bg:blue fg:crust"
346format = '[ $symbol($version) ]($style)'
347
348[kotlin]
349symbol = " "
350style = "bg:blue fg:crust"
351format = '[ $symbol]($style fg:kotlin_purple)[($version) ]($style)'
352
353[lua]
354symbol = " "
355style = "bg:blue fg:crust"
356format = '[ $symbol]($style fg:lua_blue)[($version) ]($style)'
357
358[meson]
359style = "bg:blue fg:crust"
360format = '[ $symbol$project ]($style)'
361
362[nix_shell]
363symbol = " "
364style = "bg:blue fg:crust"
365format = '[ $symbol$state( \($name\)) ]($style)'
366
367[ocaml]
368symbol = "🐫 "
369style = "bg:blue fg:crust"
370format = '[ $symbol($version)(\($switch_indicator$switch_name\)) ]($style)'
371
372[opa]
373symbol = "⚖️ "
374style = "bg:blue fg:crust"
375format = '[ $symbol($version) ]($style)'
376
377[perl]
378symbol = " "
379style = "bg:blue fg:crust"
380format = '[ $symbol]($style fg:perl_blue)[($version) ]($style)'
381
382[purescript]
383symbol = "<=> "
384style = "bg:blue fg:crust"
385format = '[ $symbol($version) ]($style)'
386
387[raku]
388symbol = "🦋 "
389style = "bg:blue fg:crust"
390format = '[ $symbol($version-$vm_version) ]($style)'
391
392[red]
393symbol = "🔺 "
394style = "bg:blue fg:crust"
395format = '[ $symbol($version) ]($style)'
396
397[solidity]
398symbol = "Ξ "
399style = "bg:blue fg:crust"
400format = '[ $symbol($version) ]($style)'
401
402[spack]
403symbol = "🅢 "
404style = "bg:blue fg:crust"
405format = '[ $symbol$environment ]($style)'
406
407[vlang]
408symbol = "V "
409style = "bg:blue fg:crust"
410format = '[ $symbol($version) ]($style)'
411
412# Cloud & Tools Block Style (Teal)
413[docker_context]
414symbol = " "
415style = "bg:teal fg:crust"
416format = '[ $symbol]($style fg:docker_blue)[$context ]($style)'
417
418[conda]
419style = "bg:teal fg:crust"
420format = '[ $symbol](bg:teal fg:conda_green)[$environment ]($style)'
421ignore_base = false
422
423[package]
424symbol = " "
425style = "bg:teal fg:crust"
426format = '[ $symbol$version ]($style)'
427
428[aws]
429symbol = " "
430style = "bg:teal fg:crust"
431format = '[ $symbol]($style fg:aws_orange)[($profile)(\($region\)) ]($style)'
432
433[gcloud]
434symbol = " "
435style = "bg:teal fg:crust"
436format = '[ $symbol]($style fg:gcloud_blue)[$account(@$domain)(\($region\)) ]($style)'
437
438[openstack]
439symbol = "☁️ "
440style = "bg:teal fg:crust"
441format = '[ $symbol$cloud(\($project\)) ]($style)'
442
443[azure]
444style = "bg:teal fg:crust"
445format = '[ $symbol]($style fg:azure_blue)[($subscription) ]($style)'
446
447[kubernetes]
448symbol = "☸ "
449style = "bg:teal fg:crust"
450format = '[ $symbol]($style fg:kube_blue)[$context( \($namespace\)) ]($style)'
451
452[terraform]
453style = "bg:teal fg:crust"
454format = '[ $symbol]($style fg:terraform_purple)[$workspace ]($style)'
455
456[pulumi]
457symbol = " "
458style = "bg:teal fg:crust"
459format = '[ $symbol$stack ]($style)'
460
461[vagrant]
462symbol = " "
463style = "bg:teal fg:crust"
464format = '[ $symbol($version) ]($style)'
465
466# Time & Duration (Grey/Dark Blue)
467[time]
468disabled = false
469time_format = "%R"
470style = "bg:surface1 fg:text"
471format = '[ $time ]($style)'
472
473[cmd_duration]
474min_time = 500
475style = "bg:surface1 fg:text"
476format = '[ ⏱ $duration ]($style)'
477
478# Prompt Character (Nord Colors)
479[character]
480disabled = false
481success_symbol = '[➜](bold fg:green)' # Nord14 (Aurora Green)
482error_symbol = '[✗](bold fg:maroon)' # Nord11 (Aurora Red)
483vimcmd_symbol = '[](bold fg:green)'
484vimcmd_replace_one_symbol = '[](bold fg:purple)' # Nord15 (Purple)
485vimcmd_replace_symbol = '[](bold fg:purple)'
486vimcmd_visual_symbol = '[](bold fg:peach)' # Nord13 (Yellow)