Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Cách Thiết Lập Cấu Hình Zsh Hiệu Suất Cao

中村 拓也

中村 拓也

Updated on tháng 3 28, 2025

Zsh (Z Shell) đã trở nên ngày càng phổ biến trong cộng đồng lập trình viên nhờ vào các tính năng mạnh mẽ và khả năng tùy biến rộng rãi. Hướng dẫn này sẽ hướng dẫn bạn cách thiết lập một cấu hình Zsh nhanh chóng, hiệu quả và đầy đủ tính năng mà tránh được các cạm bẫy hiệu suất thường gặp.

💡
Trong khi tối ưu hóa trải nghiệm terminal của bạn, cũng đáng để cải thiện quy trình phát triển API của bạn. Nếu bạn là một lập trình viên đang làm việc với APIs, tôi rất khuyến nghị bạn nên xem xét Apidog như một sự thay thế tuyệt vời cho Postman.

Apidog kết hợp tài liệu API, gỡ lỗi và kiểm thử tự động trong một nền tảng duy nhất với giao diện trực quan hơn và các tính năng hợp tác nhóm tốt hơn.

Chức năng nhập khẩu giúp việc chuyển đổi từ Postman trở nên dễ dàng, và nhiều lập trình viên báo cáo quy trình làm việc nhanh hơn với các máy chủ mô phỏng và quản lý môi trường của nó. Phiên bản miễn phí rất hào phóng, cho phép các lập trình viên cá nhân và các nhóm nhỏ tiếp cận dễ dàng.

Hãy thử Apidog cùng với cấu hình Zsh mới của bạn để có một môi trường phát triển hoàn toàn mới mẻ!
button

Tại sao cấu hình này tốt hơn

Cách tiếp cận mà tôi sẽ phác thảo cung cấp một số lợi thế so với các cấu hình truyền thống:

  • Thời gian khởi động nhanh hơn đáng kể (0.03-0.07s so với 0.5-1.0s với Oh My Zsh cơ bản)
  • Quản lý plugin hiện đại với các đặc điểm hiệu suất tốt hơn
  • Tải lười các thành phần tiêu tốn tài nguyên
  • Cấu trúc cấu hình sạch hơn dễ duy trì hơn

Tùy chọn cài đặt

Bạn có một số lựa chọn cho khung Zsh của mình, mỗi cái có những đánh đổi khác nhau:

Tùy chọn 1: Zinit + Powerlevel10k (Nâng cao, Hiệu suất tốt nhất)

Zinit là một trình quản lý plugin mạnh mẽ cho phép tải không đồng bộ và cung cấp hiệu suất xuất sắc.

  1. Cài đặt Zsh trước:
# Đối với Ubuntu/Debian
sudo apt install zsh

# Đối với macOS với Homebrew
brew install zsh

# Đối với Fedora
sudo dnf install zsh

2. Đặt Zsh làm shell mặc định của bạn:

chsh -s $(which zsh)

3. Cài đặt Zinit:

bash -c "$(curl --fail --show-error --silent --location <https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh>)"

4. Tạo cấu hình .zshrc của bạn:

# Bật prompt ngay lập tức của Powerlevel10k (làm cho shell xuất hiện ngay lập tức)
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Tải Zinit
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"

# Tải chủ đề Powerlevel10k
zinit ice depth=1
zinit light romkatv/powerlevel10k

# Chức năng zsh cốt lõi (lịch sử, hoàn thành)
zinit snippet OMZL::history.zsh
zinit snippet OMZL::completion.zsh
zinit snippet OMZL::key-bindings.zsh

# Các plugin thiết yếu với tải không đồng bộ (chế độ turbo)
zinit wait lucid for \\\\
  atinit"zicompinit; zicdreplay" \\\\
    zdharma-continuum/fast-syntax-highlighting \\\\
  atload"_zsh_autosuggest_start" \\\\
    zsh-users/zsh-autosuggestions \\\\
  zdharma-continuum/history-search-multi-word

# Plugin Git từ Oh My Zsh - được tải khi vào một kho git
zinit ice wait lucid
zinit snippet OMZP::git

# Tải trình quản lý phiên bản Node chỉ khi cần
export NVM_LAZY_LOAD=true
export NVM_COMPLETION=true
zinit ice wait lucid
zinit light lukechilds/zsh-nvm

