এগুলি হ'ল আপনার প্রদত্ত কী টিপলে আপনার টার্মিনালের পাঠানো অক্ষরের ক্রম ences প্রতি সেফ বাশ বা রিডলাইনের সাথে কিছুই করার নেই, তবে আপনি যদি readline
কোনও প্রদত্ত কী প্রেসের উপর কিছু করার জন্য কনফিগার করতে চান তবে প্রদত্ত কী বা কী সংমিশ্রণগুলি অক্ষরগুলির ক্রমটি পাঠায় তা আপনি জানতে চাইবেন ।
আপনি Aকী a
টিপলে , সাধারণত টার্মিনালগুলি (0x61) অক্ষরটি প্রেরণ করে । আপনি টিপলে <Ctrl-I>
বা <Tab>
, তারপর সাধারণত পাঠাতে ^I
চরিত্র নামেও পরিচিত TAB
বা \t
(0x9)। বেশিরভাগ ফাংশন এবং নেভিগেশন কীগুলি অক্ষরের একটি ক্রম প্রেরণ করে যা ^[
(কন্ট্রোল- [) থেকে শুরু হয় ESC
বা \e
(0x1 বি, 033 অক্টাল) নামে পরিচিত , তবে সঠিক ক্রমটি টার্মিনালে পরিবর্তিত হয়।
কী বা কী সংমিশ্রণটি আপনার টার্মিনালের জন্য কী প্রেরণ করে তা চালানোর সেরা উপায় এবং এটি কী -বোর্ডে sed -n l
টাইপ করার পরে Enter। তারপরে আপনি এমন কিছু দেখতে পাবেন:
$ sed -n l
^[[1;5A
\033[1;5A$
প্রথম লাইনটি echo
টার্মিনাল ডিভাইস দ্বারা স্থানীয় টার্মিনাল দ্বারা সৃষ্ট হয় (এটি নির্ভরযোগ্য না কারণ টার্মিনাল ডিভাইস সেটিংস এটি প্রভাবিত করে)।
দ্বিতীয় লাইনটি আউটপুট হয় sed
। $
অন্তর্ভুক্ত করা হয় না করা, এটি শুধুমাত্র আপনাকে দেখাতে যেখানে লাইন শেষ হয় না।
সর্বোপরি তার মানে Ctrl-Up(যা আমি চাপা থাকেন) 6 অক্ষর পাঠাতে ESC
, [
, 1
, ;
, 5
এবং A
(0x1b 0x5b 0x31 0x3b 0x35 0x41)
terminfo
ডাটাবেসের টার্মিনাল একটি নম্বর (উপর ভিত্তি করে সাধারণ চাবি একটি সংখ্যা জন্য ক্রম একটি সংখ্যা রেকর্ড $TERM
মান)।
এই ক্ষেত্রে:
TERM=rxvt tput kdch1 | sed -n l
আপনি বলবেন কি পালাবার ক্রম দ্বারা পাঠাতে হবে rxvt
টিপে উপর Deleteকী।
আপনার বর্তমান টার্মিনালের সাথে প্রদত্ত ক্রমের সাথে কী কী সামঞ্জস্য করে তা আপনি এখানে দেখতে পারেন infocmp
(এখানে ncurses
ইনফোক্যাম্প ধরে নিচ্ছেন):
$ infocmp -L1 | grep -F '=\E[Z'
back_tab=\E[Z,
key_btab=\E[Z,
মূল সংমিশ্রণের মতো ডাটাবেসে Ctrl-Upসংশ্লিষ্ট এন্ট্রি নেই terminfo
, সুতরাং তারা কী প্রেরণ করে তা সন্ধানের জন্য, সংশ্লিষ্ট টার্মিনালের উত্স বা নথিপত্র পড়ুন বা sed -n l
উপরে বর্ণিত পদ্ধতিতে এটি ব্যবহার করে দেখুন।
bind -p
।