2013-02-26 63 views
5

मैं उपयोगकर्ता पढ़ने योग्य स्ट्रिंग में एक emacs keysequence वेक्टर (यानी रीड-की-अनुक्रम-वेक्टर का परिणाम) कैसे परिवर्तित कर सकता हूं? यानी, दिया गया [7], 'सी-जी' लौटाएं।उपयोगकर्ता पठनीय स्ट्रिंग प्रस्तुति में कुंजी-अनुक्रम वेक्टर को परिवर्तित करना?

मुझे मनमानी लंबाई के प्रमुख अनुक्रमों के साथ-साथ गैर-वेक्टर प्रारूप (यानी मानव-पठनीय) में महत्वपूर्ण अनुक्रमों को प्रदर्शित करने के समानता की जांच करने का एक विश्वसनीय तरीका चाहिए।

विस्तार के लिए, मेरे समारोह निम्न करना होगा:

  • मूल्यों (तार) को keysequences की एक hashmap को परिभाषित करें। मुख्य परिणामों में मनमाने ढंग से लंबाई होती है (उदाहरण के लिए, "क्यू" "डब्ल्यू" 3 "" 4 "), और emacs की कीमैप्स से बंधे नहीं हैं।
  • उपयोगकर्ता को बफर में उपयोगकर्ता को मैपिंग (कुंजीपटल -> स्ट्रिंग) प्रदर्शित करें । इसलिए, keysequences, उपयोगकर्ता द्वारा सुगम होना चाहिए यानी वेक्टर स्वरूप में नहीं हो सकता है।
  • , उपयोगकर्ता से keysequence पढ़ें उचित स्ट्रिंग लौटाने।

दो कार्यों मैं उपयोग कर सकते हैं, रहे हैं रीड-की-अनुक्रम और रीड-की-अनुक्रम-वेक्टर। कभी-कभी स्ट्रिंग के रूप में पूर्व रिटर्न, कभी-कभी वेक्टर के रूप में, उपयोगकर्ता की टाइप की गई कुंजीपटल। उदाहरण के लिए, कभी-कभी "1" लौटाता है, लेकिन कभी-कभी, [4 9], कुंजी 'एक' के लिए। यह अप्रत्याशित व्यवहार मुझे समानता के लिए परीक्षण करने की अनुमति नहीं देता है।

उत्तरार्द्ध एक वेक्टर के रूप में चाबियाँ लौटाता है, जैसा कि मैंने उल्लेख किया है मेरे लिए उपयोगी नहीं है क्योंकि मुझे संभावित कुंजीपेशियों को देखने के लिए उपयोगकर्ता की आवश्यकता है।

मुझे लगता है कि मैं अपने वर्तमान मशीन के कीबोर्ड पर सभी चाबियों का मैन्युअल रूप से एक हैमैप बना सकता हूं। लेकिन मुझे डर है कि यह अन्य मशीनों के लिए पोर्टेबल नहीं है।

उत्तर

8
(key-description [7]) => "C-g" 
+0

धन्यवाद! मैंने सोचा कि मैंने इस समाधान के लिए कोई फायदा नहीं लिया है। स्पष्ट रूप से गहरी खोज की जरूरत है! – erjoalgo