كيفية إعداد تكوين Zsh عالي الأداء

@apidog

@apidog

20 يونيو 2025

كيفية إعداد تكوين Zsh عالي الأداء

ز ش (Z Shell) أصبحت شائعة بشكل متزايد بين المطورين نظرًا لميزاتها القوية وقدرات التخصيص الواسعة. ستساعدك هذه الدليل في إعداد تكوين ز ش سريع وفعال وغني بالميزات يتجنب الفخاخ الشائعة في الأداء.

💡
بينما تقوم بتحسين تجربتك في الطرفية، من الجدير أيضًا تحسين سير عمل تطوير API الخاص بك. إذا كنت مطورًا يعمل مع APIs، أوصي بشدة بزيارة Apidog كبديل ممتاز لـ Postman.

يجمع Apidog بين توثيق API، وتصحيح الأخطاء، والاختبار الآلي في منصة واحدة مع واجهة أكثر حداثة وميزات أفضل للتعاون بين الفرق.

تجعل وظيفة الاستيراد الانتقال من Postman سلسًا، ويبلغ العديد من المطورين عن سير عمل أسرع مع خوادم المحاكاة الخاصة به وإدارة البيئة. الطبقة المجانية سخية جدًا، مما يجعلها متاحة للمطورين الأفراد والفرق الصغيرة.

جرّب Apidog جنبًا إلى جنب مع تكوين ز ش الجديد الخاص بك للحصول على بيئة تطوير مُجددة تمامًا!
زر

لماذا يعتبر هذا التكوين أفضل

تقديمي الذي سأوضحه يقدم عدة مزايا على الإعدادات التقليدية:

خيارات التثبيت

لديك عدة خيارات لإطار عمل ز ش، كل منها مع تنازلات مختلفة:

الخيار 1: Zinit + Powerlevel10k (متقدم، أفضل أداء)

Zinit هو مدير مكونات إضافية قوي يتيح التحميل غير المتزامن ويعرض أداء استثنائي.

  1. قم بتثبيت ز ش أولاً:
# لمستخدمي Ubuntu/Debian
sudo apt install zsh

# لمستخدمي macOS مع Homebrew
brew install zsh

# لمستخدمي Fedora
sudo dnf install zsh

2. اجعل ز ش الشل الافتراضي لديك:

chsh -s $(which zsh)

3. قم بتثبيت Zinit:

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

4. أنشئ تكوينك .zshrc:

# تفعيل موجه 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

# تحميل Zinit
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"

# تحميل سمة Powerlevel10k
zinit ice depth=1
zinit light romkatv/powerlevel10k

# وظائف ز ش الأساسية (التاريخ، الإكمال)
zinit snippet OMZL::history.zsh
zinit snippet OMZL::completion.zsh
zinit snippet OMZL::key-bindings.zsh

# مكونات إضافية أساسية مع تحميل غير متزامن (وضع تسريع)
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

# مكون Git من Oh My Zsh -يتم تحميله عند دخول مستودع Git
zinit ice wait lucid
zinit snippet OMZP::git

# تحميل مدير إصدار Node فقط عند الحاجة
export NVM_LAZY_LOAD=true
export NVM_COMPLETION=true
zinit ice wait lucid
zinit light lukechilds/zsh-nvm

# الدليل الافتراضي
cd ~/repos

