أمر cd أذكى يتعلم الأدلة الأكثر استخدامًا ويتيح لك الانتقال إليها بضغطات قليلة فقط. يستخدم خوارزمية “frecency” تجمع بين التكرار والحداثة للزيارات.
| المنصة | الأمر |
|---|
| macOS (Homebrew) | brew install zoxide |
| Ubuntu/Debian | sudo apt install zoxide |
| Arch Linux | sudo pacman -S zoxide |
| Fedora/RHEL | sudo dnf install zoxide |
| Windows (Winget) | winget install ajeetdsouza.zoxide |
| Windows (Scoop) | scoop install zoxide |
| Windows (Chocolatey) | choco install zoxide |
| Cargo (All platforms) | cargo install zoxide --locked |
| Conda | conda install -c conda-forge zoxide |
| Nix | nix-env -iA nixpkgs.zoxide |
| Install script | curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh |
أضف السطر المناسب إلى ملف تكوين الشِل الخاص بك:
| الشِل | ملف التكوين | الأمر المطلوب إضافته |
|---|
| Bash | ~/.bashrc | eval "$(zoxide init bash)" |
| Zsh | ~/.zshrc | eval "$(zoxide init zsh)" |
| Fish | ~/.config/fish/config.fish | zoxide init fish | source |
| PowerShell | Profile | Invoke-Expression (& { (zoxide init powershell | Out-String) }) |
| Elvish | ~/.elvish/rc.elv | eval (zoxide init elvish | slurp) |
| Nushell | env.nu | zoxide init nushell | save -f ~/.zoxide.nu |
| Xonsh | ~/.xonshrc | execx($(zoxide init xonsh)) |
| الأمر | الوصف |
|---|
z foo | الانتقال إلى الدليل الأعلى تصنيفًا المطابق لـ “foo” |
z foo bar | الانتقال إلى الدليل المطابق لـ “foo” و “bar” معًا |
z ~/projects | الانتقال إلى المسار الدقيق (يعمل مثل cd العادي) |
z .. | الانتقال دليل واحد للأعلى |
z - | العودة إلى الدليل السابق |
zi foo | اختيار تفاعلي مع fzf (عند تعدد المطابقات) |
zi | اختيار تفاعلي من جميع الأدلة المتتبعة |
يطابق zoxide مسارات الأدلة حسب الكلمات الرئيسية. لست بحاجة إلى كتابة المسار الكامل:
# إذا كنت تزور /home/user/projects/my-app بشكل متكرر
z my-app # ينتقل مباشرة إلى هناك
z proj app # يعمل أيضًا (يطابق كلا الكلمتين في المسار)
z app # يعمل إذا كان دليل "app" الأكثر تكرارًا
التسجيل: تحصل الأدلة على نقاط عند الزيارة. الزيارات الأخيرة تسجل أعلى. الأدلة غير المستخدمة تتضاءل بمرور الوقت.
| الأمر | الوصف |
|---|
zoxide add /path/to/dir | إضافة دليل يدويًا إلى قاعدة البيانات |
zoxide remove /path/to/dir | إزالة دليل من قاعدة البيانات |
zoxide edit | فتح قاعدة البيانات في $EDITOR للتحرير اليدوي |
zoxide query foo | إظهار أفضل مطابقة لـ “foo” (بدون الانتقال) |
zoxide query -l | قائمة جميع الأدلة في قاعدة البيانات، مرتبة حسب النقاط |
zoxide query -l foo | قائمة جميع المطابقات لـ “foo” مع النقاط |
zoxide query -ls foo | قائمة المطابقات مع النقاط، مرتبة حسب النقاط |
zoxide query -i foo | وضع الاختيار التفاعلي |
الانتقال من أداة قفز دليل أخرى؟ استيراد قاعدة البيانات:
| الأمر | الوصف |
|---|
zoxide import --from=autojump /path/to/db | الاستيراد من autojump |
zoxide import --from=z /path/to/db | الاستيراد من z/z.sh |
zoxide import --from=fasd /path/to/db | الاستيراد من fasd |
مواقع قاعدة البيانات الافتراضية للاستيراد:
- autojump:
~/.local/share/autojump/autojump.txt
- z:
~/.z
- fasd:
~/.fasd
| المتغير | الافتراضي | الوصف |
|---|
_ZO_DATA_DIR | خاص بالمنصة | الدليل لتخزين قاعدة البيانات |
_ZO_ECHO | 0 | طباعة الدليل المطابق قبل التنقل (1 للتمكين) |
_ZO_EXCLUDE_DIRS | بلا | الأدلة المراد استبعادها (مسارات مفصولة بنقطتين) |
_ZO_FZF_OPTS | بلا | خيارات مخصصة ممررة إلى fzf في الوضع التفاعلي |
_ZO_MAXAGE | 10000 | الحد الأقصى لعدد الإدخالات في قاعدة البيانات |
_ZO_RESOLVE_SYMLINKS | 0 | حل الروابط الرمزية قبل تخزين المسارات (1 للتمكين) |
| الخيار | الوصف |
|---|
--cmd j | تغيير اسم الأمر من z إلى j (ينشئ j و ji) |
--hook prompt | تحديث النقاط على كل موجه (افتراضي) |
--hook pwd | تحديث النقاط فقط عند تغيير الدليل |
--hook none | عدم تحديث النقاط تلقائيًا |
--no-cmd | لا تنشئ اختصارات z و zi (استخدام __zoxide_z مباشرة) |
# مثال: استخدام 'j' بدلاً من 'z'، تحديث عند تغيير الدليل فقط
eval "$(zoxide init bash --cmd j --hook pwd)"
# استبعاد الدليل الرئيسي وtmp من التتبع
export _ZO_EXCLUDE_DIRS="$HOME:/tmp:/private/tmp"
# استخدام معاينة fzf مخصصة
export _ZO_FZF_OPTS="--preview 'eza -la --icons {2..}' --preview-window=right:40%"
# الانتقال إلى دليل مشروع بالاسم الجزئي
z myproject
# التمييز بكلمات رئيسية متعددة
z work api # يطابق ~/work/projects/api-server
# الوضع التفاعلي عندما لا تكون متأكدًا
zi deploy # يفتح fzf بجميع الأدلة المطابقة
# التحقق مما يعتقد zoxide أنه أفضل مطابقة
zoxide query deploy
# رؤية جميع الأدلة المتتبعة ونقاطها
zoxide query -ls
# تنظيف الأدلة المحذوفة من قاعدة البيانات
zoxide query -l | while read -r line; do
dir=$(echo "$line" | awk '{print $2}')
[ ! -d "$dir" ] && zoxide remove "$dir"
done
عند استخدام zi، يستخدم zoxide تلقائيًا fzf للاختيار التفاعلي. تأكد من تثبيت fzf لكي يعمل هذا.
يوفر zoxide إكمالات علامات التبويب. بعد تكامل الشِل، الضغط على Tab بعد z سيقترح الأدلة المطابقة.
| الميزة | cd | zoxide (z) |
|---|
| الانتقال إلى مسار دقيق | cd /full/path | z /full/path |
| المطابقة الجزئية | لا | نعم (z proj) |
| ترتيب Frecency | لا | نعم |
| الاختيار التفاعلي | لا | نعم (zi) |
| الدليل السابق | cd - | z - |
| تعلم السلوك | لا | يتعلم من الاستخدام |
| استيراد قاعدة البيانات | غير متاح | autojump, z, fasd |
| المشكلة | الحل |
|---|
أمر z غير موجود | تأكد من أن سطر تكامل الشِل موجود في تكوين الشِل وأعد تشغيل الشِل |
| لم يتم العثور على مطابقات | قم بزيارة الأدلة باستخدام cd أولاً — يتعلم zoxide مع الوقت |
| تم مطابقة الدليل الخاطئ | استخدم كلمات رئيسية أكثر تحديدًا: z work api بدلاً من z api |
| قاعدة البيانات كبيرة جدًا | خفض _ZO_MAXAGE أو تشغيل zoxide edit للتنظيف |