zsh বান্ডেল এক্সিকিউট চলাকালীন এক্সিকিউটেবলকে সংশোধন করার অনুরোধ জানায়


3

বান্ডলার যখন চলমান তখন zsh কেন আরএসপিকে সংশোধন করতে বলে?

 rspec --version
2.12.2
 bundle exec rspec --version
zsh: correct 'rspec' to 'spec' [nyae]? n
2.12.2

পদ্ধতি:

  • উবুন্টু 12.10
  • আরভিএম ব্যবহার করে

আমি কিভাবে এটা ঠিক করব? ধন্যবাদ!

হালনাগাদ:

@ এমপি দ্বারা জিজ্ঞাসা ctrl-x hকরা bundle execহিসাবে আঘাত

  bundle exec
tags in context :completion::complete:bundle::
    all-files  (_files _default (eval))

আপডেট 2:

[[ -o correctall ]] && echo enabled
enabled   # on both machines

মন্তব্যের জবাব: specএকটি ডিরেক্টরি

আমি https://github.com/zsh-users/zsh-completions থেকে ম্যানুয়াল ইনস্টলেশন অনুসরণ করেছি

 echo $fpath
/home/ole/app/zsh-completions/src /scripts/zsh/Completion /home/ole/.oh-my-zsh/plugins/ruby /home/ole/.oh-my-zsh/plugins/bundler /home/ole/.oh-my-zsh/plugins/zeus /home/ole/.oh-my-zsh/plugins/rvm /home/ole/.oh-my-zsh/plugins/rails3 /home/ole/.oh-my-zsh/plugins/git-extras /home/ole/.oh-my-zsh/plugins/git-flow /home/ole/.oh-my-zsh/plugins/git /home/ole/.oh-my-zsh/functions /home/ole/.oh-my-zsh/completions /usr/local/share/zsh/site-functions /usr/share/zsh/vendor-functions /usr/share/zsh/vendor-completions /usr/share/zsh/functions/Calendar /usr/share/zsh/functions/Chpwd /usr/share/zsh/functions/Completion /usr/share/zsh/functions/Completion/AIX /usr/share/zsh/functions/Completion/BSD /usr/share/zsh/functions/Completion/Base /usr/share/zsh/functions/Completion/Cygwin /usr/share/zsh/functions/Completion/Darwin /usr/share/zsh/functions/Completion/Debian /usr/share/zsh/functions/Completion/Linux /usr/share/zsh/functions/Completion/Mandriva /usr/share/zsh/functions/Completion/Redhat /usr/share/zsh/functions/Completion/Solaris /usr/share/zsh/functions/Completion/Unix /usr/share/zsh/functions/Completion/X /usr/share/zsh/functions/Completion/Zsh /usr/share/zsh/functions/Completion/openSUSE /usr/share/zsh/functions/Exceptions /usr/share/zsh/functions/MIME /usr/share/zsh/functions/Misc /usr/share/zsh/functions/Newuser /usr/share/zsh/functions/Prompts /usr/share/zsh/functions/TCP /usr/share/zsh/functions/VCS_Info /usr/share/zsh/functions/VCS_Info/Backends /usr/share/zsh/functions/Zftp /usr/share/zsh/functions/Zle

p fpath পরিবর্তন হয়েছে। এর কোনও প্রভাব ছিল না।

আমার থেকে অংশ .zshrc

# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="robbyrussell"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)

plugins=(git git-flow git-extras rails3 rvm zeus bundler ruby)

source $ZSH/oh-my-zsh.sh   

# Customize to your needs...
export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

PATH=$PATH:/usr/lib/postgresql/9.1/bin/
export JAVA_HOME=$HOME/app/jdk1.7.0_15

fpath=($HOME/app/zsh-completions/src $fpath)

আমার পরিবর্তনগুলি পরত

- plugins=(git rails ruby)
+ plugins=(git git-flow git-extras rails3 rvm zeus bundler ruby)

+ fpath=($HOME/app/zsh-completions/src $fpath)

এবং এর কোনও প্রভাব ছিল না। ত্রুটিটি অব্যাহত রয়েছে (আমি প্রতিবার একটি নতুন টার্মিনাল ট্যাব খুলি)


1
মজার অংশটি হ'ল, যে zsh rspecএকা ঠিক হবে না । সুতরাং আমি সন্দেহ করি যে এটি দ্বিতীয় উদাহরণে ধরে নেওয়া হয়েছে যে rspecবান্ডেল কমান্ডের একটি বিকল্প বা কিছু হওয়া উচিত, যার অর্থ বান্ডেল সম্পূর্ণকারীকে অবশ্যই বাড়ানো উচিত। আমার কাছে নেই bundle, সুতরাং আপনি কি নিম্নলিখিত পদ্ধতিটির আউটপুট পোস্ট করতে পারেন: ইনপুট bundle exec এবং তারপরে টিপুন C-x h?
এমপি

