Rbenv: الحشوات لقذيفة السمك

تم إنشاؤها على ١٦ فبراير ٢٠١٢  ·  20تعليقات  ·  مصدر: rbenv/rbenv

سيكون من المفيد جدًا أن تكون الحشوات التي توفرها rbenv متوافقة أيضًا مع قشرة السمك. لن يكون تغييرًا كبيرًا ، لكن هذا يعني أنه يمكن استخدام rbenv في قشرة non-bash / zsh. إن بناء الجملة للأسماك هو في الواقع أكثر عقلانية من bash.

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

يبدو أن الحشوات جيدة ، إنه دليل التثبيت الذي يحتاج إلى التغيير والتبديل. أضف هذا إلى config.fish لدعم rbenv:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

ال 20 كومينتر

أود أن أقدم دعمي لهذا.

يبدو أن الحشوات جيدة ، إنه دليل التثبيت الذي يحتاج إلى التغيير والتبديل. أضف هذا إلى config.fish لدعم rbenv:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

شكرا إد! :)

يعمل كالسحر.
انت محترم ومثقف.

كما أشار emcmanus ، فإن حشوات rbenv تعمل بشكل جيد مع Fish أو أي قشرة أخرى. ما عليك سوى تثبيت Bash لتستخدمها - لا يلزم أن تكون صدفتك. الحشوات هي نصوص Bash ، ويمكنك تشغيلها من Fish بنفس الطريقة التي يمكنك بها تشغيل نص Ruby أو Python من Fish.

إن إضافة rbenv إلى PATH هو كل ما هو ضروري حتى يعمل. سأقبل تصحيحًا يضيف توافق Fish لـ rbenv init حتى لا تحتاج إلى إنشاء المسارات يدويًا.

يبدو أن هذا لا يكفي ، لأن rbenv shell لن يعمل.

rbenv shell هو مجرد اختصار لإعداد متغير البيئة RBENV_VERSION . لا تفقد أي وظائف بدونها.

لقد استخدمت هذا للحصول على rbenv shell للعمل في الأسماك: https://coderwall.com/p/6hja1w

عند استدعاء rbenv من قشرة الأسماك ، لا يتم تمرير أي متغيرات بيئة معينة في صدفتك. علاوة على ذلك ، لم تتم قراءة أي من ~/.bashrc ولا ~/.bash_profile . إذا كنت تريد تخصيص rbenv ، انظر # 375.

وقد ذكرespen الألغام Coderwall protip، ولكن هناك نسخة محدثة تسمح اسم روبي الجزئي (الافتراضي سيتم اخترت أحدث واحدة، لا تزال دون الانتهاء). يمكن العثور على Gist هناك https://gist.github.com/5631243 (امنحه بعض الحب إذا استطعت).

أتفهم أن هذه المشكلة قد تم إغلاقها الآن ولكن ما زلت أتساءل عما إذا كان بإمكاننا تنفيذ هذه الميزة بالطريقة الصحيحة. هل أنا محق في التفكير في أننا سنحتاج فقط إلى التأكد من أنه عندما يتم استدعاء rbenv init - ، يجب أن يردد الصدى الصديق لقشرة الأسماك حتى تتمكن الأسماك من تقييم ذلك؟ في هذه الحالة ، أفضل تنفيذه كجزء من rbenv repo الأصلي بدلاً من امتلاك _workarounds_ الخارجية التي قد تخرج عن المزامنة مع الأجزاء الداخلية الأصلية لـ rbenv ...

أفهم أيضًا أن sstephenson قد لا يرغب في دعم قشرة الأسماك بنشاط ولكن ربما يمكننا محاولة تنفيذ توافق تجريبي في البداية وأنا متأكد من أنه يمكنني الحصول على الدعم من مجتمع أصداف الأسماك نفسه (يبدو أنهم ودودون تمامًا و متجاوب تمامًا أيضًا).

