ট্যাব সমাপ্তির সময় কীভাবে পালানো বন্ধ করতে বাশ পাবেন?


38

কমান্ড লাইনে আমার এটি আছে:

ln -sf $PWD/wine-

এবং তারপরে আমি Tabফাইলের নামটি সম্পূর্ণ করতে হিট করেছি । উবুন্টুর পূর্ববর্তী সংস্করণগুলিতে, wine-ফাইলের নামটি সম্পূর্ণ করার জন্য এটি ঠিক কাজ করেছিল (এবং পাশাপাশি পার্শ্ব-প্রতিক্রিয়াটি $PWDতখন প্রসারিত হবে)। কিন্তু এখন এটি এটিকে ঘুরিয়ে দেয়

ln -sf \$PWD/wine-

যা আমি মোটেই বোঝাতে চাইছি না এবং ফাইলটি আক্ষরিক অর্থে শুরু না হওয়ায় কোনও কিছুই সম্পূর্ণ করে না $

আমি কীভাবে কম ভাঙা আচরণে ফিরে আসতে পারি?

set আমাকে জানায় এগুলি আমার বর্তমান সেটিংস:

BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor

2
আপনি যদি এই বাগ দ্বারা আক্রান্ত হন তবে দয়া করে নীচের ইউআরএল (লগইন প্রয়োজন) এর অধীনে ভোটদান বিবেচনা করুন: bugs.launchpad.net/ubuntu/+source/bash/+bug/778627/…
ক্রাইপটন

উত্তর:


36

আমি খুঁজে পেয়েছি যে বাশ সংস্করণগুলি> = 4.2.29 এ একটি নতুন শপdirexpand সেটিংস রয়েছে। (দেখুন man docs/bash.1আপনি নতুন ব্যাশ পরীক্ষা করে দেখুন, বা 8951 লাইন থেকে ব্যাশ 1 দেখুন )

যদি কেউ কোয়ান্টাল কোয়েটজল १२.১০ ব্যবহার করে বা অন্যথায় একটি নতুন বাশ ধরে (বা চেক আউট করে এবং তৈরি করে) পায় তবে:

shopt -s direxpand

আমার যে আচরণটি, প্রয়োজন এবং ভালবাসা তা আমাকে দেয়।

কার্যকারণ: ইতিমধ্যে, Ctrl+ Alt+ এর Eপরিবর্তে Tabআমি যা চাই তা করি। তবে বিশ্রী।

বিটিডাব্লু, "ব্যাশ ট্যাব ভেরিয়েবল এক্সপেনশন প্রশ্ন" নামে বেশ কয়েকটি থ্রেড রয়েছে? মধ্যে gnu.bash.bug । সেগুলি পড়া থেকে, আমি এখানে তথ্য পেয়েছি।


2
ডাইরেক্টস্প্যান্ড সহ বাশের একটি সংস্করণ যথার্থ (12.04) এ প্রবেশ করছে: দেখুন বাগস.লাঞ্চপ্যাড.এন.বাগস
7786262627

7
আমার বিশাল পথটি প্রসারিত না করা এবং সম্পূর্ণরূপে একটি অব্যাহত ভেরিয়েবল ব্যবহার চালিয়ে যেতে পারলে আরও ভাল হত।
jozxyqk

@ জোজকুইক্ক আপনি কখনই সেই নথ-পাথ-সম্প্রসারণ বৈশিষ্ট্যটি পাওয়ার কোনও উপায় খুঁজে পেয়েছেন?
Ungeheuer

@ উঞ্জিউয়ার আমি বর্তমানে 4.4.19উবুন্টু ১৮.০৪-তে বাশ ব্যবহার করছি এবং এটি কেবল কার্যকর। কখন এটি পরিবর্তন হয়েছিল তা নিশ্চিত নয়।
jozxyqk

2

_filedir()শীর্ষ স্তরের bash_completion স্ক্রিপ্টে অনুসন্ধান করুন এবং লাইনটি পরিবর্তন করুন

compopt -o filenames 2>/dev/null

থেকে

compopt -o filenames -o noquote 2>/dev/null

12.04 জিএনইউ বাশ-এ, সংস্করণ 4.2.25 এ এই পরামর্শটি ত্রুটি দেয়:compopt: noquote: invalid option name
আরিফেল

1

12.04 জনের সাথে (আমার মতো) যারা $ পিডাব্লুডির পরিবর্তে ~ + ব্যবহার করতে পারেন ...

উদাহরণ স্বরূপ :

cd /bin
echo ~+/ls
/bin/ls

1

এমনকি আপডেট হওয়া বাশ দিয়েও আমি খুঁজে পেয়েছি যে $পালিয়ে গেছে।

  • bash-completion (1:2.1-3.fc20)প্যাকেজ সরানো হচ্ছে
  • বা কেবল সোর্সিং না /etc/bashrcথেকে ~/.bashrcএটি ঠিক করা মনে হয়েছিল।

আমার সন্দেহ হয় আমি এখন এমন কিছু বৈশিষ্ট্যগুলি মিস করব যা আমি সাধারণত ব্যবহার করি তবে এখনও সেগুলি লক্ষ্য করি নি।


বিকল্প (কমপক্ষে ফেডোরার 26 এর জন্য), export BASH_COMPLETION_VERSINFO=0সোর্সিংয়ের আগে যুক্ত করুন /etc/bashrc। এটি সমস্যাযুক্ত স্ক্রিপ্টটিকে ভাবতে সহায়তা করে যে এটি ইতিমধ্যে উত্সাহিত হয়েছে।



0

শেল বিকল্পটি 'সম্পূর্ণ_পুর্ণকোট' অক্ষম করা কাজটি করে:

shopt -u complete_fullquote

$ শপ্ট -ইউ সম্পূর্ণ_ফুলকোটা -বাশ: শপট: সম্পূর্ণ_ফুলকোট: অবৈধ শেল বিকল্পের নাম
অ্যানটন গোরেভ

0
shopt -u progcomp

এটি আমার জন্য এটি স্থির করেছে, এটি অনেকগুলি "বুদ্ধিমান" সমাপ্তির বিকল্পগুলিও সরিয়ে নিয়েছে যা আমি জানি যে ফাইলগুলি সম্পূর্ণ না করেই আমি সেখানে পেয়েছি কারণ বোকা জিনিস মনে করে যে আমি তাদের কোনও বিশেষ যুক্তি হিসাবে চাই না কমান্ড। ARRRGH

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