# Thư mục khởi động
cd ~/repos

# Nguồn các bí danh từ một tệp riêng để tổ chức tốt hơn
[[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases

# Cấu hình Powerlevel10k
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
POWERLEVEL9K_MODE='awesome-fontconfig'
POWERLEVEL9K_BATTERY_SHOW=false  # Tắt trạng thái pin
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time background_jobs)

# Khởi tạo Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

5. Cấu hình Powerlevel10k:

Sau khi khởi động lại terminal của bạn, trình hướng dẫn cấu hình của Powerlevel10k sẽ tự động bắt đầu. Làm theo các hướng dẫn để tùy chỉnh hình thức của prompt của bạn.

Nếu bạn cần cấu hình lại sau này, hãy chạy:

p10k configure

Tùy chọn 2: Zim (Đơn giản hơn, vẫn nhanh)

Zim là một khung Zsh dễ sử dụng hơn nhưng vẫn rất nhanh, mang lại sự cân bằng tốt giữa các tính năng và hiệu suất.

  1. Cài đặt Zsh (giống như trên)
  2. Cài đặt Zim:
curl -fsSL <https://raw.githubusercontent.com/zimfw/install/master/install.zsh> | zsh

  1. Chỉnh sửa tệp .zimrc của bạn để thêm các module:
# Cốt lõi
zmodule environment
zmodule git
zmodule input
zmodule termtitle
zmodule utility

# Prompt
zmodule romkatv/powerlevel10k

# Hoàn thành
zmodule zsh-users/zsh-completions
zmodule completion

# Các module cần được khởi tạo cuối cùng
zmodule romkatv/zsh-defer  # Để tải không đồng bộ
zmodule zsh-users/zsh-syntax-highlighting
zmodule zsh-users/zsh-autosuggestions
zmodule zsh-users/zsh-history-substring-search

  1. Tạo tệp .zshrc của bạn:
# Bật prompt ngay lập tức của Powerlevel10k
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Khởi tạo zsh-defer cho tải không đồng bộ
source ${ZIM_HOME}/modules/zsh-defer/zsh-defer.plugin.zsh

# Bắt đầu ZIM
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
  # Cập nhật kịch bản khởi tạo tĩnh nếu nó không tồn tại hoặc đã lỗi thời
  zsh-defer source ${ZIM_HOME}/zimfw.zsh init -q
fi
source ${ZIM_HOME}/init.zsh

# Tùy chỉnh các phím tắt
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down

# Tải lười các trình quản lý phiên bản Node
if command -v fnm &> /dev/null; then
  zsh-defer eval "$(fnm env --use-on-cd)"  # Sử dụng fnm (tùy chọn nhanh hơn nvm)
elif command -v nvm &> /dev/null; then
  zsh-defer source $(brew --prefix nvm)/nvm.sh  # Chỉ nạp nvm khi cần
fi

# Thư mục khởi động
cd ~/repos

# Nguồn các bí danh
[[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases

# Tải cấu hình powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

Tạo một tệp bí danh tốt hơn

Thay vì nhúng tất cả các bí danh trực tiếp trong .zshrc, hãy tạo một tệp riêng .zsh_aliases để tổ chức tốt hơn:

# Tạo tệp .zsh_aliases
touch ~/.zsh_aliases

Dưới đây là phiên bản cải tiến của các bí danh với tổ chức tốt hơn:

# Các thao tác tệp
alias rmrf='rm -rf'
alias ls='ls -lart --color=auto'

# Điều hướng thư mục
alias r='cd ~/repos'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# Môi trường phát triển
alias c='code .'
alias s='cursor .'
alias e='exit'

# Các thao tác Git
alias g='git'
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gagc='git add . && git commit -m'
alias gp='git fetch -p'
alias gcom='git checkout main'
alias gcol='git checkout -'
alias gb='git checkout -b'
alias gbl='git branch -a'
alias grv='git remote -v'
alias grb='npx git-removed-branches'
alias gcl='git clone'
alias gbr='git browse'
alias pp='git pull --rebase && git push'

# Quản lý gói - npm
alias ni='npm i'
alias nid='npm i -D'
alias nig='npm i -g'
alias nr='npm run'
alias nrb='npm run build'
alias nrd='npm run dev'
alias nrs='npm run start'
alias nlg='npm list -g --depth=0'

# Quản lý gói - yarn
alias ya='yarn add'
alias yad='yarn add -D'
alias yb='yarn build'
alias yd='yarn dev'
alias ys='yarn start'
alias yyb='yarn && yarn build'
alias yyd='yarn && yarn dev'
alias ylg='yarn global list'

# Quản lý gói - pnpm
alias pi='pnpm i'
alias pid='pnpm i -D'
alias prb='pnpm run build'
alias prd='pnpm run dev'
alias prs='pnpm run start'
alias plg='pnpm list -g --depth=0'
alias pc='pnpm create'

# Công cụ phát triển
alias kill='npx kill-port'
alias di='echo dotenv > .envrc && touch .env && direnv allow'
alias tdl="tree -a -I 'node_modules|.svelte-kit|.git' --dirsfirst"

Mẹo Tối ưu hóa Hiệu suất

  1. Sử dụng tải lười cho các thành phần nặng
  • Các trình quản lý phiên bản Node (nvm, fnm) là nguyên nhân chính gây chậm
  • Sử dụng zsh-defer hoặc chế độ turbo của Zinit để tải chúng không đồng bộ
  1. Cache đầu ra eval với evalcache
  • Cài đặt: zinit light mroth/evalcache
  • Thay thế eval "$(command)" bằng _evalcache command
  1. Xem xét fnm thay vì nvm
  • fnm là một lựa chọn dựa trên Rust nhanh hơn rất nhiều
  • Cài đặt: brew install fnm hoặc curl -fsSL <https://fnm.vercel.app/install> | bash
  1. Giảm thiểu plugin
  • Chỉ sử dụng các plugin mà bạn thực sự cần
  • Chọn các plugin hiện đại, tối ưu (như fast-syntax-highlighting hơn zsh-syntax-highlighting)
  1. Sử dụng prompt ngay lập tức của Powerlevel10k
  • Làm cho shell của bạn xuất hiện ngay lập tức trong khi tải tiếp tục ở nền
  1. Chia cấu hình thành nhiều tệp
  • Giữ cho .zshrc sạch và modular
  • Sử dụng các tệp riêng cho bí danh, hàm và biến môi trường

Đo lường Hiệu suất Shell của Bạn

Thêm chức năng này vào .zshrc của bạn để kiểm tra thời gian khởi động của shell:

function timezsh() {
  shell=${1-$SHELL}
  for i in $(seq 1 10); do
    /usr/bin/time $shell -i -c exit
  done
}

Rồi chạy timezsh để xem thời gian khởi động trung bình của bạn.

Kết luận

Bằng cách sử dụng các công cụ hiện đại như Zinit hoặc Zim, thực hiện tải lười và tổ chức cấu hình của bạn một cách đúng cách, trải nghiệm Zsh của bạn sẽ nhanh hơn đáng kể và dễ sử dụng hơn. Các phương pháp được phác thảo ở đây đại diện cho các thực tiễn tốt nhất hiện tại, cân bằng chức năng với hiệu suất.

Hãy nhớ rằng cấu hình shell là vấn đề rất cá nhân - hãy thoải mái thử nghiệm với những gợi ý này và điều chỉnh chúng theo quy trình làm việc và sở thích cụ thể của bạn.

💡
Trong khi tối ưu hóa trải nghiệm terminal của bạn, cũng đáng để cải thiện quy trình phát triển API của bạn. Nếu bạn là một lập trình viên đang làm việc với APIs, tôi rất khuyến nghị bạn nên xem xét Apidog như một sự thay thế tuyệt vời cho Postman.

Apidog kết hợp tài liệu API, gỡ lỗi và kiểm thử tự động trong một nền tảng duy nhất với giao diện trực quan hơn và các tính năng hợp tác nhóm tốt hơn.

Chức năng nhập khẩu giúp việc chuyển đổi từ Postman trở nên dễ dàng, và nhiều lập trình viên báo cáo quy trình làm việc nhanh hơn với các máy chủ mô phỏng và quản lý môi trường của nó. Phiên bản miễn phí rất hào phóng, cho phép các lập trình viên cá nhân và các nhóm nhỏ tiếp cận dễ dàng.

Hãy thử Apidog cùng với cấu hình Zsh mới của bạn để có một môi trường phát triển hoàn toàn mới mẻ!
button