मैं का व्यवहार बदलने के लिए करना चाहते हैं fill-paragraphकुछ मोड में (जैसे LaTeX-modeद्वारा प्रदान की AucTeX)।
मैं तो बस कुंजी rebind सकता है M-q, लेकिन मैं यह भी उपयोग कर रहा हूँ evil-modeकी जिसका कार्यान्वयन evil-fill-and-moveका उपयोग करता है fill-region। आदर्श रूप से, मेरा कस्टम फिल फ़ंक्शन दोनों कार्यों को ओवरराइड करता है fill-paragraph(इसलिए यह साथ काम करता है M-q) और fill-region(इसलिए यह साथ काम करता है evil)।
यह मानते हुए कि मेरे पास एक स्टैंडअलोन प्रोग्राम है formatजो LaTeX कोड के माध्यम से stdinऔर आउटपुट स्वरूपित कोड पर लेता है stdout, मैं उपयोग करने के लिए उपरोक्त दो भरण कार्यों को कैसे ओवरराइड करूंगा format?
(नोट: इस के समान है vimके formatprgविकल्प।)
evil-fill-and-moveमहत्वपूर्ण अनुक्रम के लिए बाध्य gqहै। रीबाइंडिंग M-qइस कीबाइंडिंग को प्रभावित नहीं करना चाहिए। कुछ अर्थों में, मेरा प्रश्न वास्तव में दो प्रश्न हैं: 1) दो कार्यों को कैसे बदला जाए? 2) बाहरी प्रोग्राम का उपयोग कैसे करें? 2) का कारण यह है कि मेरे पास पहले से ही एक बाहरी, गैर-एलस्प समाधान है।
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))कहाँ your-fill-functionहै। यह उस कुंजी कॉम्बो को केवल ऑक्टेक्स में सेट करेगा। आप शायद shell-command-on-regionपरिभाषित करने के लिए REPLACE तर्क के साथ उपयोग कर सकते हैं your-fill-function।
M-qप्रभावित करताevil-fill-and-moveहै? मैं बुराई का उपयोग नहीं करता हूं इसलिए मैं उत्सुक हूं। यदि क्षेत्र वैसे भी सक्रियfill-paragraphकॉलfill-regionहै। तो आप सलाह दे सकते हैं याfill-regionअपने कार्य को बदल सकते हैं।