এমন কি কোনও লিনাক্স টার্মিনাল রয়েছে যা সমস্ত কী সংমিশ্রণ পরিচালনা করতে পারে?


11

আমি টার্মিনাল মোডে ইম্যাক্স ব্যবহার করতে চাই ( -nw), তবে এটি বেশিরভাগ (সমস্ত?) টার্মিনালগুলি কিছু কী সমন্বয় পরিচালনা করতে পারে না - উদাহরণস্বরূপ, C-<RET>বা C-M-%। আমি জানি এটি কারণ, বেশিরভাগ টার্মিনালগুলি একটি ভিটি -100 অনুকরণ করে, যার মধ্যে এই সমন্বয়গুলি ছিল না। এখানে কি কোনও লিনাক্স টার্মিনাল রয়েছে (পছন্দসই কেডি) যা এই কী সংমিশ্রণগুলি পরিচালনা করতে পারে, বা এটি সমস্ত টার্মিনালের মৌলিক সীমাবদ্ধতা?

উত্তর:


15

আপনি যখন কোনও টার্মিনালে কোনও কী বা কী সংমিশ্রণটি টিপেন, এটি এক বা একাধিক অক্ষরের ক্রম হিসাবে টার্মিনালে চলমান অ্যাপ্লিকেশনটিতে সঞ্চারিত হয়। উদাহরণস্বরূপ, আপনি টিপলে a, অ্যাপ্লিকেশনটি গ্রহণ করে a। আপনি যখন টিপেন Enter, অ্যাপ্লিকেশনটি অক্ষর CR(ওরফে ^M(উচ্চারণ "নিয়ন্ত্রণ-ইমএম"), ওরফে অক্ষরের নম্বর 13, ওরফে \rবা প্রাপ্ত করে \015। জড়িত কী সংমিশ্রণগুলি Altসাধারণত অক্ষর হিসাবে প্রেরণ করা হয় ESC(a.ka. ^[ওরফে \eবা \033) এর পরে কী বা কী সংমিশ্রণের জন্য ক্রম অনুসরণ করে Alt। ফাংশন কী এবং অন্যান্য কী সংমিশ্রণগুলি এসকেপ সিকোয়েন্সগুলি হিসাবে \e[বা এর শুরু দিয়ে প্রেরণ করা হয় \eO

এস্কেপস সিকোয়েন্সগুলি পুরোপুরি মানসম্পন্ন নয় এবং টার্মিনালগুলি নির্দিষ্ট কিছু কীগুলির জন্য নির্দিষ্ট বৈশিষ্ট্যগুলি সাধারণত উপেক্ষা করে। উদাহরণস্বরূপ, প্রায়শই Ctrl+ Shift+ ডিফল্টরূপে letterহুবহু Ctrl+ এর মতোই প্রেরণ letterকরা হয়।

তুমি তোমার টার্মিনাল দ্বারা প্রেস একটি কী সমন্বয় জন্য প্রেরণ করে তা দেখতে পারেন Ctrl+ + Vএকটি শেল যা কী সমন্বয় দ্বারা অনুসরণ প্রম্পট, বা C-qবা C-h cএ গিয়ে Emacs মধ্যে কী সমন্বয় করে।

কিছু টার্মিনাল এমুলেটর দিয়ে আপনি প্রতিটি কী-র জন্য এস্কেপ সিকোয়েন্সগুলি কনফিগার করতে পারেন। এক্সটারেমে এটি এক্স সংস্থার মাধ্যমে করা হয় । সর্বাধিক স্থাপনার সম্পদ আছে পড়া ~/.Xresourcesযখন এক্স হয়ে পড়েন এবং আপনার সাথে নিজে ফাইল লোড করতে পারেন xrdb -merge ~/.Xresources

Term.VT100.translations:       #override \n\
    Ctrl ~Shift ~Meta <key>Return: string("\033[73;5~") \n\
    Ctrl Shift ~Meta <key>percent: string("\033[37;6~")

একটি সাধারণ কনভেনশন ESC [ number1 ; number2 ~মোডিফায়ারগুলির সাথে ফাংশন কীগুলির জন্য ফর্মের পালানোর ক্রমগুলি ব্যবহার করে । number1ইঙ্গিত ফাংশন কী ( 15থেকে 24জন্য F5করতে F12- ঐতিহাসিক কারণে, ফর্মুলা 1 মাধ্যমে F4বিভিন্ন পালাবার ক্রম আছে) এবং number2পরিবর্তক ইঙ্গিত ( 2জন্য Shift, 3জন্য Meta, 5জন্য Ctrl, 7জন্য Ctrl+ + Meta, এবং 1 যোগ Shiftঅন্তত এক সঙ্গে Ctrlঅথবা Meta)।

ইমাক্স তার মাধ্যমে input-decode-mapবাlocal-function-key-map (অথবা function-key-mapইমাক্স 23 এর আগে) এর অভ্যন্তরীণ কী উপস্থাপনায় পালানোর ক্রমগুলি অনুবাদ করে ।

(define-key local-function-key-map "\033[73;5~" [(control return)])
(define-key local-function-key-map "\033[37;6~" [(control ?L)])

সুতরাং, আমি যদি এটি সঠিকভাবে বুঝতে পারি তবে আমার টার্মিনালে প্রথমে একটি পালানোর ক্রমটি সংজ্ঞায়িত করতে হবে যা কিছু কী সংমিশ্রনের সাথে মিলে যায়। তারপরে, ইম্যাক্সে, আমাকে কী সংমিশ্রণে পালানোর ক্রমটি ম্যাপ করতে হবে। পালানোর ক্রমটি কি নির্বিচারে হতে পারে, যতক্ষণ না এটি সংজ্ঞায়িতদের সাথে বিরোধ না করে infocmp $TERM?
ইওসোরিয়ান

2
@ ইয়াসোরিয়ান হ্যাঁ দ্বন্দ্ব না করার পাশাপাশি, পালানোর ক্রমগুলি দ্ব্যর্থহীন হওয়া দরকার, অর্থাত্ কোনও পালানোর অনুক্রমগুলি অন্য কোনওটির উপসর্গ হওয়া উচিত নয়। এটি অনুশীলনের অর্থ হ'ল প্রথম চরিত্রটি হতে হবে ESC(আপনি যদি না কিছু অক্ষর -128 চেষ্টা করতে চান তবে এটি সম্ভাব্য ইনপুট এনকোডিংগুলিকে সীমাবদ্ধ করে রাখবে) এবং দ্বিতীয় চরিত্রটি এমন কিছু হতে হবে যার জন্য আপনি কোনও ESC fooবাঁধাই করতে চান না ।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

আপনার পরামর্শ অনুসারে চেষ্টা করতে পেরেছি। করা উচিত local-set-keyআসলে হতে define-key? পূর্ববর্তীটি একটি ত্রুটি দেয় (যুক্তিগুলির ভুল সংখ্যা), তবে শেষেরটি কমপক্ষে <kbd> সি-এন্টার </ বি কেবিডি> এর জন্য কাজ করে। মনে হচ্ছে কনসোলের এখনও <kbd> সিএম-% </ কেবিডি> প্রেরণে সমস্যা রয়েছে।
ইয়াসোরিয়ান

@ যোসরিয়ান আসলে এটি হওয়া উচিত define-key। আমি জানি না কনসোলের পালানোর কীগুলি কনফিগার করা যায় কিনা, এক্সটার্ম সম্ভবত কোনও বিকল্পের চেয়ে আরও কাস্টমাইজযোগ্য।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'

1
নোট করুন যে টমাস ডিকির এক্সটারম সক্রিয় বিকাশের অধীনে রয়েছে। সঙ্গে XTerm*modifyOtherKeys: 2রিসোর্স এটা এমনকি জন্য অনন্য সিকোয়েন্স উত্পন্ন করবে C-M-সমন্বয়, কিন্তু যে সেটিং সঙ্গে আপনি কাস্টম ম্যাপিং অনেক প্রদান করতে হবে ( XTerm*modifyOtherKeys: 1কম সক্ষম কিন্তু বাক্সের অনেক বেশী কার্যকরী বাইরে)। উদাহরণস্বরূপ (যদিও এটি আমার পক্ষে কাজ করে নি) এটি xterm-extras.elলাইব্রেরি এবং সম্পর্কিত .Xresourcesএবং ইজিম্যাকস ডাউনলোডগুলিতে .inputrcফাইলগুলি দেখুন ।
ফিল্ডস

1

কে-ডি-এর কনসোল ধরে নিলে সীমিত তবে উল্লেখযোগ্য কীগুলির জন্য ইমাস-এনডব্লিউ-তে জটিল কী-বাইন্ডিংগুলি ব্যবহার করার জন্য নিম্নলিখিতটি করতে পারে:

আমি S-<RET>উদাহরণ হিসাবে কাজ করার জন্য আমার বাস্তবায়নটি ব্যবহার করব :

  1. একটি নতুন কনসোল খুলুন, সেটিংস -> বর্তমান প্রোফাইল -> কীবোর্ড -> সম্পাদনে যান
  2. অ্যাড হিট করুন এবং এর জন্য একটি নতুন এন্ট্রি করুন Return+Shiftএবং এটিকে একটি দরকারী কী সিকোয়েন্স দিন (আমি বেছে নিয়েছিলাম \E[27;3যা আমি মনে করি যে আমি এক্সের মাধ্যমে প্রেরণ করার সময় এক্স প্রেরিত মূল অনুক্রম ছিল, তবে এটি ভুল হতে পারে - করণীয়টি গুরুত্বপূর্ণ কাজটি হ'ল নিশ্চিত হয়ে নিন যে এটির যথাযথ পালাতে হবে এবং অন্য কোনও কিছুর সাথে দ্বন্দ্ব নেই)।
  3. এটি কাজ করছে তা নিশ্চিত করার জন্য নীচের অংশে সামান্য পরীক্ষার জায়গায় এটি খেলুন।
  4. কনসোল পুনরায় চালু করুন।
  5. শুরু করুন emacs -nwএবং স্ক্র্যাচ বাফার মূল্যায়ন:

    (read-key-sequence-vector "Type your new key:")

    তারপরে আপনার নতুন কী সংমিশ্রণটি টাইপ করুন।

    • আপনি যদি এটির সাথে অপরিচিত থাকেন তবে লাইনটি লিখুন, লাইনটির শেষে কার্সারটি ছেড়ে যান এবং সেই লাইনটি চালানোর জন্য ইমাস পেতে সিএক্স সিইতে চাপুন, আপনাকে উদ্ধৃতিতে যা কিছু দেওয়া হয়েছে তা আপনাকে বলা উচিত এবং আপনার জন্য অপেক্ষা করা উচিত কিছু লেখো.
  6. এটিতে একটি মূল ক্রম ছড়িয়ে দেওয়া উচিত যা আপনি আবদ্ধ করতে পারেন।
    ( কনসোল কী-বাইন্ডিংয়ের সাথে আমি গোলযোগ করার আগে [27 91 50 55 59 51]এটি বোরিং [13]পুরানোটির বিপরীতে আমার কাছে ফিরে এসেছিল ))

  7. আপনার ইমাস কনফিগারেশনে যুক্ত করুন:

    (define-key function-key-map [27 91 50 55 59 51] [(shift return)])
    
  8. আমি এটি emacs -nwব্যবহার করে একটি স্ক্রিন সেশনে এটি পরীক্ষা করেছি :

    (define-key ess-mode-map [(shift return)] #'ess-eval-line-and-step)
    (define-key sh-mode-map [(shift return)]  #'send-line-to-shell)
    

0

সংক্ষিপ্ত উত্তরটি হ'ল এটি সমস্ত টার্মিনালের একটি মৌলিক সীমাবদ্ধতা।

সামান্য দীর্ঘ উত্তরটি হ'ল যদি কেউ কোনও টার্মিনাল তৈরি করে যা আপনি যা চান তা করে, ইমাক্স নিজেই এই হাইপোথেটিকাল টার্মিনালটির সাথে কাজ করার জন্য বড় পরিবর্তনগুলি প্রয়োজন।


এটি ইম্যাক্স সম্পর্কে একটি ভাল বিষয়, এটি আমার কাছে ঘটেনি। আমার ধারণা আমি পরিবর্তে গুই ব্যবহার শুরু করব।
ইওসোরিয়ান

এটা যা আমি করি.
হুভুলাম

0

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

একটি উদাহরণ নটি: https://github.com/withoutboats/notty

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