ট্যাব সমাপ্তি কমান্ডগুলির জন্য কাজ করে না


50

আমি সর্বশেষ আপডেটগুলি চালনা করে উবুন্টু 11.04 বিটা 1 তে কমান্ডগুলির জন্য ট্যাব সমাপ্তিটি ব্যবহার করার চেষ্টা করছি, তবে এটি কার্যকর হবে বলে মনে হচ্ছে না। (যদিও প্যাকেজ ব্যাশ-সমাপ্তি ইনস্টল করা আছে)

ট্যাব সমাপ্তি কেবল ডিরেক্টরি বা ফাইলগুলির জন্য সঠিকভাবে কাজ করে।

কোন ধারণা কোথায় খনন?


উত্তর:


67

আপনার .bashrc এ নিম্নলিখিত খণ্ড রয়েছে কিনা তা পরীক্ষা করুন (ডিফল্টরূপে সেখানে থাকা উচিত)

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

ধন্যবাদ! আমি নিজের সাথে .brcrc প্রতিস্থাপন করেছি এবং তাই সমস্যাটি কী ছিল তা বুঝতে পারি নি now এখন পুরোপুরি কাজ করে।
স্ক্র্যাচ করুন

এটি আমার গিট ব্যাশ অটোমোপ্লিটসকে xubuntu 12.04 এও স্থির করে দিয়েছে, অনেক ধন্যবাদ।
পামমিক

কীভাবে সুইচ এবং কমান্ড লাইন অপ্ট-গেটের বিকল্পের জন্য অটো-সম্পূর্ণ সম্পর্কে? উদাহরণস্বরূপ, আপনি যখন অ্যাপটি-গেটগুলি প্রবেশ করেন এবং তারপরে এটিটি স্বয়ংক্রিয়ভাবে সম্পন্ন করতে টিপুন।
রেজা ঘোদসি

3
আমি যুক্ত করতে চাই যে bash-completionএই কাজ করার জন্য প্যাকেজটি প্রয়োজনীয়। অদ্ভুতভাবে, আমার সংস্থার মানক ইনস্টলেশনটিতে এই প্যাকেজটি নেই।
এডগার

13

আমি ভেবেছিলাম বাশ সম্পূর্ণ হওয়ার ব্যর্থতার জন্য আমি নিম্নলিখিত অতিরিক্ত বিবরণটিও যুক্ত করব - একটি মন্তব্যের জন্য এটি দীর্ঘ দীর্ঘ এবং কারও পক্ষে ব্যাশ সমাপ্তির সমস্যা রয়েছে তার পক্ষে এটি কার্যকর হতে পারে, সম্ভবত সম্ভবত এটিই 'সাধারণ' নীতিগত প্রশ্ন যা সমস্ত সদৃশ উল্লেখ করা হয়।

এমনকি আপনি যদি যথাযথ লাইন আছে আপনার .bashrcএবং (উপরে উত্তর হিসাবে) bash-completionপ্যাকেজটি ইনস্টল, ব্যাশ সমাপ্তির এখনও ঠিকঠাক যদি আপনি হয় থাকতে পারে shopt -s nullglobবা shopt -s failglobআপনার .bashrcবা .bash_aliases

নীচের পরিস্থিতিগুলি ব্যবহারকারীর সমস্ত কাস্টমাইজেশনের সাথে পরীক্ষা করা হয়েছিল .bashrcএবং .bash_aliasesএকটি উপযুক্ত পরীক্ষা দিতে সরানো হয়, যথাযথ বাশ সমাপ্তির লাইনে .bashrcউপস্থিত এবং bash-completionইনস্টল থাকা রয়েছে।

1) প্রথম দৃশ্যটি যখন shopt -s failglobআপনার .bashrcবা আপনার হয় .bash_aliases

যথাক্রমে সম্পূর্ণ ডিরেক্টরি এবং ফাইলগুলি ট্যাব করার চেষ্টা করার সময়, এই ত্রুটিগুলি ঘটবে:

cd Dbash: no match: "${COMP_WORDS[@]}"  
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}

তবে, কমান্ডগুলি এখনও সফলভাবে সম্পূর্ণ হবে will

২) shopt -s nullglobসক্ষম হওয়া সত্ত্বেও, কোনও ডিরেক্টরি বা একটি ফাইল সম্পূর্ণ করার ট্যাব চেষ্টা করার পরিবর্তে সমস্ত কিছুই তালিকাভুক্ত করা হবে, সম্পূর্ণ না হয়ে:

