বুদ্ধিমান সমাপ্তি ব্যর্থ হলে বাশ সাধারণ ট্যাব সমাপ্তি জোর করুন


10

ট্যাব সমাপ্তি শেলগুলির একটি আদর্শ বৈশিষ্ট্য হওয়ার পরে আমি এর খুব খুশি ব্যবহারকারী happy আমি এমনকি বাশের বুদ্ধিমান সমাপ্তি পছন্দ করি (যেখানে এটি কেবল পিডিএফ ফাইলগুলির সন্ধান করে, যদি আমি foo <TAB> টাইপ করি তবে) - যতক্ষণ না এটি সঠিকভাবে অনুমান করে।

এটি অন্যথায় সুখী দিনকে নষ্ট করে দেয় যখন বাশ সম্পূর্ণরূপে প্রত্যাখ্যান করার জন্য বুদ্ধিমান সম্পূর্ণতা ব্যবহার করে।

আজ আমি চেয়েছিলাম:

tar xvf centos5.8_x86_1.ova

সুতরাং আমি প্রবেশ করলাম:

tar xvf cent<TAB>

এবং বাশ পথটি সম্পূর্ণ করতে অস্বীকৃতি জানায় কারণ .ভা-ফাইলগুলি সাধারণত আপনি টার সাথে ব্যবহার করেন না।

আমি জানি বুদ্ধিমান সমাপ্তি অপসারণ করতে আমি ব্যাশ-সমাপ্তি প্যাকেজটি আনইনস্টল করতে পারি। তবে আমি কি আমার কেক খেতে পারি এবং এটিও খেতে পারি?

আমি কি বাশকে প্রথমে বুদ্ধিমান সমাপ্তি ব্যবহার করতে বলব, এবং যদি তা ব্যর্থ হয় তবে অজ্ঞান-বুদ্ধিমান সম্পূর্ণতা ব্যবহার করতে পারি?


1
<spam> Zsh এটি করতে পারে। </spam>
গিলস

উত্তর:


9

সমস্ত 'বুদ্ধিমান' পরিপূর্ণতা প্রোগ্রামের ট্যারি, ভিম এবং ইম্যাকের জন্য ব্যর্থ হওয়ার পরে নিম্নলিখিতটি সাধারণ বাশ সম্পূর্ণ হওয়া চালু করতে হবে:

compopt -o bashdefault tar vim emacs

আরো দেখুন প্রাসঙ্গিক পৃষ্ঠা অনলাইন ব্যাশ ম্যানুয়াল।

সতর্কতা: আপনি সম্পূর্ণ কমানোর ধরণের (কমান্ড / ফাইলের নাম / ব্যবহারকারীর নাম ইত্যাদি) জন্য সাধারণ আচরণ পাবেন যা কমান্ডের বুদ্ধিমান সমাপ্তির দ্বারা সংজ্ঞায়িত করা হয়েছে, উদাহরণস্বরূপ, serviceআপনি কল করলেও ফাইলের নাম সম্পূর্ণ হবে না complete -o bashdefault service

এটি এবং অন্যান্য ক্ষেত্রে যেখানে বুদ্ধিমান স্বয়ংক্রিয়তা বিফল হয়, আপনি বরাবরই একইভাবে ফাইল নামগুলি সম্পূর্ণ করতে Alt-/(বা M-/ব্যাশ ম্যানুয়ালটির স্বীকৃতিতে) টিপতে পারেন যেভাবে বুদ্ধিমান সমাপ্তি অক্ষম করা হয় যদি ট্যাব কাজ করে (প্রায় একইভাবে অর্থে নয় যেভাবে না সম্পূর্ণ নিদর্শন )। কমান্ড এবং ব্যবহারকারীর নাম হিসাবে সম্পূর্ণরনের অন্যান্য ধরণের জন্য কী সিকোয়েন্সগুলির জন্য এখানে দেখুন ।M-/*.txt


2
আল্ট- / উল্লেখ করার জন্য ধন্যবাদ, আমার সেখানে কোনও ধারণা ছিল না
মাইকেল স্পিকার

1

ব্যাশ সম্পূর্ণকরণ বাশের মানক সমাপ্তির একটি এক্সটেনশন এবং এটি নিজেই বাশ প্রোগ্রাম। সুতরাং আপনি যদি প্রোগ্রামটি কীভাবে কাজ করে তা পরিবর্তন করতে চান, কেবল এটি পরিবর্তন করুন। এটি নিখরচায় সফ্টওয়্যার, আপনি এটি করতে নির্দ্বিধায়। tarকমান্ডের নির্দিষ্ট ক্ষেত্রে ফাইলটি হ'ল /usr/share/bash-completion/completions/tar। জন্য tarএক্সটেনশানের ফাইল স্বয়ংসম্পূর্ণ করতে ova, শুধুমাত্র লাইন যোগ

local tars='@(@(tar|gem|spkg)?(.@(Z|[gx]z|bz?(2)|lzma))|t@([glx]z|bz?(2)))'

সুতরাং এটি বলে

local tars='@(@(tar|gem|spkg|ova)?(.@(Z|[gx]z|bz?(2)|lzma))|t@([glx]z|bz?(2)))'

মনে রাখবেন যে এটি পাথ এবং কোডটি দেবিয়ান হুইজি (বর্তমান স্থিতিশীল সংস্করণ) এর জন্য বিদ্যমান। একটি ভিন্ন ডিস্ট্রো বা সংস্করণে আলাদা কোড থাকতে পারে তবে ধারণাটি একই। কোডটি খুলুন এবং আপনি যা করতে চান তা করতে এটি সামঞ্জস্য করুন।

সম্পাদনা: আমি শুধু লক্ষ্য করেছি যে প্রশ্ন প্রত্যেক সময় যে এটি একটি ম্যাচ না শুধুমাত্র যোগ করার নির্দিষ্ট ঘটনা না খুঁজে পেতে এবং নেই সম্পর্কে ছিল ovaথেকে tar। তারা এখনও উত্সটি সন্ধান করতে পারে তা জানতে, কারও কাছে এটি এখনও কার্যকর হতে পারে।


4
প্যাকেজ ম্যানেজারের মালিকানাধীন / usr এ ফাইলগুলি পরিবর্তন করা আপগ্রেডে একটি বাজে শককে প্ররোচিত করার একটি ভাল উপায়। আরও ভাল: প্যাকেজযুক্ত কনফিগারেশন ওভাররাইড করুন।
ক্রিস ডাউন

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