2010-05-27 10 views
5

मैं दो आपरेशन है कि मैं Emacs में हर समय करते हैं:सरल Emacs कीबाइंडिंग

  1. एक नया बफर बनाएँ और क्लिपबोर्ड पेस्ट करें। सी-एस-एन
  2. बंद वर्तमान बफर। सी-एस-डब्ल्यू अंतिम बार देखे गए बफर करने के लिए
  3. स्विच। सी-टैब

मैं एक कीबोर्ड कलाबाज की तरह लगता है जब पहले दो संचालन कर रही है। मुझे लगता है कि यह कुछ कस्टम कुंजी बाइंडिंग और मैक्रोज़ की कोशिश करने लायक होगा।

इस अनुकूलन के बारे में कुछ सवाल:

  1. मैं # 1 के लिए एक मैक्रो कैसे होगा?
  2. क्या ये अच्छी कुंजी बाइंडिंग हैं? (मैं जानता हूँ कि यह एक सा व्यक्तिपरक है, लेकिन वे लोकप्रिय है कि मैं का उपयोग नहीं करते कुछ द्वारा इस्तेमाल किया जा सकता है।)
  3. किसी को भी एक सी-टैब मैक्रो Alt + टैब में की तरह कार्य करेगा पाया गया है लिनक्स/विंडोज? विशेष रूप से, मैं अंतिम बार देखा गया टाइमस्टैम्प (हाल ही में शीर्ष पर) के अनुसार बफर का ढेर रखना चाहता हूं। मैं ढेर के माध्यम से साइकिल चलाना जारी रखने के लिए जब तक मैं Ctrl कुंजी के चलते चाहते हैं। जब Ctrl कुंजी जारी की है, मैं वर्तमान बफर ढेर पर एक अद्यतन स्थिति प्राप्त करना चाहते हैं।

उत्तर

