Emacs में सबसे लंबे समय तक ज्ञात प्रमुख अनुक्रम क्या है?


14

Qt Emacs- स्टाइल कीबाइंडिंग का समर्थन करता है , हालांकि केवल चार कुंजी तक। एक बिंदु बनाने के लिए कि यह सीमा क्यों बढ़ाई जानी चाहिए, यह Emacs- शैली की कीबाइंडिंग के उदाहरणों के साथ और भी अधिक कुंजियों को दिखाने के लिए उपयोगी होगा। क्या इसके लिए कोई ज्ञात उदाहरण हैं या शायद प्रोग्राम को Emacs keymaps में परिभाषित लंबे कुंजी अनुक्रम खोजने का एक तरीका है?

संपादित करें: मैंने सोचा कि यह सामान्य ज्ञान था, लेकिन एक महत्वपूर्ण अनुक्रम कुंजी का एक सेट है जैसा कि इसमें पढ़ा गया है read-key-sequenceF1 kअपने उम्मीदवार के लिए प्रयास करें और देखें कि क्या यह आपकी आज्ञा का वर्णन करता है या एक असंबंधित पूर्ववर्ती।


केवल मैं ही सोच सकता हूं कि मेरे सिर के ऊपर से टर्मिनल एस्केप सीक्वेंस के रूपांतरण हैं, जो क्यूटी पर लागू नहीं होते हैं। 3 वास्तविक कुंजी के ऊपर जाना असामान्य है।
गिल्स एसओ- बुराई को रोकना '

प्रश्न और लिंक के लिए संदर्भ / कारण प्रदान करने के लिए धन्यवाद। पहली नजर में - इसे पढ़ने से पहले, मैं गलत अनुमान लगा रहा था कि यह सवाल ऑफ-टॉपिक हो सकता है और किसी के लिए मददगार नहीं।
ड्रयू

इस सवाल के साथ समस्या यह है कि कोई भी निश्चित रूप से इसका जवाब नहीं दे सकता है। हर कोई इसका जवाब केवल उसके / उसके emacs- कॉन्फ़िगरेशन के लिए दे सकता है। यह राय आधारित नहीं है, लेकिन यह व्यक्तिपरक है।
टोबियास

1
क्या इसमें उपसर्ग तर्क शामिल हैं? अगर मैं एक हजार लाइनें नीचे जाना चाहता हूं, तो मैं कह सकता हूं कि C-u 1 0 0 0 C-nछह चाबियां हैं।
स्टिग हेमर

1
@StigHemmer नंबर करो F1 k C-u 1 0 0 0 C-nऔर देखो कि C-uयह अपने आप में एक महत्वपूर्ण अनुक्रम है।
थामासा

जवाबों:


23

मैंने निम्नलिखित स्क्रिप्ट के साथ परीक्षण किया,

(key-description
 (car
  (sort
   (let (keyseqs)
     (mapatoms
      (lambda (sym)
        (when (commandp sym)
          (let ((where (where-is-internal sym nil nil t)))
            (when where
              (setq keyseqs (append keyseqs where)))))))
     keyseqs)
   (lambda (a b) (< (length b) (length a))))))

और सबसे लंबे समय तक मुझे अपने साथ मिलता .emacs.dहै C-x c C-x r iजो कुछ हेलम कमांड है, और emacs -qमुझे मिलता है C-x a i lजो कमांड चलाता है inverse-add-mode-abbrev


12
हा। मुझे देता है C-x M-c M-b u t t e r f l y:) मैं भूल गया कि मैंने किया था कि ...
फिल्स

where-is-internalअब तक यहाँ सीपीयू समय पर हावी है, लेकिन आप अभी भी आसानी से कुछ छोटी सूची को लम्बी सूची के माध्यम से नष्ट कर सकते हैं (setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))
तुलसी

1
@ मैं संदर्भ को पहचानता हूं, लेकिन आपने वास्तव में ऐसा करने के लिए क्या आदेश दिया था?
दान

@ जान, मुझे लगता है कि आपने कभी नहीं देखा है M-x butterfly? मैं बस में वृद्धि हुई प्रामाणिकता के लिए :) कि आदेश के लिए यह बाध्य
फिल्स

6

मैं इस बारे में कोई जवाब नहीं दे सकता कि कहीं सबसे लंबा क्या हो सकता है, लेकिन यहां एक जानकारी है जो मदद कर सकती है।

  1. मेरे पास कुछ लाइब्रेरी हैं जो कीमैप में कुंजियों से संबंधित संबंधित कमांड का एक सेट प्रदान करती हैं जिसे मैं एक उपसर्ग कुंजी से बांधता हूं।

    क्योंकि मैं सह ऑप्ट उपयोगकर्ता चाबियाँ करने के लिए आदि नहीं करना चाहते, मैं आम तौर पर बाँध, के तहत इस तरह के एक उपसर्ग कुंजी का कहना है कि C-xया, के लिए other-windowआदेश, के तहत C-x 4(कीमैप ctl-x-4-map)।

  2. इस तरह के कीमैप में कमांड के समूहों पर समान विचार लागू होते हैं: वे कभी-कभी अपना कीमैप प्राप्त करते हैं। और इतने पर, पुनरावर्ती।

  3. मुझे उम्मीद है कि कम से कम कुछ उपयोगकर्ता अपने स्वयं के, छोटे, उपसर्ग कुंजी के लिए इस तरह के कीमैप्स (किसी भी स्तर पर) को रिबंड करना चाहते हैं, या हो सकता है कि वे विशिष्ट कमांड को छोटे कुंजी अनुक्रमों से बाँधना चाहें। लेकिन मैं ऐसा नहीं करना चाहता, पुस्तकालय में, जाहिर है।

