क्लासिक उपयोग-मामला:
- आप एक मैक्रो रिकॉर्ड करना शुरू करते हैं:
C-x (
- आप कुछ सामान कीजिए, आइए बताते हैं
hello
। - आप एक कमांड चलाते हैं जो एक त्रुटि फेंकता है, मान लें कि
C-g
(जैसे आपने गलती से चला दिया हैC-s
और आपको इसे रद्द करना होगाC-g
, अब आपका काम खो गया है)।
अब आपकी रिकॉर्डिंग अब तक खो गई है।
मैं फिर से शुरू करना चाहूंगा जहां मैंने एक कमांड चलाने से पहले छोड़ दिया था जिसने मेरी रिकॉर्डिंग को बाधित किया था। मैंने देखा C-h f start-kbd-macro
, लेकिन यह सी में लिखा है, इसलिए मैं इसे ट्विक नहीं कर सकता। मैं भी एक चर की तरह चारों ओर शिकार किया current-kbd-macro
, लेकिन अब तक कोई नहीं मिला।
क्या इसे पुनर्प्राप्त किया जा सकता है?
अपडेट करें:
मैं यह पता नहीं लगा सका कि C-u C-x (
मेरे लिए काम क्यों नहीं किया गया, लेकिन मुझे पता चला है क्योंकि मैं परीक्षण कर रहा था C-g
।
यह पता चला है कि C-g
विशेष है - यदि आप एक अलग तरह की त्रुटि जैसे ट्रिगर करते हैं
C-x ( M-: (signal 'quit nil)
फिर यह रिकॉर्डिंग को रोक देगा, लेकिन last-kbd-macro
इसमें शामिल होगा "M-: M-( signal 'quit nil"
, लेकिन साथ
C-x ( C-g
यह रिकॉर्डिंग को रोक देता है और रिकॉर्ड की गई किसी भी चीज़ को रोक देता है। Cg-happy उपयोगकर्ता के रूप में (जैसा कि मेरे कम से कम दो दोस्त हैं), यह एक दुर्भाग्यपूर्ण अंतर है। मैंने संपादन की कोशिश की keyboard-quit
, लेकिन वहां कुछ भी नहीं है जो मैं कर सकता हूं।
यह ठीक होने का एकमात्र तरीका है जो कि इसके माध्यम से होता है recent-keys
और स्वचालित रूप से यह पता लगाता है कि स्टार्ट-केबीडी-मैक्रो (या समान) को कहां कहा जाता है kmacro-edit-lossage
।