@ এমপি আমার উত্তর আপডেট করেছে। এটা কি আপনাকে সাহায্য করে? এফওয়াইআই হিসাবে, বান্ডেল এক্সিকিউট বলতে একাধিক ইনস্টলড এক্সিকিউটেবলের সমস্যা সমাধান করা। একটি প্রকল্প আরএসপেক ১.১০, অন্য আরএসপেক ২.১২.২ ব্যবহার করতে পারে। সংস্করণটি দেখতে এবং সঠিক আরএসপিইকে এক্সিকিউটেবল কার্যকর করতে প্রকল্পটি স্থানীয় জেমফিলকে বান্ডিলটি পড়ে। সুতরাং আরএসপেক একটি প্রোগ্রাম, কেবল একটি প্যারামিটার নয়। আমার ম্যাকটি zsh চালাতে আমার এই সমস্যা নেই, কেবলমাত্র এই উবুন্টু ইনস্টলটিতে।
ওমা

হ্যাঁ সহায়তা করে, কারণ এটি দেখায় যে zsh জানে না যে bundle execকোনও আদেশের পরে জারি করা উচিত। তবে এটি সম্ভবত আমি ভাবার চেয়ে সহজ (কারণ আমি "সংশোধন" "আনুমানিক সমাপ্তির সাথে" মিশ্রিত করেছি), বিশেষত আপনি লেখেন যে এটি অন্য কোনও মেশিনে কাজ করে। সুতরাং দয়া করে উভয় মেশিনের মধ্যে কোনও পার্থক্য রয়েছে কিনা চেষ্টা করুন [[ -o correctall ]] && echo enabledcorrectallফাইল হিসাবে কোনও আর্গুমেন্ট সংশোধন করার চেষ্টা করে। আপনার কি specবর্তমান দির একটি ফাইল আছে?
এমপি

এর জন্য একটি সমাপ্তির জন্য bundle, github.com/zsh-users/zsh-completions/blob/master/src/_bundleএকবার দেখুন । কেবল এটির মধ্যে রাখুন /usr/share/zsh/site-functionsবা এর সাথে অন্য কোনও ফোল্ডার এতে অন্তর্ভুক্ত রয়েছে $fpath- কারণ মনে হচ্ছে এটি _bundleডিফল্টরূপে zsh এর সাথে চালিত হয় না।
এমপি এম

@ এমপি, দয়া করে কিছুটা বিশদ দিয়ে এর উত্তর দিন (এবং আমি উত্সাহ দিতে পারি), আমি আপনাকে অভ্যস্তভাবে অনুসরণ করছি না। আপনার প্রশ্নগুলির জন্য: ১. দুটিইর উপর যথাযথ সক্ষম করা specএকটি ফোল্ডার, আমি সাধারণত চালাচ্ছি bundle exec rspec spec
ওমা

উত্তর:


4

কারণ এটি মনে করে যে আরএসপেক অনুমানের একটি ভুল বানান?

  • আপনি nocorrect(যেমন alias bundle='nocorrect bundle') ব্যবহার করতে পারেন ,
  • বা কমান্ড লাইন সংশোধন পুরোপুরি ব্যবহার বন্ধ করুন।
  • বা এর CORRECTপরিবর্তে ব্যবহার করুন CORRECT_ALLযা আপনি ব্যবহার করছেন বলে মনে হয়

[সম্পাদনা] নোটিশ zsh সম্পূর্ণ প্রত্যাশা কি আশা করবেন তা নির্ধারণের জন্য ব্যবহার করছে। সেকেন্ড ক্ষেত্রে এটি সম্পূর্ণরূপে ব্যবহার করছেbundle


না, zsh এটিকে ভুল বানান হিসাবে বিবেচনা করে না, প্রথম লাইনটি দেখুন। এটি অবশ্য বান্ডিল নির্বাহের প্রসঙ্গে does কেন? - এটাই হল প্রশ্ন.
ওমা

AFAIK zsh শ্বেত তালিকা বানানের জন্য সমাপ্তির বিকল্পগুলি ব্যবহার করে। প্রথম ক্ষেত্রে এটি সম্পূর্ণরূপী ব্যবহার করে rspec, দ্বিতীয়টিতে এটি পরিপূর্ণ ব্যবহার করছে (প্রশ্ন আপডেটগুলি দেখুন) bundle
ফ্রান্সিসকো

এটি আমার জন্য পুরোপুরি কাজ করেন।
জ্যাকব ডালটন

এটি আমার জন্যও কাজ করে এমন সমাধান। বিশেষত বিচ্ছিন্ন rspecহওয়ার কোনও সমাধান না হলে bundle execআমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
রোলোইনসু

1

