2012-06-03 6 views
6

मैंने हाल ही में M-left को ठीक करने में मदद की थी और आगे भी: emacs in terminal meta arrow keybindings, लेकिन एक समान समाधान का उपयोग करके Shift-up को ठीक करने में असमर्थ हूं। जब मैं shift-up आज़माता हूं तो मुझे <select> is undefined त्रुटि मिलती है। मैंने इसका उपयोग करके पुनः मैपिंग करने का प्रयास किया है:शिफ्ट अप-तीर टेक्स्ट emacs को हाइलाइट नहीं करता है iterm2

(add-hook 'term-setup-hook                                           
'(lambda()                                              
(define-key function-key-map "\e[1;9A" [M-up])                                     
(define-key function-key-map "\e[1;9B" [M-down])                                    
(define-key function-key-map "\e[1;9C" [M-right])                                    
(define-key function-key-map "\e[1;2A" [S-up])                                     
(define-key function-key-map "\e[1;9D" [M-left]))) 

लेकिन शिफ्ट अनिर्धारित बनी हुई है। मैंने cat से लौटाए गए एस्केप अनुक्रम का उपयोग करके इसे सेट करके कुंजी को पुन: स्थापित करने का भी प्रयास किया जो ^[[1;2A है। विचित्र रूप से पर्याप्त बदलाव नीचे काम करता है। shift-select-mode को t पर भी चिह्नित किया गया है।

+0

क्या आपके पास इस प्रश्न पर अधिक जानकारी है? या आपने पिछले साल इसे हल किया है? – beaslera

उत्तर

9

यह एक परेशानी की तरह लगता है जिसे मैंने पुट्टी के माध्यम से उबंटू 12.04 मशीन तक पहुंचाया था, जब ईएनडी ने इमाक्स 23.3.1 को <select> is undefined कहा था। यह terminfo के साथ एक मुद्दा साबित हुआ जो प्रोग्राम को डिवाइस में टर्मिनल का स्वतंत्र तरीके से उपयोग करने देता है।

#so the END key will work correctly in Emacs over PuTTY 
TERM=xterm-vt220 

एनबी, या तो टर्म-VT220 या डिफ़ॉल्ट टर्म के साथ, emacs -Q -nw हो रही है ESC [ 4 ~:

इस 2008 bug report discussion के आधार पर, मैं अपने ~/.bashrc के शीर्ष करने के लिए निम्न जोड़कर मेरी समस्या हल जब मैं ऊपर के लिए END, ESC O A दबाता हूं, और ESC [ A शिफ्ट-अप के लिए दबाता हूं। (यह देखने के लिए कि Emacs क्या कुंजीकोड प्राप्त हो रहा है, कुछ बटन दबाएं और फिर C-h,l।) उसी क्रम में उसी कुंजी के लिए, cat[4~, [A, और [OA ... इसलिए ऊपर और शिफ्ट-अप विचित्र रूप से उलट दिए जाते हैं।


आप अपने terminfo बदलने के लिए नहीं करना चाहते हैं, एक समाधान के लिए इस चर्चा को देखने के http://lists.gnu.org/archive/html/help-gnu-emacs/2011-05/msg00211.html

आप की तरह कुछ के साथ इस मुद्दे को हल करने के लिए सक्षम होना चाहिए:

(define-key input-decode-map "\e[1;2A" [S-up])

और इसके लिए सही समय पर प्रभावी होने के लिए, आपको अपने .emacs में कुछ उपयोग करना होगा जैसे:

(if (equal "xterm" (tty-type)) (define-key input-decode-map "\e[1;2A" [S-up]))

2

बस समाधान के बारे में अधिक जानकारी जोड़ने के लिए: https://github.com/arthurnn/dotfiles/blob/8d56f2419da9a4cb654d8941f379d6d5783bdb90/.emacs.d/init.d/setup-bindings.el#L3-L10 इस emacsclient सहित सभी मामलों ठीक करना चाहिए। अंतिम रेखा emacsclient का उपयोग करते समय शिफ्ट-अप को ठीक करने के लिए ज़िम्मेदार है।

संबंधित मुद्दे