من المفترض أن الملف الذي سنحتاج إلى تغييره هو https://github.com/sstephenson/rbenv/blob/master/libexec/rbenv-init
هل انا على حق؟ أنا لست ساحرًا لسيناريو الصدفة ، لكنني أفضل أن أحاول القيام بذلك بشكل صحيح بالتعاون مع شخص ما إذا كان المرء قادرًا على القيام بذلك بالطريقة الصحيحة.

هتافات

نرحب بأي مستخدم سمك لتحسين ناتج rbenv init بحيث يدعم قشرة السمكة ويرسل لنا طلب سحب.

المشكلة هي أن الأسماك ليست POSIX shell وسيكون من الصعب تنفيذ rbenv init بالطريقة الصحيحة لتقديم الدعم للأسماك (أفترض أنه سيكون هناك بعد ذلك البعض سيحتاج إلى دعم csh أو tcsh ). أعتقد أنه يجب ملاحظة أنه إذا استخدم شخص ما قذيفة غير POSIX ، فيمكنه استخدام إحدى وظائف المجتمع (وإعطاء روابط) أو (روابط) يجب أن يكتبها بنفسه / بنفسها.

hauleth أعتقد أنك قد تكون مخطئا. استنادا إلى التعليقات منemcmanus وsstephenson كل ما عليك القيام به هو الحصول على rbenv init لإنتاج جملة متوافق الأسماك بحيث يمكن أن يكون eval د الأسماك. يجب تثبيت قذيفة متوافقة مع POSIX (مثل bash لهذه الطريقة) وليس بالضرورة أن تكون الصدفة التي تختارها. انظر تعليقات sstephenson أعلاه.

سأرسل بريدًا إلكترونيًا إلى القائمة البريدية لمجتمع الأسماك وأبدأ المحادثة ، وسأحاول الحصول على بعض المساعدة من الرجال هناك.

يستدعي الأمر الأصلي rbenv shell rbenv sh-shell ، والذي يُعيد سلسلة هي أيضًا eval d. يمكننا حلها وتحليل رمز الإرجاع لتلك المكالمة بدلاً من تقييم السلسلة التي تم إرجاعها. هل هذا بخير؟ إذا كانت الإجابة بنعم ، يمكنني إنشاء شيء من شأنه أن يفعل ذلك.

يجب دعم bitboxer Fish shell بشكل كامل بواسطة rbenv master. إذا وجدت أن الأمر ليس كذلك ، فيرجى فتح مشكلة جديدة. شكرا!

شكرا لك "emcmanus"
أستخدم السمك وكنت أبحث عن إجابة.

كما ذكر "emcmanus" ، إذا كنت تستخدم قشرة السمك ، فإن ما يلي يعمل معي.

تم اختباره في

  • ديبين
  • أوبونتو
  • كوبونتو
  • فيدورا
  • CentOS
  • مؤسسة ريدهات
 vi ~ / .config / fish / config.fish
 تعيين PATH $ HOME / .rbenv / bin $ PATH
 تعيين PATH $ HOME / .rbenv / shims $ PATH
 rbenv rehash> / dev / null ^ & 1

ثم اخرج من الأسماك وأعد تحميل الأسماك أو سجل خروجك ثم أعد تشغيلها مرة أخرى. إذا لم تتمكن من العثور على الملف ، فهذا يعني أنك قمت للتو بتثبيت الأسماك ولم تقم بتشغيلها مرة واحدة. ما عليك سوى تشغيل الأسماك وسيتم إنشاء هذا المجلد (قد لا يتم إنشاء الملف).

هذه سمكة سمك وليست سمكة.
http://fishshell.com/

شكرا emcmanus و @ sstephenson.

من الواضح أن بناء الجملة ^ سيتم إهماله في المستقبل وسيتعطل في بعض الإصدارات ( راجع هذه المشكلة هنا ).

لذلك قد يكون من الأفضل استخدام الصيغة التالية بدلاً من ذلك: rbenv rehash >/dev/null >2&1 .

لذلك قد يكون من الأفضل استخدام الصيغة التالية بدلاً من ذلك: rbenv rehash> / dev / null> 2 & 1.

يوجد خطأ إملائي هناك يجب تبديل 2 و > :

rbenv rehash >/dev/null 2>&1
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات