বাশের মেটা কী কী?


16

আমি ব্যবহার করার চেষ্টা xmodmapম্যাপ META_Lথেকে MENUচাবি কিন্তু এটি দ্বারা গ্রহণ করা বলে মনে হচ্ছে না bashমেটা কী-এর মত। সুতরাং, আমি ভাবছি যে কীভাবে এই উপাদানগুলি (কীবোর্ড, এক্স, এক্সটারম, বাশ) মেটা- এবং সুপার-কীগুলির ক্ষেত্রে প্রতিটিটির সাথে সম্পর্কিত। কোন ব্যাখ্যা প্রশংসা হবে।

আমাকে এই অন্যভাবে রাখা যাক। বাশ ম্যান পৃষ্ঠাটি উদাহরণস্বরূপ বলেছে যে ফাংশনটি ইয়ঙ্ক-নথ-আরগের সাথে আবদ্ধ M-C-yএবং আমি টিপলে এটি কাজ করে Esc-Control-y। তবে আমি এটি কিছুটা কষ্টকর মনে করি। সুতরাং আমি কীভাবে বাশাকে তার সমস্ত ডিফল্ট বাইন্ডিংয়ের Meta( Menuযেমনটির) মতো অন্য কী গ্রহণ করতে পারি ?


আপনার MENUকী কি X দ্বারাও লক্ষ্য করা গেছে? আপনি কী উইন্ডো ম্যানেজার ব্যবহার করছেন - এর মধ্যে কয়েকটি আপনার কীগুলি পুনরায় সংজ্ঞায়িত করতে সহায়তা করতে পারে।
চোরোবা

উত্তর:


11

মত সংশোধনকারীদের কীবোর্ড কী থেকে ম্যাপিং Metaএবং Controlএক্স সার্ভার (অর্থাত GUI এর নিম্ন স্তরের অংশ) দ্বারা পরিচালিত হয়। এই ম্যাপিংটি পুরাতন স্টাইলের xmodmapকমান্ড বা নতুন-স্টাইলের এক্সকেবি ইন্টারফেসের মাধ্যমে বা একটি জিইউআই কনফিগারেশন সরঞ্জামের মাধ্যমে ব্যবহার করা যেতে পারে যা হুডের নীচে এর একটি ব্যবহার করে।

ডিফল্টরূপে, বেশিরভাগ সেটআপে, Metaকীটি হ'ল লেবেলযুক্ত Alt। এটি কারণ historতিহাসিকভাবে, অনেকগুলি ইউনিক্স ওয়ার্কস্টেশনে একটি কী লেবেলযুক্ত ছিল Metaযেখানে পিসিগুলির কী লেবেল রয়েছে Alt। সুতরাং আপনার কাছে যদি কোন বাধ্যবাধকতা থাকে তবে + + M-C-yটিপুন ।CtrlAltY

আপনার বর্তমান বাইন্ডিংগুলি কী তা পরীক্ষা করতে, xevটার্মিনালে প্রোগ্রামটি শুরু করুন । Xev উইন্ডোটি কেন্দ্র করে, কীগুলি টিপুন; আপনি টার্মিনালে উত্পন্ন ইভেন্টগুলির একটি প্রতিলিপি দেখতে পাবেন।

টার্মিনাল এমুলেটর (বা একটি শারীরিক টার্মিনালের সাথে সম্পর্কিত টার্মিনাল ডিভাইস) এবং অ্যাপ্লিকেশনগুলির মধ্যে যোগাযোগ অক্ষর ব্যবহার করে। আপনি টিপলে A, টার্মিনালটি " Aকী, কোনও সংশোধক নয়" তথ্য পায় তবে এটি টার্মিনালে চলমান অ্যাপ্লিকেশনটিতে যা প্রেরণ করে তা হ'ল চরিত্রটি a। আপনি যখন কোনও ফাংশন কী টিপেন Upবা F1এর মতো কোনও চরিত্র নেই; টার্মিনালটি পালানোর অক্ষর দিয়ে শুরু করে একটি অক্ষর ক্রম প্রেরণ করে (27 বাইট, কখনও কখনও লিখিত \eবা ^[)। যখন এক্সটার্মের মতো একটি টার্মিনাল এমুলেটর সংশোধকটির সাথে একটি মূল প্রেস ইভেন্ট পেয়ে Metaথাকে, \eaতখন আপনি Meta+ টিপলে কীটিটির মূল অন্তর্নিহিত ফাংশন, যেমন (পলায়ন, ছোট হাতের ক) দ্বারা চালিত অক্ষরের সাথে সেই কীটি অনুবাদ করে A

'টার্মিনাল', 'শেল', 'টিটি' এবং 'কনসোল' এর মধ্যে ঠিক পার্থক্য কী? দরকারী পটভূমি হতে পারে।


5

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

দয়া করে মনে রাখবেন যে সমস্ত ইভেন্ট এক্সটার্ম দ্বারা সরাসরি বাইটগুলিতে অনুবাদ করা হয় না। উদাহরণস্বরূপ, Ctrlএবং shiftকীগুলি নিজেরাই এক্স কীবোর্ড ইভেন্ট উত্পন্ন করে তবে এক্সটার্ম এর মধ্যে চলমান শেলটি (বা অন্যান্য অ্যাপ্লিকেশন) তে কিছুই পাঠায় না । এর মধ্যে Metaকীটি নিজে থেকে অন্তর্ভুক্ত রয়েছে তবে কীটি নয় Menu। তবে টিপে উত্পন্ন ইভেন্টটি Meta- eএক্সটির্মটি XTerm.VT100.metaSendsEcreen রিসোর্স সেটিং এর উপর নির্ভর করে বাইট 0xE5 বা টু-বাইট সিকোয়েন্স 0x1B 0x65 প্রেরণ করবে।


2

বাশের মেটা কীটি মূলত এইভাবে সংজ্ঞায়িত হয়েছিল ( lib/readline/ChangeLog):

Mon Jul 13 11:34:07 1992  Brian Fox  (bfox@cubit)
        * readline.c: (rl_variable_bind) New variable "meta-flag" if "on"
        means force the use of the 8th bit as Meta bit.  Internal variable
        is called meta_flag.