यहां एक ऐसी काफी लंबी कुंजी का उदाहरण दिया गया है: C-x 4 j t . % *(सात कीस्ट्रोक्स), जो बुकमार्क +icicle-bookmark-file-this-dir-all-tags-regexp-other-window में कमांड के लिए बाध्य है ।

एनाटॉमी:

  • पर C-x 4उपसर्ग कुंजी ( ctl-x-4-map)।

  • पर jउपसर्ग कुंजी है, जिसके लिए सभी आदेशों के लिए है एक बुकमार्क करने के लिए कूद

  • पर tउपसर्ग कुंजी है, जो बुकमार्क करने के लिए कूद के लिए सभी आदेशों को कर रहे हैं के लिए है टैग किए गए किसी तरह से।

  • पर .उपसर्ग कुंजी है, जो बुकमार्क में फ़ाइलों के लिए कर रहे हैं करने के लिए कूद के लिए सभी आदेशों के लिए है वर्तमान निर्देशिका है कि कर रहे हैं टैग किए गए किसी तरह से।

  • पर %उपसर्ग कुंजी है, जो बुकमार्क में बातों के लिए कर रहे हैं करने के लिए कूद के लिए सभी आदेशों के लिए है वर्तमान निर्देशिका है कि टैग कि एक regexp से मेल खाते हैं आप के लिए कहा जाता है।

  • पर *कुंजी है, जो बुकमार्क में बातों के लिए कर रहे हैं करने के लिए कूद के लिए सभी आदेशों के लिए है वर्तमान निर्देशिका है कि टैग , सभी जिनमें से एक regexp से मेल खाते हैं आप के लिए कहा जाता है। (इसके विपरीत, C-x 4 j t . % +बुकमार्क्स के लिए है कुछ जिनके टैग regexp से मेल खाने वाले।)

कि सब के सब है पारंपरिक बुकमार्क + में (और इसके बारे में कुछ DIRED सम्मेलनों से मेल खाती है, BTW): jके लिए है कूद आदेश, tके लिए है टैग किए गए , .के लिए है वर्तमान निर्देशिका , %के लिए है regexp , और *के लिए है सब ( +के लिए है कुछ )।


(ओह, और @ mkcms के सेक्सप का उपयोग करके, मुझे मिलता है C-x 4 j t f % *, जो समान रूप से लंबा है। फ़ाइलf के लिए खड़ा है । यह पसंद है , लेकिन पूरा होने के लिए उम्मीदवार बुकमार्क सभी फ़ाइल बुकमार्क हैं, वर्तमान निर्देशिका में फ़ाइलों के लिए ही नहीं ( )।C-x 4 j t . % *.


0

Magitलंबे क्रम जोड़ता है क्योंकि यह विकल्पों को भीख माँगने की अनुमति देता है। उदाहरण के लिए जब आप लॉग के लिए पूछते हैं तो आप छोटे या लंबे विकल्पों का चयन कर सकते हैं, यदि आप दूरस्थ शाखाएं चाहते हैं या नहीं, यदि आप शाखाओं के ग्राफिकल डिस्प्ले आदि चाहते हैं। लॉग के लिए मूल अनुरोध magit-statusबफर से सिर्फ कीस्ट्रोक्स का एक जोड़ा है, लेकिन आप कई और जोड़ सकते हैं।

यही बात कमिटिंग पर भी लागू होती है, बेसिक कमिट के लिए दो कीस्ट्रोक्स, लेकिन बहुत सारे वैकल्पिक जोड़।

तो प्रश्न निर्दिष्ट है, क्या आप केवल एक stock(जो भी मतलब है) emacs पर विचार कर रहे हैं ?


1
इससे दूर, मैं कहीं से भी आने वाले उदाहरणों को स्वीकार करता हूं। आप जो भी वर्णन करते हैं, वह कुंजी अनुक्रमों का एक सेट है, हालांकि हर महत्वपूर्ण अनुक्रम में एक कमांड निष्पादित होता है। यह जानने के लिए कि एक मुख्य अनुक्रम क्या है, का उपयोग करके F1 kदेखें और देखें कि कितने कमांड आप टाइप कर सकते हैं जब तक कि यह कमांड का वर्णन नहीं करता।
वामासा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.