# مصدر الاختصارات من ملف منفصل لتنظيم أفضل
[[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases

# تكوين Powerlevel10k
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
POWERLEVEL9K_MODE='awesome-fontconfig'
POWERLEVEL9K_BATTERY_SHOW=false  # إيقاف عرض حالة البطارية
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time background_jobs)

# تهيئة Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

5. قم بتكوين Powerlevel10k:

بعد إعادة تشغيل الطرفية، سيبدأ معالج تكوين Powerlevel10k تلقائيًا. اتبع المطالبات لتخصيص مظهر الموجه لديك.

إذا كنت بحاجة إلى إعادة التهيئة لاحقًا، نفّذ:

p10k configure

الخيار 2: Zim (أبسط، لا يزال سريعًا)

Zim هو إطار Z ش أكثر سهولة في الاستخدام ولكنه لا يزال سريعًا جدًا ويقدم توازنًا رائعًا بين الميزات والأداء.

  1. قم بتثبيت ز ش (نفس الخطوات المذكورة أعلاه)
  2. قم بتثبيت Zim:
curl -fsSL <https://raw.githubusercontent.com/zimfw/install/master/install.zsh> | zsh

  1. حرر ملفك .zimrc لإضافة الوحدات:

# الأساسية zmodule environment zmodule git zmodule input zmodule termtitle zmodule utility # المطلب zmodule romkatv/powerlevel10k # الإكمال zmodule zsh-users/zsh-completions zmodule completion # الوحدات التي يجب تهيئتها في النهاية zmodule romkatv/zsh-defer  # لتحميل غير متزامن zmodule zsh-users/zsh-syntax-highlighting zmodule zsh-users/zsh-autosuggestions zmodule zsh-users/zsh-history-substring-search

  1. أنشئ ملفك .zshrc:

# تمكين موجه 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 # تهيئة zsh-defer للتحميل غير المتزامن source ${ZIM_HOME}/modules/zsh-defer/zsh-defer.plugin.zsh # بدء ZIM if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then # تحديث البرنامج الثابت الثابت إذا لم يكن موجودًا أو كان قديماً zsh-defer source ${ZIM_HOME}/zimfw.zsh init -q fi source ${ZIM_HOME}/init.zsh # تخصيص اختصارات المفاتيح bindkey '^[[A' history-substring-search-up bindkey '^[[B' history-substring-search-down # تحميل مدراء إصدارات Node بشكل كسول if command -v fnm &> /dev/null; then zsh-defer eval "$(fnm env --use-on-cd)"  # استخدام fnm (بديل أسرع لـ nvm) elif command -v nvm &> /dev/null; then zsh-defer source $(brew --prefix nvm)/nvm.sh  # تحميل nvm فقط عند الحاجة fi # الدليل الافتراضي cd ~/repos # مصدر الاختصارات [[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases # تحميل تكوين powerlevel10k [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

إنشاء ملف اختصارات أفضل

بدلاً من تضمين جميع الاختصارات مباشرة في .zshrc، قم بإنشاء ملف منفصل .zsh_aliases لتنظيم أفضل:

# إنشاء ملف .zsh_aliases touch ~/.zsh_aliases

إليك إصدار محسن من الاختصارات مع تنظيم أفضل:

# عمليات الملفات alias rmrf='rm -rf' alias ls='ls -lart --color=auto' # تنقل المجلدات alias r='cd ~/repos' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' # بيئات التطوير alias c='code .' alias s='cursor .' alias e='exit' # عمليات 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' # إدارة الحزم - 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' # إدارة الحزم - 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' # إدارة الحزم - 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' # أدوات التطوير 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"

نصائح تحسين الأداء

  1. استخدم التحميل الكسول للمكونات الثقيلة
  1. قم بتخزين ناتج eval باستخدام evalcache
  1. فكر في استخدام fnm بدلاً من nvm
  1. قلل من عدد المكونات الإضافية
  1. استخدم موجه Powerlevel10k الفوري
  1. قم بتقسيم التكوين إلى ملفات متعددة

قياس أداء الشل الخاص بك

أضف هذه الدالة إلى .zshrc للتحقق من وقت بدء تشغيل الشل لديك:

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

ثم نفذ timezsh لرؤية متوسط وقت بدء التشغيل لديك.

الخاتمة

من خلال استخدام أدوات حديثة مثل Zinit أو Zim، وتنفيذ التحميل الكسول، وتنظيم تكوينك بشكل صحيح، ستكون تجربتك مع ز ش أسرع وأكثر متعة في الاستخدام. تمثل الأساليب المذكورة هنا أفضل الممارسات الحالية التي تحقق التوازن بين الوظائف والأداء.

تذكر أن تكوين الشل أمر شخصي للغاية - فلا تتردد في التجريب بهذه الاقتراحات وتكييفها مع سير العمل وتفضيلاتك الخاصة.

💡
بينما تقوم بتحسين تجربتك في الطرفية، من الجدير أيضًا تحسين سير عمل تطوير API الخاص بك. إذا كنت مطورًا يعمل مع APIs، أوصي بشدة بزيارة Apidog كبديل ممتاز لـ Postman.

يجمع Apidog بين توثيق API، وتصحيح الأخطاء، والاختبار الآلي في منصة واحدة مع واجهة أكثر حداثة وميزات أفضل للتعاون بين الفرق.

تجعل وظيفة الاستيراد الانتقال من Postman سلسًا، ويبلغ العديد من المطورين عن سير عمل أسرع مع خوادم المحاكاة الخاصة به وإدارة البيئة. الطبقة المجانية سخية جدًا، مما يجعلها متاحة للمطورين الأفراد والفرق الصغيرة.

جرّب Apidog جنبًا إلى جنب مع تكوين ز ش الجديد الخاص بك للحصول على بيئة تطوير مُجددة تمامًا!
زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات