म्यूट में "स्पष्ट संकेत" रिबाइंड करना


9

डिफ़ॉल्ट रूप से, कमांड प्रॉम्प्ट में जानकारी दर्ज करते समय mutt, आप प्रॉम्प्ट को मैनुअलCtrlg में वर्णित के साथ क्लियर कर सकते हैं :

^ जी एन / एक गर्भपात

मैं इस समारोह को बांधने की कोशिश कर रहा हूं Escape। दुर्भाग्य से, abortउपलब्ध कार्यों में सूचीबद्ध नहीं है, या तो मैनुअल में , या स्रोत में

मैंने अपने में इसका उपयोग करने की कोशिश की है .muttrc:

बाइंड एडिटर <esc> abort

लेकिन यह एक त्रुटि फेंकता है:

/Home/jason/.mutt/muttrc, पंक्ति 143: abort में त्रुटि: मानचित्र में ऐसा कोई कार्य नहीं है

मैंने एक अलग मानचित्र का उपयोग करने की कोशिश की है, जैसे ( generic) और अन्य काल्पनिक कार्यों के साथ प्रयोग किया, जैसे clear, कोई फायदा नहीं हुआ।

मैं Escapeप्रॉम्प्ट लाइन को कैसे साफ़ करूँगा ?


1
भागने से बचना एक अच्छा विचार नहीं है क्योंकि पलायन चरित्र (भागने पर दबाव डालने पर) भी सभी फ़ंक्शन कुंजियों जैसे तीर, डेल, एफ 1 द्वारा भेजे गए भागने के क्रम के लिए उपसर्ग है ...
स्टीफन Chazelas

यह अच्छी बात है कि मैंने विचार नहीं किया। इसका परीक्षण करते हुए, एस्केप को शाब्दिक भेजने के लिए दो बार भेजने की आवश्यकता होती है, ^[इसलिए यह शोस्टॉपर नहीं हो सकता है (मैं वैसे भी किसी भी प्रकार के बंधन का उपयोग नहीं करता हूं जो इस पर भरोसा करते हैं)।
जसोवरीयन

Esc, Escदो ESC अक्षर भेजेंगे। आप Escएक बार भी दबा सकते हैं और एक सेकंड के लिए प्रतीक्षा कर सकते हैं (डिफ़ॉल्ट टाइमआउट एक भागने के क्रम के लिए इंतजार कर रहा है)।
स्टीफन चेजलस

हाँ। पहले मुझे यह काम करना है कि इसे कैसे बांधें :)
jasonwryan

जवाबों:


5

यह महत्वपूर्ण बाइंडिंग के साथ संभव नहीं है। Ctrl-Gमैक्रो या कीबाइंडिंग प्रसंस्करण की तुलना में निम्न स्तर पर म्यूट में हार्डकोड किया गया है ( mutt_getch()म्यूट के स्रोत कोड में देखें , म्यूट में सभी उपयोगकर्ता इनपुट के मूल में ^G) जो एक त्रुटि देता है ।

macro editor \e '^G'

काम भी नहीं करेगा।

आप क्या कर सकते हैं ^Gदबाने पर भेजने के लिए अपने टर्मिनल को कॉन्फ़िगर करेंEscape

Xterm के साथ:

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

यदि आप उपयोग कर रहे हैं screen, तो आप भी कर सकते हैं

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

म्यूट कॉल करने से पहले और बाद में इसे पुनर्स्थापित करें (दुर्भाग्य से, ऐसा नहीं लगता है कि आपके पास स्क्रीन में प्रति विंडो की-बाइंडिंग हो सकती है)। इसके अलावा, यदि ईमेल संदेशों के लिए आपका संपादक vi है तो यह एक समस्या है।


अपवर्तित: क्योंकि यह प्रश्न का उत्तर देता है (यानी, यह संभव नहीं है)। क्या आप कृपया "हार्डकॉस्ट ... निचले स्तर पर" पर विस्तार से बता सकते हैं। और जबकि वर्कअराउंड सरल है, यह वास्तव में व्यावहारिक नहीं है क्योंकि मैं कई अन्य टर्मिनल कार्यक्रमों में एस्केप का उपयोग करता हूं - इसलिए इसे यहां बांधने की इच्छा।
जसोनव्रीयन

मैंने अधिक विवरण के साथ अपना उत्तर संपादित किया है। मुझे आश्चर्य है कि आपने अन्य कार्यक्रमों में Esc को बाध्य किया है क्योंकि यह आमतौर पर उन अनुप्रयोगों में नहीं है जिन्हें मैं ऊपर टिप्पणियों में वर्णित कारण के लिए जानता हूं।
स्टीफन चेजलस

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

यह समाधान इतना बुरा है कि लेखक ने ^ जी से छुटकारा पाने के लिए मठ के स्रोत कोड को संपादित करना पसंद किया

चेतावनी: यह समाधान OSX, Emacs और अन्य उपयोगों के साथ असंगत लगता है जो Ctrl+ का उपयोग करते हैंG

मट पर मेरे पहले दिन के बाद, मैं गलती से ^ G in Vim का उपयोग कर रहा था ... तब मैंने कुछ ऐसा करने की कोशिश की जो यहाँ काम करने लगता है, i3 विंडो मैनेजर और xfce- टर्मिनल में

इस लाइन को इसमें जोड़ा गया ~/.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-fterence-83211.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.