Ohmyzsh: الإضافات: هل يمكنني تحميلها بشكل غير متزامن أو عند الطلب؟

تم إنشاؤها على ٦ سبتمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: ohmyzsh/ohmyzsh

تعد مكونات oh-my-zsh الإضافية مثل pyenv أو rbenv رائعة ، لكن في كثير من الأحيان أجبر على عدم استخدام مكون إضافي لأنه يمكن أن يجلب وقت إطلاق shell الخاص بي إلى الزحف. هذا هو سبب حصولنا على مشكلات مثل # 6017.

هل من الممكن تحميل بعض المكونات الإضافية بشكل غير متزامن ، لذلك لا يتم حظر موجه shell الخاص بي حتى يتم تشغيل جميع المكونات الإضافية؟ إذا تعذر ذلك ، هل يمكنني تحميل المكونات الإضافية عند الطلب؟

init Feature

التعليق الأكثر فائدة

لا يمكنني الإجابة على الجزء المتعلق بالتحميل غير المتزامن ، ولكن للتحميل اليدوي ، يمكنك إضافة وظيفة إلى .zshrc تقوم بذلك.

مثال أساسي (قادر فقط على التعامل مع مكون إضافي واحد ، بدون التحقق من الأخطاء)

function load-plugin() {
  source $ZSH/plugins/"$1"/"$1".plugin.zsh
}

ثم قم بتشغيل load-plugin pyenv متى احتجت إليها.

ال 3 كومينتر

لا يمكنني الإجابة على الجزء المتعلق بالتحميل غير المتزامن ، ولكن للتحميل اليدوي ، يمكنك إضافة وظيفة إلى .zshrc تقوم بذلك.

مثال أساسي (قادر فقط على التعامل مع مكون إضافي واحد ، بدون التحقق من الأخطاء)

function load-plugin() {
  source $ZSH/plugins/"$1"/"$1".plugin.zsh
}

ثم قم بتشغيل load-plugin pyenv متى احتجت إليها.

أردت فقط أن تتناغم مع وجود مشكلة مشابهة جدًا تحدث مع NVM (مدير إصدارات Node.js) الآن: https://github.com/creationix/nvm/issues/1277.

ابتكرcrenwick طريقة رائعة لتحميل NVM عند الطلب:

alias load_nvm='export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"'
alias node='unalias node npm && load_nvm && node'
alias npm='unalias node npm && load_nvm && npm'

آمل أن يتم فعل نفس الشيء مع pyenv:

alias load_pyenv='eval "$(pyenv init -)"'
alias pyenv='unalias pyenv && load_pyenv && pyenv'

awinecki شكرا على تلك المعلومات.

يجعلني أتساءل عما إذا كان بإمكاننا الحصول على متغير shell آخر lazy_plugins والذي يمكن استخدامه إما لتعريف الأسماء المستعارة تلقائيًا مثل ما ورد أعلاه ، أو ربما استخدام zsh autoload لذلك يتم تكبد تكلفة تحميل المكون الإضافي فعليًا عندما يحاول المستخدم استخدام البرنامج المساعد ، بدلاً من وقت بدء تشغيل shell.

أحب أن أسمع رأي خبراء البرمجة النصية حول هذه الفكرة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات