2009-10-09 23 views
20

जीएनयू स्क्रीन में, मैं डिफ़ॉल्ट सीए के बजाय Alt-s (tweaking .screenrc द्वारा) को डिफ़ॉल्ट कमांड बाध्यकारी बदलना चाहता हूं, कारण मैं emacs का उपयोग करता हूं इसलिए जीएनयू स्क्रीन Ca कुंजी को बांधती है, "Ca" भेजती है emacs थकाऊ हो जाता है (जैसा कि @Nils ने कहा, "सीए" भेजने के लिए मुझे "सीए" टाइप करना चाहिए), साथ ही साथ "सीए" को बाश खोल में टाइप करना चाहिए, और मैं भागने को सी में बदल सकता हूं- लेकिन उनमें से कुछ पहले ही मैप किए गए हैं emacs और अन्य संयोजन ALT- एस के रूप में आसान नहीं हैं। अगर किसी ने पहले ही एएलटी कुंजी मैपिंग कर ली है, तो कृपया मुझे बताएं।gnu स्क्रीन - एएलटी-एक्स में डिफ़ॉल्ट एस्केप कमांड कुंजी बदल रहा है?

उत्तर

1

आपके प्रश्न का उत्तर नहीं देता है, लेकिन सी-ए खिड़की पर सी-ए भेजता है, है ना? , अगर वहाँ कुछ मानचित्रण कि आप Emacs में उपयोग नहीं करते है

escape xy 

    Set the command character to x and the character generating a literal 
    command character (by triggering the "meta" command) to y (similar to 
    the -e option). Each argument is either a single character, a two-character 
    sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal 
    number (specifying the ASCII code of the character), or a backslash followed 
    by a second character, such as "\^" or "\\". The default is "^Aa". 

भले ही:

+1

ऐसा करता है, यह emacs उपयोगकर्ताओं के लिए बस कम सुविधाजनक है। – rampion

+0

सी-ए करता है। लेकिन समस्या यह है कि मैं स्क्रीन पर चल रहे emacs में सी बाध्यकारी का उपयोग नहीं कर सकता। आशा है कि आपको यह – Siva

+1

@ रैंपियन मिला: यह समझ गया, लेकिन सवाल में कहा गया है, "मैं सी-ए इमैक में उपयोग नहीं कर सकता", जिसे मैं विश्वास करता हूं वह गलत है। @ शिवा: एचएम। असल में, नहीं। "सी-ए" दबाकर सी-ए को emacs भेजना होगा। यह असुविधाजनक है, हाँ - लेकिन संभव है। – Nils

9
man screen की मेरी पढ़ने से

यह केवल मेटा चरित्र कि screen आदेश बाध्यकारी के लिए उपयोग कर सकते हैं की तरह लगता है CTRL है यह C-| की तरह असुविधाजनक है, तो आप ALT-X को रीमेप करने के लिए अपने टर्मिनल इनपुट मैनेजर का उपयोग कर सकते हैं, जिससे आप ALT बाध्यकारी का उपयोग कर सकते हैं। हालांकि यह थोड़ा सा हैकिश होगा।

+0

धन्यवाद। यह मुश्किल है, शायद यह – Siva

+3

करने का सीधा तरीका हो सकता है आपको नियंत्रण के साथ एस्केप कुंजी का प्रस्ताव नहीं देना पड़ेगा। मैं "एस्केप' ~ "का उपयोग करता हूं, जो इसे बैकटिक (नियंत्रण के बिना) सेट करता है। मुझे नहीं लगता कि आप Alt-Any का उपयोग कर सकते हैं, हालांकि। – silentbicycle

+0

@silentbicyle धन्यवाद। हाँ मुझे पता है कि मुझे नियंत्रण के साथ प्रस्तावना नहीं है, "बचें" ~ "मेरे लिए काम नहीं करता है। और जब मैं वास्तव में खोल पर चल रहे किसी भी कार्यक्रम में ~ वास्तव में ~ सीटीएल/एएलटी मैपिंग पसंद करता हूं तो मैं थकाऊ हो जाऊंगा। – Siva

6

स्क्रीन में alt बाइंडिंग के लिए कोई शॉर्टैंड सिंटैक्स नहीं है, लेकिन आप इसे सीधे ऑक्टल कोड दे सकते हैं। मेरी मशीन पर उदाहरण के लिए, Alt-एक्स हेक्स कोड F8, या 370 अष्टाधारी, तो डाल

भागने \ 370x

मेरी screenrc में

Alt-एक्स

परीक्षण किया और कार्यों के लिए भागने कोड बदल गया है लिनक्स पर स्क्रीन 4.00.03 के साथ।

के बाद से मुझे लगता है कि यह अपनी भाषा और codeset, आदि जैसी चीजों पर निर्भर हो सकता है आप बच बदलने के लिए हो सकता है: मैं कैसे पता चला कि मेरी भागने कोड था टाइप करने के लिए

$ echo -n ^QM-x | perl -ne 'printf "%lo\n", ord($_)' 

^क्यू है था रीडलाइन के लिए उद्धृत-सम्मिलित आदेश (यह आपके द्वारा व्याख्या करने की कोशिश किए बिना सीधे टाइप करता है) और एमएक्स एक शाब्दिक Alt-X था।

+0

मैंने इस चाल की कोशिश की है और यह मेरे लिए काम नहीं करता है। क्या इसे डीबग करने का कोई तरीका है? – Siva

+0

हाय शिव - मुझे लगता है कि सबसे अधिक संभावना अंतर मेटा कुंजी के टर्मिनल एन्कोडिंग के कारण है। मैं xterm टर्मकैप/टर्मिनो सेटिंग के साथ xterm का उपयोग कर रहा हूँ; यह संभव है कि अन्य टर्मिनलों जैसे kterm या gnome-terminal, या विभिन्न TERM सेटिंग्स, एक अलग एन्कोडिंग का उपयोग करें। आपकी मशीन पर मेरी गूंज चाल क्या उत्पन्न करती है? –

5

मैं भी एक Emacs और स्क्रीन उपयोगकर्ता हूँ। हालांकि मैं टर्मिनल में शायद ही कभी Emacs का उपयोग करता हूं - और जैसे कि स्क्रीन सत्र में - मैं खोल के लिए सी-ए को छोड़ना नहीं चाहता था (जो Emacs कुंजी बाइंडिंग का उपयोग करता है)। मेरा समाधान स्क्रीन के लिए उपसर्ग कुंजी के रूप में सी-जे का उपयोग करना था, जिसे मैं बलिदान देना चाहता था। Emacs प्रोग्रामिंग मोड में यह (न्यूलाइन-एंड-इंडेंट) से जुड़ा हुआ है जिसे मैं आरईटी से भी बांधता हूं, इसलिए मुझे वास्तव में याद नहीं आती है।

वैसे: मुझे पता है कि यह एक उत्तर के बजाय एक सलाह है, लेकिन मुझे लगा कि यह पोस्ट करने के लिए पर्याप्त मूल्यवान होगा।

0

फेलो इमैक उपयोगकर्ता यहां।

मुझे मिला सबसे अच्छा समाधान एक ~/है।screenrc निम्नलिखित के साथ फाइल:

# C-a :source .screenrc 

escape ^gg 

लाइव यहाँ अद्यतन: https://gist.github.com/1058111

यह भी देखें: रजिस्टरों और का उपयोग कर आदेश सीमाओं से बच: http://ubuntuforums.org/showthread.php?t=498675

+0

बीटीडब्ल्यू, यह मेरे लिए वास्तव में अच्छा काम करता है क्योंकि^जी एमएक्स में "रद्द" अनुक्रम है। तो अगर आपकी मांसपेशी स्मृति 'spasms', तो आप emacs में कुछ भी गड़बड़ नहीं करते हैं। – audiodude

+3

मैं इसका प्रशंसक नहीं हूं। सी-जी आखिरी चाबियों में से एक है जिसे मैं इमाक्स में छोड़ना चाहता हूं। – Psyllo

+0

इसे "से बचें^\" ["बैकक्वॉट का उपयोग करने के लिए बदलें। डिफ़ॉल्ट रूप से Emacs में कुछ भी बाध्य नहीं है। – Psyllo

7

यह चारों ओर काम करने के लिए संभव है bindkey कमांड। बस .screenrc में रखते:

# reset escape key to the default 
escape ^Aa 

# auxiliary register 
register S ^A 

# Alt + x produces ^A and acts as an escape key 
bindkey "^[x" process S 

## Alt + space produces ^A and acts as an escape key 
# bindkey "^[ " process S 

http://adb.cba.pl/gnu-screen-tips-page-my.html#howto-alt-key-as-escape

6

Alt + एक्स आदेशों के लिए डिफ़ॉल्ट उपसर्ग और सीए बनाने के देखो, निम्न पंक्तियां जोड़ें .screenrc रहे हैं:

escape ^|| 
bindkey "^[x" command 

एक दुष्प्रभाव के रूप में सी- | आदेश भी उपसर्ग होगा। यदि आपको इस कुंजी को भी मुक्त होने की आवश्यकता है, तो "escape^||" को ठीक करें तदनुसार।

+0

'^ [x' को 'Alt-x' में स्थानांतरित किया जाता है, जहां'^'का अर्थ है' Ctrl' (मुझे यकीन नहीं है)? क्या '[' मतलब 'Alt' है? धन्यवाद। – Chad