স্বয়ংক্রিয় বানান পরীক্ষণ দুটি উপায়ে সক্রিয় করা যেতে পারে (আমি গাইড / রেফারেন্স হিসাবে ও। কিতাল এট আল দ্বারা "বাশ থেকে জেড শেল থেকে" ব্যবহার করি):

  • setopt correct

    এন্টার zsh টিপানোর পরে "কমান্ড শব্দটি তাকান, এবং এটি একটি আদেশ হিসাবে স্বীকৃতি না দিলে এটি একটি সংশোধন খোঁজার চেষ্টা করে, যা আপনাকে পরে প্রস্তাব করে।"

  • setopt correctall

    পছন্দ করুন correctতবে এটির পাশাপাশি "কমান্ডের পরে যুক্তিগুলি পরীক্ষা করে However তবে এটি কেবল ফাইলগুলিই বিশ্বাস করে এবং ফাইল নামগুলিতে শব্দগুলি সংশোধন করার চেষ্টা করে Often প্রায়শই আপনি যা চান তা হয় না " "

সুতরাং, দ্বিতীয়টি ব্যাখ্যা করে, আপনাকে কেন specসংশোধন হিসাবে প্রস্তাব দেওয়া হয় rspec- zsh মনে করে যে এটি ফাইল হতে হবে (বা আপনার ক্ষেত্রে একটি ডিরেক্টরি)। এটি অন্য মেশিনে কেন কাজ করছে তা ব্যাখ্যা করে না। (আমি মনে করি আপনার ব্যক্তিগত বা বৈশ্বিক কনফিগারেশন ফাইলগুলিতে ( ~/.zshrcবা /etc/zsh/) উভয়ই আলাদা আলাদা সেটআপ হ'ল , সম্ভবত সংস্করণ সমস্যা রয়েছে))

[এই বরং সরল বানান যাচাইয়ের সাথে ঘনিষ্ঠভাবে সম্পর্কিত হওয়া সমাপ্তি সিস্টেমের একটি বৈশিষ্ট্য, এটি "আনুমানিক সমাপ্তি" বলে called সমাপ্তির সিস্টেমটি zsh খুব উন্নত একটি এর নিজস্ব একটি অধ্যয়নের জন্য মূল্যবান * (*) যেহেতু আমি যে "আনুমানিক সমাপ্তি" নিজেই ব্যবহার করি না আমি আপনাকে man zshcompsys"কন্ট্রোল ফাংশন" বিভাগে নির্দেশনা দিতে চাই _approximate। যদি তুমি আগ্রহী হও.]

তবে, যদি আপনার কাছে এর জন্য বিশেষ কারণ না থাকে তবে আমি unsetopt correctall && setopt correctবর্ণিত আচরণ থেকে মুক্তি পেতে (এটি ফ্রান্সিসকো কর্তৃক প্রস্তাবিত শেষ পয়েন্ট) এবং `বান্ডেলের (এটি আমার শেষ মন্তব্য) জন্য একটি শালীন সমাপ্তির ফাংশন ব্যবহার করব use

সমাপ্তির সহায়তায় ফুকশনগুলি zsh বরং "স্মার্ট" হয়ে যায়। সুতরাং এটি উদাহরণস্বরূপ জানে যে sudo পরে কোনও কমান্ড অবশ্যই অনুসরণ করা উচিত, সুতরাং sudo passTABএতে সম্পূর্ণ হবে sudo passwd। আপনি ব্যবহার করুন bundle, যার জন্য একটি সমাপ্তি কার্যকারিতা রয়েছে, তবে অবশ্যই এটি ডিফল্টরূপে প্রেরণ করা হয়নি ((**) এটির সাথে আপনি বান্ডেলের বিকল্পগুলির একটি দুর্দান্ত অনুস্মারক পাবেন:

$ bundle -TAB-
check     -- Determine whether the requirements for your application are installed
config    -- Specify and read configuration options for bundler
console   -- Start an IRB session in the context of the current bundle
exec      -- Execute a script in the context of the current bundle
gem       -- Create a simple gem, suitable for development with bundler
...

এবং টাইপ করার পরে bundle execআপনি কেবল কমান্ড উপস্থাপিত পাবেন। আমি সেই আচরণকে সংশোধনের চেয়ে অনেক বেশি পছন্দ করি তবে এটি আপনার উপর নির্ভর করে।


(*) এটি দ্বারা সক্রিয় করা হয় autoload -U compinit && compinit। এটি সক্রিয় কিনা তা পরীক্ষা করতে (এটি সম্ভবত এটি), ব্যবহার করুন which compinit:

$ zsh -f

$ which compinit
compinit not found

$ autoload -U compinit

$ which compinit
compinit () {
# undefined
builtin autoload -XU
}

(**) আপনার ডিরেক্টরিতে থাকা একটি ডিরেক্টরিতে https://github.com/zsh-users/zsh-completions/blob/master/src/_bundle অনুলিপি করুন$fpath

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.