跪拜 Guibai
← All articles
Frontend · Backend

A Windows Terminal Stack That Finally Matches macOS

By 非洲农业不发达 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

A sluggish or ugly terminal is a daily tax on developer productivity. This stack removes the friction that pushes many developers toward macOS or Linux, giving Windows a fast, icon-rich, bash-compatible shell without the filesystem penalties of WSL2.

Summary

A full terminal overhaul replaces the stock cmd.exe with Cmder as a Clink-powered kernel inside Windows Terminal's GPU-accelerated renderer. Starship supplies a fast, emoji-rich prompt, while zoxide, lsd, and Lua extensions add fuzzy directory jumping, file-type icons, and tilde expansion for the home directory. The result is a shell that looks and behaves like a modern Unix environment without leaving Windows.

VS Code integration is covered, along with detailed alias files that turn multi-word Git commands into two- or three-letter shortcuts. Hidden-file tab completion, case-insensitive matching, and history-based autosuggestions make the terminal feel responsive in ways the default console never did.

Every component is installable via winget, and the configuration files are provided in full so the whole stack can be reproduced. The font Maple Mono Normal NL NF CN handles both CJK characters and Nerd Font icons, eliminating the garbled glyphs that usually plague Windows terminals.

Takeaways
Windows Terminal provides the GPU-accelerated renderer; Cmder supplies the Clink-based bash-like shell underneath.
Starship, written in Rust, replaces the prompt with a fast, configurable display that includes Git status emoji and language symbols.
Maple Mono Normal NL NF CN is a CJK-friendly monospace font with embedded Nerd Font glyphs, fixing the garbled-character problem.
zoxide enables fuzzy directory jumping with a `z` command, mimicking autojump or z from zsh.
lsd replaces `ls` with file-type icons and colors, requiring a Nerd Font to display correctly.
Clink's Lua scripting layer supports tilde expansion, custom auto-completions, and integration with external tools like zoxide.
Alias definitions in `user_aliases.cmd` compress verbose Git and system commands into short mnemonics.
VS Code can use the same Cmder profile by pointing its integrated terminal settings to the init.bat script.
Hidden-file completion and case-insensitive matching are enabled through Clink flags and an `.inputrc` file.
All tools install via winget, and the full JSON, TOML, and Lua configs are provided for direct reuse.
Conclusions

WSL2 solves the Unix-tooling gap but introduces cross-filesystem I/O penalties; this approach keeps everything native to NTFS and avoids that trade-off.

Clink is the underappreciated engine here — its Lua hooks turn cmd.exe into a programmable shell that can rival zsh in extensibility.

The combination of a Nerd Font and lsd/zoxide/Starship is what closes the visual and interactive gap with macOS; without the font, the icon-heavy tools produce only boxes and question marks.

Many Windows developers accept a subpar terminal because they assume the only alternative is switching operating systems; a one-hour configuration session disproves that.

Rust has quietly become the implementation language for the best cross-platform CLI tools (Starship, zoxide, lsd), making them fast enough to feel native on any OS.

Concepts & terms
Cmder
A software bundle for Windows that combines the ConEmu terminal emulator, Clink (bash-style completion for cmd), and Git for Windows to provide a Unix-like command-line environment.
Clink
A readline library for Windows cmd.exe that adds bash-style line editing, persistent history, and Lua-based scripting for auto-completion and custom keybindings.
Starship
A cross-shell prompt written in Rust that displays contextual information like Git status, language versions, and error codes using configurable symbols and colors.
Nerd Font
A set of patched fonts that include a large collection of glyphs and icons commonly used in development tools, enabling terminal applications to display file-type icons and status symbols.
zoxide
A Rust-based `cd` replacement that remembers frequently visited directories and supports fuzzy matching for fast navigation with a `z` command.
lsd
A modern `ls` replacement written in Rust that displays file listings with colors and Nerd Font icons based on file type.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