সাবলেম টেক্সটের মতো ফাজি সমাপ্তিকে সমর্থন করে এমন শেল কি আছে?


14

আমি ব্যাশ ব্যবহার করছি এবং আমি ভাবছিলাম যে ব্যাশ বা অন্য শেলটিতে এমন কোনও প্লাগইন রয়েছে যা আমাকে এটি করতে দেয় cat tfnislong.txt+ সাব্লাইম পাঠ্যে ট্যাব সমাপ্তির মতো [tab]সম্পূর্ণ হয় cat ThisFileNameIsSoLong.txt


কেন শুধু শুধু কি cat Th+ + tab?
ডেভিউলেস

1
@ ডেভিউলেস 269 টি কারণ দেখায়?
ফ্যাক্স

উত্তর:


11

আমি https://github.com/mgalgs/fuzzy_bash_completion সম্পর্কে জানি যা শেল ফাংশনগুলির সাথে ব্যবহৃত হয় complete

আমি মনে করি আমরা সম্ভবত কিছুটা আরও ভাল করতে পারলাম, আরও সংক্ষিপ্ত হতে হবে। আপনার .bashrc বা। প্রোফাইলে খোলার সময় ...

আমরা যে বেসিক হুকটি ব্যবহার করি তা হ'ল:

complete -o nospace -o filenames -F fuzzypath cd ls cat

-এফ বিকল্পের অর্থ ট্যাব-সমাপ্তির জন্য শেল ফাংশন ব্যবহার করুন, যেখানে বিকল্পগুলি COMPREPLYভেরিয়েবলের মধ্যে সেট করা থাকে । উদাহরণস্বরূপ:

ফাংশন ফুজিপথ () {
    যদি [-z $ 2] 
    তারপর
        সম্পূর্ণ = (`ls`)
    আর
        DIRPATH = `প্রতিধ্বনি" $ 2 "| gsed 's | [^ /] * $ ||' `
        BASENAME = `প্রতিধ্বনি" $ 2 "| gsed 's |। * / ||' `
        ফিল্টার = `প্রতিধ্বনি" $ বেস "| gsed 's |। | `0. * | g'`
        COMPREPLY = (`ls $ DIRPATH | grep -i" $ ফিল্টার "| gsed" s | ^ | IR DIRPATH | g "`)
    ফাই
}

DIRPATHআপনি যে টাইপ করছেন তা সর্বশেষে / আপনার পথে আগে যেখানে রয়েছে এবং BASENAMEবর্তমানে আপনার কার্সারটি এখানে রয়েছে।

FILTERঅস্পষ্ট-নেসটিই এখানে আসে। মূলত, আমাদের ফাজ রেজেক্স তৈরি করতে প্রতিটি চর নিয়ে BASENAMEএকটি সন্নিবেশ করান .*

বাকিগুলি কেবলমাত্র ls এর সাথে রেজেক্সের সাথে সংমিশ্রণ করছে COMPREPLY। আপনি এখানে আরও করণীয় জিনিস পেতে পারেন, সম্ভবত এটির সাথে find

আমি http://fahdshariff.blogspot.com/2011/04/writing-your-own-bash-completion.htmlও দরকারী বলে খুঁজে পেয়েছি ।


6

আপনি fzf দরকারী খুঁজে পেতে পারেন । এটি রুবিতে রচিত একটি সাধারণ উদ্দেশ্যমূলক अस्पष्ट ফাইন্ডার যা কোনও জিনিসের তালিকার সাথে ব্যবহার করা যেতে পারে: ফাইল, প্রক্রিয়া, কমান্ডের ইতিহাস, গিট শাখা ইত্যাদি etc.

এটির ইনস্টল স্ক্রিপ্টটি CTRL-Tআপনার শেলের জন্য কী-বাইন্ডিং সেটআপ করবে । নিম্নলিখিত জিআইএফ এটি কীভাবে কাজ করে তা দেখায়।


এফজেডএফ দুর্দান্ত! অবদান রাখার জন্য অনেক ধন্যবাদ। এটি আমার কয়েক সপ্তাহের কাজ বাঁচিয়েছে ... আমি যখন ভাগ্যক্রমে এফজেডএফ পেয়েছিলাম তখন আমি বাশের জন্য অস্পষ্টতা পূর্ণতা লিখতে শুরু করি। এটা নিখুঁত কাজ করে, আমি শুধু কল করার আগে কার্সার অবস্থানে সংরক্ষণ করতে মনে রাখা ছিল fzf.. (SC tput) এবং পরে এটিকে পুনরুদ্ধার tput rc..
Håkon Hægland

3

আপনার অন্যান্য উত্তরের সাথে যেতে, আপনি zsh দেখতে চাইতে পারেন। এটি ব্যাশের সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ যাতে আপনি এটি প্রতিস্থাপনের একটি ড্রপ হিসাবে ব্যবহার করতে পারেন তবে এটি উল্লেখযোগ্যভাবে প্রসারিত বৈশিষ্ট্যগুলিকে সমর্থন করে এবং এর মধ্যে একটি প্রাসঙ্গিক সচেতন ট্যাব সমাপ্তিকে ব্যাপকভাবে উন্নত করে।

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

এখানে একটি ঝাপসা ম্যাচ এক্সটেনশান যা আপনি আরও বিশেষভাবে যা চান তার আনুমানিক হবে; zsh-fuzzy ম্যাচ

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

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