Alt + অ্যারো কীগুলি টিপলে অক্ষরগুলি কী মুদ্রিত হয়?


13

আমি টিপলে AltUp, Aটার্মিনাল স্ক্রিনে মুদ্রিত। আমি টিপলে একই জিনিস ঘটেছিল AltDownতবে Bপরিবর্তে মুদ্রিত হয়।

অন্যান্য চরিত্রগুলি যা আমি বুঝতে পেরেছি;

AltLeft= Dএবং AltRight=C

এই আদেশগুলির উদ্দেশ্য কী?

উত্তর:


14

কিভাবে টার্মিনাল কনফিগার করা উপর নির্ভর করে, টাইপিং Alt+Keyটাইপ মত হল Escএবং Keyতাই এটি চট্টগ্রাম সিটি কর্পোরেশন চরিত্র (ওরফে পাঠায়, ক্রমানুসারে কী \eবা ^[বা \033) অক্ষর বা যে টিপে উপর পাঠিয়ে অক্ষরের ক্রম দ্বারা অনুসরণ Key

চাপ দেওয়ার পরে Up, বেশিরভাগ টার্মিনাল এমুলেটরগুলি তিনটি অক্ষর প্রেরণ করে \033[Aবা \033OAতারা অ্যাপ্লিকেশন কীপ্যাড মোডে রয়েছে কিনা তা নির্ভর করে send

প্রথমটি পলায়ন ক্রমের সাথে সামঞ্জস্য করে যা টার্মিনালে আউটপুট এলে কার্সারটিকে উপরে সরিয়ে দেয়। যদি তুমি করো:

printf '\nfoo\033[Abar\n\n'

আপনি এক সারি আপ barপরে লিখিত দেখতে পাবেন foo। যদি তুমি করো:

stty -echoctl; tput rmkx; read foo

আপনি দেখতে পাবেন যে তীর কীগুলি কার্সারটিকে প্রায় ঘুরিয়ে দেয়।

যখন কোনও অ্যাপ্লিকেশন টার্মিনাল থেকে অক্ষরের ক্রমিক পছন্দ করে zshবা viপড়ে, এটি এটিকে "আপ" ক্রিয়া হিসাবে ব্যাখ্যা করে, কারণ এটি টার্মিনো ডাটাবেস ( kcuu1দক্ষতা) থেকে জানে যে এটি চাপানোর পরে প্রেরণ করা ক্রম Up

এখন, জন্য Alt-Up, মত কিছু টার্মিনাল rxvtমত তার ডেরাইভেটিভস etermপাঠান \033পলায়নের ক্রম দ্বারা অনুসরণ Up(যে \033\033[Aবা \033\033OA), এবং মত কিছু অন্যদের xtermবা gnome-terminalকী যারা ধরনের জন্য পৃথক পালাবার ক্রম যখন মত সমন্বয় কী এর মাধ্যমে ব্যবহার করা আছে Alt, Shift, Ctrl

ঐ সাধারণত পাঠাব \033[1;3Aউপর Alt-Up

টার্মিনালে প্রেরণ করা হলে, এই ক্রমটি কার্সারটিকে উপরে সরিয়ে দেয় (দ্বিতীয় প্যারামিটার (3) উপেক্ষা করা হবে)। কোনও সম্পর্কিত কিপ্যাড কী নেই, সুতরাং এটি অ্যাপ্লিকেশন কীপ্যাড মোডেAlt-Up বা বাইরে পাঠানো একই ক্রম ।

এখন তা হোক \033\033[Aবা না \033[1;3A, অনেকগুলি অ্যাপ্লিকেশন জানে না যে এই সিকোয়েন্সগুলি কী। টার্মিনো ডাটাবেস তাদের সাহায্য করবে না, কারণ এমন কোনও সামর্থ্য নেই যা এই কী সংমিশ্রণগুলি কী কী অক্ষর প্রেরণ করে তা নির্ধারণ করে।

তারা এই ক্রমটি ব্যাখ্যা করার জন্য যথাসাধ্য চেষ্টা করবে। bashউদাহরণস্বরূপ \033[1;3একটি পালানোর ক্রম হিসাবে ব্যাখ্যা করবে , এটি সম্পর্কে কিছুই জানে না, তাই কিছুই অনুসরণ করে না Azsh, কোনও পরিচিত ম্যাচিং চরিত্রের ক্রম নেই তা খুঁজে পাওয়া মাত্রই পড়া বন্ধ করবে। কোনও পালানোর ক্রম নেই যে এটি জানে যে এটি দিয়ে শুরু হয় \033[1তাই এটি এড়িয়ে যাবে এবং বাকীটি পড়বে: ;3Aএবং লাইন সম্পাদকটিতে এটি সন্নিবেশ করান।

মত অনেক অ্যাপ্লিকেশন vi, zshবা readlineমত ভিত্তিক বেশী gdbবা bash(যদিও হুঁশিয়ার bashব্যবহার সম্পর্কে একটি পরিবর্তিত সংস্করণ readline) আপনি অক্ষরের কোনো ক্রম জন্য বাইন্ডিং যোগ করার জন্য অনুমতি দেয়।

উদাহরণস্বরূপ, মধ্যে zsh, আপনি বেঁধে যাওয়ার কথা ভাবতে পারেন Alt-Up, Alt-Downমত:

bindkey '\e[1;3A' history-beginning-search-backward
bindkey '\e[1;3B' history-beginning-search-forward

এগুলি হ'ল পিছনে এবং কমান্ড লাইনের জন্য ইতিহাস অনুসন্ধান করে যা কার্সারের বর্তমান অবস্থানের মতো বর্তমানের মতো শুরু হয় যা পূর্ববর্তী কমান্ডগুলি পুনরায় স্মরণ করতে বেশ কার্যকর।


3

আপনি আপনার কীবোর্ডের ইনপুট কোডগুলি ফেরত দিতে Crtl+ ব্যবহার করতে পারেন v। আপনি নির্দেশক তীরচিহ্নগুলি জন্য এটা করতে পারেন, আপনি পাবেন [[D^, [[C^, [[A^, এবং [[Bমান। Alt+ তীর কীগুলির জন্য কোনও ডিফল্ট বাইন্ডিং নেই , সুতরাং দেখে মনে হচ্ছে যে সম্পাদিত ক্রিয়াটি কেবলমাত্র চিঠি কোড মুদ্রণ করা। হুওওয়ার, আপনি যদি পঠন পাঠাগারটির লাইব্রেরি কনফিগারেশন ফাইলের স্থানীয় সংস্করণ তৈরি করেন:

$ cp /etc/inputrc ~/.inputrc

এবং একটি লাইন যুক্ত করুন:

"\e[1;3C": "sometexthere"

+ এর [1;3Cইনপুট কোডটি কোথায় (আপনি এটি + শর্টকাট ব্যবহারের আগের মতোই পেতে পারেন ) এবং আপনার টার্মিনালটি পুনরায় আরম্ভ করুন তারপরে + শর্টকাট আপনাকে "কিছুটা পাঠ্য" পাঠ্য ফিরিয়ে দেবে এবং অন্যান্য + তীর শর্টকাটগুলি অক্ষরগুলি ফিরে আসা বন্ধ করবে।AltCrtlvCrtlAlt

পরিবর্তে পাঠ্য আপনি http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html# বাইন্ডেবল- রিডলাইন- কম্যান্ডস এর মতো একটি বাইন্ডেবল কমান্ডটি পাস করতে পারেন

"\e[1;3C": unix-line-discard

Crtl+ u(লাইন মুছে ফেলুন) এর মতো একই প্রভাব রাখতে ।

এখানে আরও তথ্য: http://cnswww.cns.cwru.edu/php/chet/readline/readline.html


3

Altকী প্রায়ই একটি হিসাবে ব্যবহার করা হয় মেটা পরিবর্তক। কার্সার- এবং ফাংশন-কীগুলি বিশেষ কী হিসাবে উল্লেখ করা হয় যেহেতু তারা একাধিক অক্ষর প্রেরণ করতে পারে - এবং যে অক্ষরগুলি প্রেরণ করা হয় তাদের পরিবর্তন করা যেতে পারে।

কিছু ব্যবহারকারীর, উদাহরণস্বরূপ, bashআশা করা যায় যে Altটিপলে পালানো অক্ষর দ্বারা উপস্থাপিত একটি কী প্রেরণ করা হবে। নথিভুক্ত "মেটা" বৈশিষ্ট্যটি (দেখুন terminfo(5)) অষ্টম বিটের সাথে সম্পর্কিত:

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

bashএ সম্পর্কেও জানে ( এনক্রোএস এফএকিউ দেখুন ) তবে এর ব্যবহারকারীদের মধ্যে কয়েকজনই বৈশিষ্ট্যে আগ্রহী। তবুও, তারা Altমেটা মোড বন্ধ থাকলেও "মেটা" হিসাবে উল্লেখ করতে অভ্যস্ত । 1990 এর দশকের গোড়ার দিকে (কমপক্ষে) আরএক্সভিটি এবং এক্সটার্ম উভয়েরই এই বৈশিষ্ট্য রয়েছে।

অন্যান্য ব্যবহারকারীরা (যেহেতু প্যাচ # 94, 1999-xterm এ এই বৈশিষ্ট্যটি প্রবর্তন করেছেন ) তারা বিশেষ কী প্রেরণ করবে এমন অক্ষরের ক্রম অনুসারে সংশোধনকারী তথ্যটি প্যারামিটার হিসাবে এনকোড করার আশা করতে পারে। এক্সটির্মের ডকুমেন্টেশনগুলিতে "পিসি-স্টাইল" ফাংশন কী হিসাবে "VT220- স্টাইল" (যার কোনও সংশোধনকারী নেই) থেকে আলাদা করতে এই পরিবর্তিত কীগুলিকে উল্লেখ করেছে T একটি অপরিবর্তিত কার্সার কী পাঠাতে পারেন , কিন্তু এটি একটি আছে বৈধ পরামিতির , যেমন, যা একটি অ্যাপ্লিকেশন উচিত পুনরাবৃত্তি যে পাঁচবার যেমন বুঝতে। প্রথম সংস্করণ 'র পিসি-শৈলী কী ব্যবহৃত "5" বোঝাতেESC[AESC[5Axtermcontrol, এবং পরবর্তী সংস্করণ পুনরাবৃত্তি গণনার সাথে বিভ্রান্তি এড়াতে এটি পরিবর্তন করেছে। তাই ...

ESC[5A

প্রস্তাবিত হয় যে অ্যাপ্লিকেশনটি কার্সরটিকে 5 টি সারি উপরে সরিয়ে রাখবে, যখন

ESC[1;5A

প্রস্তাবিত হয় যে এটি একটি সারি উপরে চলে যায়, অ্যাপ্লিকেশনটিকে বলে যে একটি controlকী চাপানো হয়েছিল।

দরকারী সংমিশ্রণগুলি 2004 সাল থেকে ncurses টার্মিনো ডাটাবেসে রয়েছে :

# 2004-07-17
#       * add xterm-pc-fkeys -TD

টার্মিনোফো ডাটাবেসটি xterm + pcfkeys এর বর্তমান সংস্করণটি একটি মন্তব্যে দেখায় যে কীভাবে সংশোধনকারীদের এনকোড করা হয়েছে:

# This fragment describes as much of XFree86 xterm's "pc-style" function
# keys as will fit into terminfo's 60 function keys.
# From ctlseqs.ms:
#    Code     Modifiers
#  ---------------------------------
#     2       Shift
#     3       Alt
#     4       Shift + Alt
#     5       Control
#     6       Shift + Control
#     7       Alt + Control
#     8       Shift + Alt + Control
#  ---------------------------------
# The meta key may also be used as a modifier in this scheme, adding another
# bit to the parameter.

(অল্ট এবং মেটা অগত্যা একই কী নয়)। এটি একটি বিল্ডিং ব্লক (পরিবর্তে অন্যান্য বিল্ডিং ব্লকের সমন্বয়ে গঠিত) যা থেকে xtermটার্মিনাল বিবরণটি গঠিত হয়। এটি ১৯৯৯ সাল থেকে এনসিউর্সে প্রদত্ত একটি এক্সটেনশন ব্যবহার করে যা ব্যবহারকারী-সংজ্ঞায়িত নামগুলিকে অনুমতি দেয়। যেহেতু টার্মক্যাপ কেবল 2-অক্ষরের নাম এবং 1023-বাইট বিবরণ সমর্থন করে, তাই টার্মক্যাপ ইন্টারফেসের মাধ্যমে এই বর্ধিত নামগুলি উপলব্ধ করার কোনও কারণ ছিল না । তারা টার্মিনো ইন্টারফেস ব্যবহার করে অ্যাপ্লিকেশনগুলিতে সহজেই উপলব্ধ ।

এখন একটি অসুবিধা আসে: অ্যাপ্লিকেশনটির জন্য কয়েকটি উপায় রয়েছে যা নির্ধারণ করতে পারে যে এর মতো কী কী অনুক্রমটি প্রতিনিধিত্ব করে:

  1. অক্ষরের ক্রম সম্পূর্ণ বিশ্লেষণ করুন
  2. আংশিকভাবে এটি বিশ্লেষণ করুন এবং controlপ্রয়োজন না হলে সংশোধকটি ফেলে দিন
  3. অর্থটি সেইভাবে নির্ধারণ করার আশায় কেবল অভিধানের তুলনায় অক্ষরের ক্রমটি তুলনা করুন।

কয়েকটি প্রোগ্রাম প্রথম করবে; কিছু টেক্সট সম্পাদক দ্বিতীয় (আসলে, আমি মতই কাজ করতেন এই জন্য dedযে 1980 )। অ্যাপ্লিকেশনগুলির জন্য বিকাশকারীগণ যেমন bashবেশিরভাগ তথ্য টার্মক্যাপে রয়েছে তা ধরে নিয়ে তৃতীয় রুটটি বেছে নিয়েছে । বিকল্পভাবে, তারা টার্মক্যাপ / টার্মিনো তথ্য সহ একটি টেবিল তৈরি করতে এবং ইন্টারফেসটি যে সর্বোত্তম তথ্য দেয় তা ব্যবহার করতে পারে। আসল ফাংশন কী অ্যাসাইনমেন্টগুলি সরবরাহ xtermকরে tcap- কোয়েরি বৈশিষ্ট্যটির জন্য এটি করে vim

যে কোনও স্ট্রিং তার bashসাথে যে স্ট্রিংগুলি মেলে তার সাথে তুলনা করে না, এটি বিভ্রান্ত হতে পারে, আংশিক ম্যাচের জন্য নিষ্পত্তি করতে পারে (যেমন নিজে থেকে পালানোর চরিত্র)।

আরও পড়া:

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