मैं का व्यवहार बदलने के लिए करना चाहते हैं 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
अपने कार्य को बदल सकते हैं।