मैं अजगर प्रोजेक्ट में शामिल हूं जहां टैब का उपयोग किया जाता है, हालांकि मैं उन्हें लिखने वाले हर दूसरे कोड में उनका उपयोग नहीं कर रहा हूं, इसलिए उस विशेष परियोजना में उनका उपयोग करना महत्वपूर्ण है। परियोजनाएं विशिष्ट निर्देशिकाओं के तहत एक निर्देशिका में स्थित हैं। अर्थात:फ़ाइल स्थान के आधार पर हुक कैसे चलाएं
\main_folder
\project1
\project2
\project3
...etc
मैं जोड़ी कार्य/फ़ाइल पर हुक खुला और कहा कि untabify बचाने के लिए और पूरे बफर मैं पर काम tabify है।
;; My Functions
(defun untabify-buffer()
"Untabify current buffer"
(interactive)
(untabify (point-min) (point-max)))
(defun tabify-buffer()
"Tabify current buffer"
(interactive)
(tabify (point-min) (point-max)))
;; HOOKS
; untabify buffer on open
(add-hook 'find-file-hook 'untabify-buffer)
; tabify on save
(add-hook 'before-save-hook 'tabify-buffer)
तो मैं .emacs में रख फ़ाइल यह मैं खुले जो नहीं है मैं क्या चाहते हैं हर .py फ़ाइल पर चलाया जाता है। मुझे क्या लगता है कि इन हुकों को केवल संबंधित उपफोल्डर के साथ एक विशेष फ़ोल्डर में उपयोग किया जाए। कोशिश की .dir_locals लेकिन यह केवल गुणों के लिए काम करता है हुक नहीं। मैं विशिष्ट मोड (यानी पायथन-मोड) में हुक का उपयोग नहीं कर सकता क्योंकि लगभग सभी परियोजनाएं पाइथन में लिखी जाती हैं। ईमानदार होने के लिए मैंने elisp सशर्त सहेजने की कोशिश की लेकिन असफल रहा।
धन्यवाद।। यह वास्तव में मेरे प्रश्न का उत्तर है लेकिन आपने एक अच्छा मुद्दा उठाया है। सहेजने के बाद मेरे पास सभी बफर पर टैब होंगे। मैंने कुछ जांच की क्योंकि मैंने सोचा-बफर या मारने के लिए कार्यों को हुक करने के लिए सोचा था लेकिन दुर्भाग्यवश वे फ़ाइल पहले से ही सहेजी जाने के बाद चल रहे हैं। यदि वास्तव में यह जांचना संभव हो सकता है कि बफर पर 'सेव' को किसने बुलाया है और केवल तभी काम करता है जब यह हत्या-बफर या मार-इमैक था। क्या आपके पास ऐसे मामले में कोई अन्य सुझाव या अनुभव है? –
मैं शायद 'लिखने-फ़ाइल-फ़ंक्शंस' से शुरू करूंगा, और शायद इसे बफर की एक प्रति बनाउंगा, उसे सत्यापित करें, सहेजें, और 't' वापस करें। यह भी देखें [यह पृष्ठ] (http://www.emacswiki.org/emacs/UntabifyUponSave), हालांकि वे ऐसा नहीं करते हैं क्योंकि वे बफर को * अन * टैबिफाइड रखना चाहते हैं। –