মুটগুলিতে "ক্লিয়ার প্রম্পট" রিবন্ডিং


9

ডিফল্টরূপে, কমান্ড প্রম্পটে ইন তথ্য প্রবেশ করার সময় mutt, ম্যানুয়ালটিতেCtrlg বর্ণিত হিসাবে আপনি প্রম্পটটি সাফ করতে পারেন :

N জি এন / একটি গর্ভপাত

আমি এই ফাংশনটির সাথে আবদ্ধ হওয়ার চেষ্টা করছি Escape। দুর্ভাগ্যবশত, abortপ্রাপ্তিসাধ্য ফাংশন তালিকাভুক্ত করা হয় না, হয় এ ম্যানুয়াল , বা উৎস

আমার এটিতে এটি ব্যবহার করার চেষ্টা করেছি .muttrc:

বাইন্ড এডিটর <esc> গর্ভপাত বন্ধ করুন

তবে এটি একটি ত্রুটি ছুড়ে ফেলে:

/ Home/jason/.mutt/muttrc, লাইন 143 এ ত্রুটি: গর্ভপাত: মানচিত্রে এ জাতীয় কোনও কার্য নেই

আমি একটি আলাদা মানচিত্র ব্যবহার করার চেষ্টা করেছি (এর মতো generic) এবং অন্যান্য কল্পিত ফাংশনগুলির সাথে পরীক্ষা করেছি, যেমন clearকোনও লাভ হয়নি।

আমি কীভাবে Escapeপ্রম্পট লাইনটি সাফ করতে বাঁধবো?


1
বাঁধা পালানো ভাল ধারণা নয় কারণ পালানোর চরিত্রটি (পালাতে চাপলে প্রেরণ করা) তীর, ডেল, এফ 1 এর মতো সমস্ত ফাংশন কী দ্বারা প্রেরিত পালনের ক্রমগুলির উপসর্গও হয় ...
স্টাফেন চ্যাজেলাস

এটি একটি ভাল বিষয় যা আমি বিবেচনা করি নি। এটি পরীক্ষা করে, আক্ষরিক পাঠানোর জন্য ^[এস্কেপকে দু'বার প্রেরণ করা দরকার যাতে এটি কোনও শোস্টপ্পার নাও হয় (যেভাবে যাইহোক এটি নির্ভর করে এমন কোনও বাঁধাই আমি ব্যবহার করি না)।
জেসনওয়ারিয়ান

Esc, Escদুটি ইসি অক্ষর প্রেরণ করবে। আপনি Escএকবার টিপুন এবং প্রায় এক সেকেন্ড অপেক্ষা করতে পারেন (অব্যাহতি ক্রমের বাকি জন্য অপেক্ষা করা ডিফল্ট সময়সীমা)।
স্টাফেন চেজেলাস

হ্যাঁ. প্রথমে আমাকে এটি কীভাবে আবদ্ধ করতে হবে তা সম্পর্কে কাজ করতে হবে :)
জেসনওয়ারিয়ান

উত্তর:


5

কী বাঁধাই দিয়ে এটি সম্ভব নয়। Ctrl-Gম্যাক্রো বা কী-বাইন্ডিং প্রসেসিংয়ের তুলনায় নিম্ন স্তরে মুটকে হার্ডকোড করা হয় ( mutt_getch()মুত্তের উত্স কোডে, মুত্তে থাকা সমস্ত ব্যবহারকারীর ইনপুটটির মূল অংশে যা ত্রুটি ফিরিয়ে দেয় ^G)।

macro editor \e '^G'

কাজ করবে না।

আপনি যা করতে পারেন ^Gতা টিপতে পাঠানোর জন্য আপনার টার্মিনালটি কনফিগার করাEscape

এক্সটার্ম সহ:

xterm -xrm 'XTerm.VT100.translations: #override <KeyPress> Escape: string(0x7)'

আপনি যদি ব্যবহার করছেন তবে আপনি এটি screenকরতেও পারেন

screen -X bindkey $'\e' stuff $'\a'