cd Do
.adobe/                  .gimp-2.6/               Podcasts/
.aptitude/               .gnome2/                 Public/
.audacity-data/          .gnome2_private/         .pulse/
............

আমি এখানে তালিকাটি সংক্ষিপ্ত করে রেখেছি, কারণ এটি খুব দীর্ঘ ছিল এবং এটির পুনরুত্পাদন করার প্রয়োজন ছিল না।

আবার, কমান্ড সমাপ্তি এখনও কাজ করবে।

সুতরাং, কেবল মুছে ফেলা shopt -s failglobবা shopt -s nullglobবাশ সম্পূর্ণ হওয়ার সাথে সাথে ত্রুটির সমস্যাটিও সমাধান করতে পারে, ধরে নেওয়া আপনার নিজের .bashrcএবং bash-completionইনস্টল থাকা এপ্রোপিয়েট লাইন ।


1
সুন্দর ব্যাখ্যা, আমি যখন ট্যাব সমাপ্তি এবং ত্রুটি ঘটতে চেষ্টা করেছি তখন এটি আমার সমস্যার সমাধান করেছে >> শব্দগুলি [0] = $ {! রেফ} $ {COMP_WORDS [i]}
ব্যাগস্ট্রিস

যদিও এটি একটি কর্মক্ষেত্র হিসাবে কাজ করে, কোনও সমাপ্তি প্রোগ্রামারের উপর নির্ভর করা এটি একটি দুর্বল বিষয়। যেহেতু নালগ্লোব (যা অনেকের কাছেই নামমাত্র উন্নত) এবং আত্মীয় সেট করা যেতে পারে তাই যে কোনও পরিপূর্ণ কোডের জন্য পুরাতন শব্দার্থবিজ্ঞানের প্রয়োজন হয় (ওয়াইল্ডকার্ডের সাথে ম্যাচবিহীন ওয়াইল্ডকার্ডগুলিই ওয়াইল্ডকার্ডের ফলস্বরূপ) বর্তমান গ্লোব সেটিংটি সংরক্ষণ করে, তাদের প্রয়োজনীয় একটিটি সেট করে পুনরুদ্ধার করা উচিত পুরানো গ্লোব সেটিং পরে, যেমন আইএফএস সাধারণত ব্যবহৃত হয়।
অ্যালেক্স উত্তর-কীগুলি

10

/etc/bash.bashrcফাইল সংশোধন করা ছাড়াও (অন্যান্য উত্তর) আপনার bash-completionপ্যাকেজ ইনস্টল করতে হতে পারে ।

/etc/bash_completionফাইল উপস্থিত থাকলে পরীক্ষা করুন । কোন যদি:

sudo apt-get install bash-completion

(আমার ডেবিয়ান 7 এর সূচনাতে এটি প্রাথমিকভাবে ইনস্টল করা হয়নি)


7

এটি যতটা বেসিক শোনায় তা নিশ্চিত করুন যে বাশ আপনার সক্রিয় শেল

echo $SHELL

আমি সবেমাত্র উবুন্টু 14.04.1 এলটিএসে আপগ্রেড করেছি এবং কোনও পোস্টের স্বয়ংক্রিয় সমাপ্তি নেই, এমনকি এই পোস্টে পরামর্শ অনুসরণ করার পরেও, কেবল আমার শেলটি সেট করা হয়েছে /bin/shএবং না তা বুঝতে পারি /bin/bash


2

উবুন্টুকে আপডেট করা হচ্ছে 14.04.01

আপনার .bashrc এ নিম্নলিখিত খণ্ড রয়েছে কিনা তা পরীক্ষা করুন (ডিফল্টরূপে সেখানে থাকা উচিত)

sudo vim /etc/bash.bashrc (ফাইল সম্পাদনা করতে "i" টাইপ করুন)

    # enable bash completion in interactive shells
    if ! shopt -oq posix; then
     if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
      elif [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
      fi
    fi

7 টি লাইন উপরে মন্তব্য করা হয়েছে

"এসকি + ডাব্লু + কিউ + প্রবেশ করুন" ফাইলটি সংরক্ষণ করুন

বাশ পুনরায় চালু করুন

এক্সিকিউশন ব্যাশ


1
এটা কি করবে? এটি কি ডিফল্টরকম নয়?
টিম

@ টিম বলেছেন যে, কনফিগারেশনটি ডিফল্ট কনফিগারেশন দ্বারা সরবরাহ করা হয়।
ssoto

এটি আমার জন্য কাজ করেছে
থমরাইসেলভম

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