আংশিক পাথের জন্য কাঙ্ক্ষিত হিসাবে Zsh ট্যাব পরিপূর্ণতা কাজ করছে না


17

আমি ফাইল এবং ডিরেক্টরিগুলির ক্ষেত্রে কেস-সংবেদনশীল अस्पष्ट সমাপ্তি চাই zsh। কয়েক ঘন্টা ম্যানুয়ালটি পড়ার পরে, আমি এটি নিয়ে আসলাম:

zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'

অতিরিক্তভাবে, আমি TABসম্ভাব্য পরিপূর্ণতা প্রদর্শন করতে একবার টিপতে চাই , কেবলমাত্র যদি একটি সম্পূর্ণতা থাকে তবে আমি যা লিখেছি তা পরিবর্তন করে। তারপরে TABদ্বিতীয় বার টিপলে আমাকে "মেনু সমাপ্তি" মোডে রাখা উচিত। ম্যানুয়ালগুলির উপর ভিত্তি করে, আমি এটি নিয়ে এসেছি:

zstyle ':completion:*' menu select

এখন সমস্ত কিছু এক পরিস্থিতিতে বাদে যেমনটি করা উচিত তেমন কাজ করে। আমার দুটি ফোল্ডার Desktopএবং .rstudio-desktopআমার হোম ডিরেক্টরিতে রয়েছে। আমার যেহেতু setopt globdots, আমি নিম্নলিখিত টাইপ করা আশা করি:

$ cd ~/dktop<TAB>

প্রবেশ হিসাবে আমার কমান্ড ছেড়ে, এবং সম্পূর্ণ প্রার্থী হিসাবে প্রদর্শন Desktopএবং .rstudio-desktop। পরিবর্তে, এটি সরিয়ে দেয় dktop এবং আমাকে নিম্নলিখিতগুলি দিয়ে চলে যায়:

$ cd ~/

আমি প্রাসঙ্গিক সমস্ত ম্যানুয়াল, গাইড, স্ট্যাক এক্সচেঞ্জ প্রশ্নাবলী এবং অন্যান্য বিভিন্ন উত্স দেখেছি। তবে আমি যাই করি না কেন, আমি এই কাজটি করতে পারি না।

মজার বিষয় হচ্ছে, যদিও আমি যদি হোম ডিরেক্টরিতে থাকি এবং নিম্নলিখিতটি টাইপ করি তবে প্রত্যাশা অনুযায়ী সবকিছুই কাজ করে:

$ cd dktop<TAB>

এটি হ'ল পথের অ-নেতৃস্থানীয় বিভাগগুলিতে কেবল এটিই একটি সমস্যা (এবং আপনি দেখতে পাচ্ছেন C-x hযে এটি directoriesট্যাগটি ব্যবহারের পরিবর্তে local-directoriesট্যাগটির সাথে সম্পর্কিত)।

সহজ reproducibility জন্য এখানে একটি হল ~/.zshrcপরিস্থিতি এবং আচরণ (সাথে সতেজভাবে এল ক্যাপটেনের ভার্চুয়াল মেশিন উপর পরীক্ষা উপরে বর্ণিত পুনর্গঠন করা হবে zshHomebrew থেকে)।


পুনরুত্পাদন করতে পারে না। zsh 5.3.1উপর Arch Linuxcd ~/dktop<tab>ফলন cd ~/Desktop
পাইথননট

@ পাইথননট zsh 5.3.1ওএস এক্স-এর মাধ্যমে বিষয়টি পুনরুত্পাদন করবে। এটি আকর্ষণীয় যে অপারেটিং সিস্টেমের মধ্যে পার্থক্য রয়েছে।
রেডন রোসবারো

1
@ পাইথনট প্রকৃতপক্ষে, আমি বাজি ধরছি কারণ লিনাক্স কেস-সংবেদনশীল এবং ম্যাকোস কেস-সংবেদনশীল।
রেডন রোসবারো

যেমন একটি বন্ধুত্বপূর্ণ অনুস্মারক সমস্ত ম্যাক / ম্যাকোস কেস-সংবেদনশীল নয় ততই এটি নির্ভর করে যে আপনার ডিস্কটি কেস-সংবেদনশীল বা না-করা হয়েছে।
কনকি

উত্তর:


1

একটি সম্ভাব্য সমাধান হ'ল:

bindkey "^I" expand-word

এটি ট্যাবকে ~/পরম পথে প্রসারিত করবে ।


সম্ভবত আমি কিছু মিস করছি, তবে আমি দেখতে পাচ্ছি না যে এটি কোনওভাবেই ঝাপসা ট্যাব সম্পূর্ণরূপে বা উপরে বর্ণিত সমস্যা সমাধানের সাথে সম্পর্কিত। আপনার পরামর্শ অনুসারে যদি আমি তা করি তবে ট্যাব টিপলে আমার চাপ দেবে cd /Users/raxod502/dktopএবং সমাপ্তি অক্ষম হবে।
রেডন রোসবারো

@ র্যাডনরোসবারো আশা করেছিল যে ~/এর নিখুঁত পথে প্রসারিত হওয়ার সাথে সাথে अस्पष्ट সমাপ্তি কাজ শুরু করবে। দেখে মনে হয়েছিল সমস্যাগুলির মধ্যে এমন একটি যেখানে সমস্যাটি এটি একবার মূল্যায়ন করে তবে আপনার কার্যত দু'বার মূল্যায়ন করা দরকার, সুতরাং এর পরিবর্তে পরম পথ থাকার ~/অর্থ এটি কেবল একটি মূল্যায়নের প্রয়োজনে ফিরে যেতে চাইবে। তবে বোকা, আমি দুঃখিত, আমি ভুলে গিয়েছিলাম যে বাইন্ডকি পুরানো বাইন্ডিংগুলি প্রতিস্থাপন করে, এবং আমি এমন কোনও কিছুই খুঁজে পাই না যা বলে যে এটি একটি কীতে দুটি ফাংশন বাঁধানো এমনকি যদি সম্ভবও হয় তবে says আমার বাঁধনিকে বাদ দিয়ে, আপনার সম্পূর্ণকরণ যখন নিরঙ্কুশ রাস্তা দেওয়া হয় তখন যেমন কাজ করে তখন কি কাজ করে?
কনস্টিপটেড নিনজা

কিনা ইনপুট পথ নং এটা কোন পার্থক্য তোলে ~/dktopবা /Users/raxod502/dktop; ফলাফলটি একই রকম হয়, dktopযখন আমি ট্যাব টিপব তখন তা মুছে ফেলা হয়।
রেডন রোজবারো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.