1
  1. शुरू शुरू kbd-मैक्रो लागू द्वारा, अंत kbd-मैक्रो साथ द्वारा खत्म। बाद में आप तुरंत कॉल-अंतिम kbd-मैक्रो साथ नया मैक्रो परीक्षण कर सकते हैं। यदि आप परिणाम से खुश हैं तो आप save the macro चाहते हैं।
  2. Emacs आम तौर पर सी एस कीबाइंडिंग का उपयोग नहीं है और वे आसानी से इस्तेमाल कर रहे हैं, तो मैं उन्हें अच्छा फोन चाहते हैं। यदि आप Emacs के टर्मिनल संस्करण का उपयोग कर रहे हैं, तो वे समस्याएं पैदा कर सकते हैं, लेकिन मुझे लगता है कि यह आपके साथ मामला नहीं है।
  3. मैं इस सरल का उपयोग करते हैं:

    (वैश्विक सेट-कुंजी (kbd "< सी-टैब >") 'दफनाने-बफर)

दफनाने-बफर मूल रूप से वर्तमान बफर बनाता है बफर सूची में अंतिम ताकि आप एक अनुमानित क्रम में साइकिल बफर करने में सक्षम होंगे।

1
  1. मैं इसके लिए मैक्रो नहीं बनाउंगा लेकिन इस पृष्ठ पर पोस्ट किए गए किसी अन्य व्यक्ति की तरह कोई फ़ंक्शन लिखूंगा। (cua-paste nil) के बजाय आप (yank) का भी उपयोग कर सकते हैं। मुझे यकीन नहीं है कि कौन सा बेहतर है और क्यों।
  2. मुझे उन्हें इतना पसंद नहीं है। जिन चीज़ों का मैं अक्सर उपयोग करता हूं, उनके लिए मैं जितनी संभव हो उतनी छोटी उंगली एक्रोबेटिक्स करना चाहता हूं, इसलिए इसका मतलब संशोधक + + संशोधक 2 + कुंजी के बजाय संशोधक + कुंजी होगा या यदि आप होमरो से बंधे नहीं हैं तो फ़ंक्शन कुंजी का उपयोग करें ।
  3. कोई टिप्पणी
4

आप इस के लिए लंबवत या क्षैतिज विभाजित विंडोज़ का उपयोग करने की कोशिश की (के माध्यम से सी-एक्स 3 या सी-एक्स 2)? ऐसा लगता है जैसे यह आपको कम कदम देगा - भले ही आप कुछ ऐसा लागू करते हैं जैसे आप बात कर रहे हैं।

मुझे लगता है कि विभाजित खिड़कियां वास्तव में प्रतिलिपि बनाने और चिपकाने वाले कार्यों को गति देती हैं। मैं विंडोज़ (windmove-left/-right/-up/-down) के बीच स्विच करने के लिए अपने num पैड पर तीर कुंजियों का उपयोग करता हूं, इसलिए यह प्रेस करने के लिए केवल एक कुंजी है और आप जिस विंडो को चाहते हैं उसे ले जाएं।

मुझे लगता है कि यह आप जो पूछ रहे हैं उससे थोड़ा अलग है, लेकिन ऐसा लगता है जैसे यह थोड़ा सा गति की मदद कर सकता है।

सी-एक्स बफ़र्स के माध्यम से और सी-एक्स दाएं चक्र छोड़ दिया है, लेकिन आप इसे कई बार उपयोग करने के लिए है, तो आप सिर्फ कुंजी नीचे दबाया नहीं रख सकते हैं।


# 1 के लिए एक मैक्रो बनाने के लिए, तुम सिर्फ एक मैक्रो शुरू, चाबियाँ आप आमतौर पर एक नया बफर बनाने के लिए करते हैं मारा, और मैक्रो बंद करो।

तो यह की तरह कुछ होगा:

Cx (Cx खNEWआरईटीCx)

फिर आप एक फाइल करने के लिए NEW बचा सकता है एक बार आप चिपकाने पूरा कर लें, तो आप एक नया बफर बनाने के लिए फिर से मैक्रो का उपयोग कर सकते हैं। मैक्रो को आजमाने के लिए सी-एक्स ई। यदि यह काम करता है तो आप इसे अपने init.el फ़ाइल में सहेज सकते हैं। इस के साथ किया जाता है:

एम एक्सname-last-kbd-macro

तो फिर तुम एक प्रॉम्प्ट अपनी पसंद का नाम दर्ज करने के लिए मिल जाएगा। यह वर्तमान सत्र के लिए केवल अच्छा है। फिर आप नामांकित मैक्रो को अपनी प्रारंभिक फ़ाइल में सहेजते हैं। सबसे पहले आप अपना .emacs या init.el फ़ाइल खोलें। तो फिर तुम बिंदु जगह है जहाँ आप मैक्रो परिभाषा जाना चाहते हैं, तो आप टाइप करें:

एम एक्सinsert-kbd-macro

अब आप चला सकते हैं अपने मैक्रो एम एक्स<macroname> के माध्यम से अपने नाम का उपयोग कर।आप (अपने .emacs या init.el फ़ाइल में) भी कुंजी में अपने मैक्रो बाध्य कर सकते हैं:

(global-set-key (kbd "C-c a") '<macroname>) 

उदाहरण के लिए यह आपके init.el एक मैक्रो एक नया बफर NEW कहा जाता है कि एक साथ संबद्ध नहीं है खुलती बनाने के बाद इस तरह दिखाई देंगे है फ़ाइल और प्रतिलिपि n को यह मैक्रो बाध्यकारी:

;; Creates a new unassociated buffer called NEW 
(fset 'new-buffer "\C-xbNEW\C-m"); 
;; Shortcut for new-buffer 
(global-set-key (kbd "C-c n") 'new-buffer) 

तुम भी, पेस्ट में फेंक पास बफ़र, और स्विचिंग आपरेशन बफ़र कर सकते हैं। मुझे लगता है कि आपको बफर को मैन्युअल रूप से फ़ाइल में सहेजना होगा।

कुछ संसाधनों

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