এটি ncurses এবং xterm দ্বারা ব্যাখ্যা করার উপায় হতে পারে । একটি কয়েক এই বৈশিষ্ট্যটি ঐচ্ছিক তৈরীর জন্য উপলব্ধ টার্মিনাল (যে দৃষ্টিভঙ্গি ব্যাপক ছিল না টার্মিনাল অধিকাংশই আপনি ব্যবহার হার্ডকোডেড আচরণ (এবং খুব আকর্ষণীয় নয়) সম্মুখীন হবে।। Terminfo ম্যানুয়েল পৃষ্ঠা নথি এই টার্মিনাল ক্ষমতা:

   has_meta_key              km     km   Has a meta key
                                         (i.e., sets 8th-bit)
   meta_off                  rmm    mo   turn off meta mode
   meta_on                   smm    mm   turn on meta mode
                                         (8th-bit on)

এবং বৈশিষ্ট্য ব্যাখ্যা:

যদি টার্মিনালে কোনও "মেটা কী" থাকে যা কোনও শিফট কী হিসাবে কাজ করে, যে কোনও চরিত্রের 8 ম বিটকে সংক্রমণ করে সেট করে, এই সত্যটি দিয়ে ইঙ্গিত দেওয়া যেতে পারে km। অন্যথায়, সফ্টওয়্যার ধরে নিবে যে 8 তম বিট সমতা এবং এটি সাধারণত সাফ হয়ে যায়। যদি এই "মেটা মোড" চালু এবং বন্ধ করার জন্য স্ট্রিংগুলি উপস্থিত থাকে, সেগুলি smmএবং হিসাবে দেওয়া যেতে পারে rmm

একটি ভিন্ন বৈশিষ্ট্য, Altকীটির প্রতিক্রিয়া হিসাবে একটি পালানোর চরিত্রের উপসর্গ করা কিছু টার্মিনাল এমুলেটরগুলিতে সংযুক্ত করা হয়েছিল। বাশ (আসলে readlineগ্রন্থাগার) নথিগুলি যা 2004 থেকে তার চেঞ্জলগে ব্যবহার করে :

lib/readline/callback.c            
        - use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
          simulate the recursion used to decode multicharacter key sequences
          (even things like ESC- as meta-prefix

মেটা একটি সংশোধক কী এর একটি বিশেষ কেস । লাইক controlএবং shift, আপনি এটি অন্য কী হিসাবে একই সময়ে টিপুন এবং নিজে থেকে কীটি টিপানো থেকে আলাদা কিছু দেখার প্রত্যাশা করছেন। এক্স কী এর জন্য এক্স ইভেন্টের সাথে পাস হওয়া সংশোধক মানটিতে কিছুটা নির্ধারণ করে সংশোধক কী সরবরাহ করে। কী প্রেসগুলি একাধিক এক্স ইভেন্ট হতে পারে; এক্স সংশোধনকারীদের ধরে রাখার সময় এই ইভেন্টগুলিকে একত্রিত করার জন্য ফাংশন সরবরাহ করে।

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

তবে "মেটা" একটি বিশেষ কেস।

metaকনভেনশন বাদে এক্স অ্যাপ্লিকেশনগুলির কোনও কী নেই । মেটা কী বা মেটা সংশোধকটির জন্য এক্সের কোনও সংজ্ঞা নেই। প্রচলিতভাবে, টার্মিনালগুলি-কী Altএবং / অথবা যে কোনও একটি সংশোধক হিসাবে সন্ধান করে xmodmap, যেমন mod2,। পরবর্তী এক্সকেবি বৈশিষ্ট্যটি Altকীটি খুঁজে পেতে তথ্যের আরও একটি স্তর সরবরাহ করে বিষয়গুলিকে জটিল করে তোলে (তবে এই আলোচনার তুলনায় কোনও উন্নতি সরবরাহ করে না) ।

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

xterm এর বেশ কয়েকটি রিসোর্স সেটিংস রয়েছে ( ম্যানুয়াল পৃষ্ঠায় ডকুমেন্টেড ):

  • altIsNotMetaএবং altSendsEscape( 2007 এ যুক্ত )।
  • eightBitInputযেহেতু 2006 মেটা মোডের মূল অনুভূতি অনুরূপ, এবং সেখানে একটি পালাবার ক্রম এই যা প্রদান করে সংজ্ঞায়িত smmএবং rmm(সেট / Remove মেটা-মোড) টার্মিনাল ক্ষমতা।
  • eightBitInput2003 সালে ইউটিএফ -8 কে কাঁচা ইনপুট বাইটের পরিবর্তে ডিকোডড ইউনিকোড মানগুলি 128 দ্বারা স্থানান্তরিত করে অ্যাকাউন্টে গ্রহণের জন্য সংশোধন করা হয়েছিল ।
  • metaSendsEscape1999 থেকে তারিখগুলি
  • eightBitInputএর চেয়ে অনেক পুরনো metaSendsEscape। এটি মেটা মোড (অষ্টম বিট যুক্ত) বা escapeX11R4 (1989) সাল থেকে একটি কী উপসর্গের মধ্যে একটি বিকল্প প্রয়োগ করেছে । তবে বৈশিষ্ট্যটি শুরুতে নির্ধারণ করা হয়েছিল: ইনপুটটি 8 টি বিটের অনুমতি দেওয়ার জন্য সেট করা হয়েছিল কিনা তা নির্ধারণের জন্য এটি শুরু করার সময় যাচাই করা হয়েছিল বা কেবল 7. এটির পরে, এটি পরিবর্তন হয়নি।

কিছু লোক দুটি ( 8 তম-বিট এবং এস্কেপ-উপসর্গ) সমান করে , যাকে পরেরটিকে মেটা মোড হিসাবে উল্লেখ করে। বিষয়টি আপনার দৃষ্টিভঙ্গির উপর নির্ভর করে eightBitInputএক্সটার্মের রিসোর্স সেটিংটি একটি কার্যকর অযোগ্য মেটা-কী পাওয়ার সমাধানের অংশ।

আরও পড়া:

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