মুট কল করার পরে এটি পুনরুদ্ধার করার আগে (দুর্ভাগ্যক্রমে, মনে হচ্ছে না যে আপনি পর্দায় প্রতি স্ক্রিন উইন্ডো কী বাইন্ডিংগুলি রাখতে পারেন)। এছাড়াও, ইমেল বার্তাগুলির জন্য আপনার সম্পাদক যদি vi হয় তবে এটি কোনও সমস্যা হতে চলেছে।


উত্সাহিত: কারণ এটি প্রশ্নের উত্তর দেয় (যেমন, এটি সম্ভব নয়)। আপনি কি দয়া করে "হার্ডকোডযুক্ত ... নিম্ন স্তরে" বিস্তারিত বর্ণনা করতে পারেন? এবং কর্মক্ষেত্রটি বুদ্ধিমান হওয়ার সাথে সাথে, যদিও আমি প্রচুর অন্যান্য টার্মিনাল প্রোগ্রামগুলিতে এস্কেপ ব্যবহার করি - এটি সত্যিই অনুশীলনযোগ্য নয় - সুতরাং এটি এখানে আবদ্ধ করার ইচ্ছা।
জেসনওয়ারিয়ান

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

2

আমার কাছে পালানোর ControlGবিষয়টিও বেঁধে রাখা সত্যি খারাপ ধারণা বলে মনে হচ্ছে । আমি এখানে একটি মিট সলিউশন সন্ধান করতে এসেছি, তবে যেহেতু মনে হচ্ছে এটির কোনও নেই, তাই যে কেউ এই সমস্যার পিছনে হোঁচট খায় তার জন্য আমি কী করছি তার একটি জবাব দেব। এটি সর্বোত্তম নয় তবে এটি অন্য কোনও প্রোগ্রামকে প্রভাবিত করবে না:

macro editor \e "<enter><shell-escape>xdotool key control+g<enter>"

অথবা

macro editor \e "<enter><shell-escape>xsendkey Control+g<enter>"

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


0

এই সমাধানটি এতটাই খারাপ যে লেখক utt জি থেকে মুক্তি পাওয়ার জন্য মট্টের উত্স কোড সম্পাদনা করতে পছন্দ করেছেন

সতর্কতা: এই সমাধানটি ওএসএক্স, ইমাস এবং অন্যান্য অ্যাপ্লিকেশনগুলির সাথে বেমানান বলে মনে হচ্ছে Ctrl+G

মুটে আমার প্রথম দিন পরে, আমি ভুল করে ভিমের মধ্যে প্রায় ^ জি ব্যবহার করছিলাম ... তারপরে আমি এমন কিছু চেষ্টা করেছি যা এখানে কাজ করছে বলে মনে হচ্ছে, আই 3 উইন্ডো ম্যানেজার এবং এক্সফেস-টার্মিনালে

এই লাইনটি এতে যুক্ত করা হয়েছে ~/.i3/config:

bindsym --release Escape exec --no-startup-id xvkbd -xsendevent -text "\[Escape]\[Control]\[g]"

ব্যবহার করতে হয়েছিল "\[Escape]\[Control]\[g]"কারণ "\[Control]\[g]"এটি কেবল ভিমে কাজ করা বন্ধ করে দিয়েছে।

আপনি i3 ব্যবহার না করেন তাহলে, আমি মনে করি আপনি ব্যবহার করতে পারেন xbindkeys চালানোর জন্য xvkbd -xsendevent -text "\[Escape]\[Control]\[g]"যখন Escটেপা হলে।

এটি কোনও সুন্দর সমাধান নয় ... এটি Escকিছু প্রোগ্রামগুলিতে আপনার কীটি ব্যবহারযোগ্য করে তুলতে পারে তবে কমপক্ষে এখানে এটি ঠিক আছে বলে মনে হয়।

সম্পাদনা করুন:

আমি এখন দেখতে পাচ্ছি যে Ctrl+ Gঅংশটি ভিমে ফাইলের মধ্যে অবস্থান প্রদর্শন করে। আপাতত খুব বেশি নাটকীয় কিছু নয়।

এই লিঙ্কটির আরও ভাল সমাধান রয়েছে বলে মনে হয় তবে urxvt এর জন্য : http://www.unixli.com/q/answers-urxvt-map-esc-key-to-key-sequence-83211.html

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