2009-11-23 19 views
23

मेरे समस्या Emacs स्रोत गैर- ASCII वर्ण युक्त फ़ाइलों में कोडिंग प्रणाली हेडर डालने की वजह से उपजी:Emacs बदलें डिफ़ॉल्ट कोडिंग प्रणाली

# -*- coding: utf-8 -*- 

मेरे सहकर्मियों पसंद नहीं है इन हेडर हमारे खजाने में जाँच की जा रही है। मैं नहीं चाहता कि उन्हें मेरी फाइलों में डाला जाए क्योंकि Emacs स्वचालित रूप से पता लगाता है कि फ़ाइल यूटीएफ -8 होना चाहिए, भले ही किसी के लिए कोई लाभ न हो।

मैं सभी फ़ाइलों के लिए स्वचालित रूप से यूटीएफ -8 का उपयोग करने के लिए Emacs सेट करना चाहता हूं, फिर भी यह इस विचार से असहमत प्रतीत होता है। इसे ठीक करने के प्रयास में, मैं अपने .emacs के लिए निम्न जोड़ दिया है:

(prefer-coding-system 'utf-8) 
(setq coding-system-for-read 'utf-8) 
(setq coding-system-for-write 'utf-8) 

यह मेरी समस्या का समाधान करने के लिए प्रतीत नहीं होता। Emacs अभी भी मेरी फाइलों में कोडिंग सिस्टम हेडर डालता है। क्या किसी के भी पास कोई सुझाव है?

संपादित करें:

मुझे लगता है कि इस समस्या को विशेष रूप से माणिक मोड से संबंधित है। मैं अभी भी इसे बंद नहीं कर सकता।

+0

वास्तव में आपकी कॉन्फ़िगरेशन मेरे लिए काम कर रही है। यह Emacs 24 को रोकता है UTF-8 –

+0

के साथ फ़ाइल को सहेजने के लिए कहता रहता है जो आपके द्वारा डाला गया कुरकुरा टुकड़ा emacs पर डिफ़ॉल्ट रूप से utf-8 को व्यवस्थित करने के लिए काफी उपयोगी है, बहुत बहुत धन्यवाद सर! – Bengalaa

उत्तर

9

डिफ़ॉल्ट रूप से, Emacs आपकी फ़ाइलों में फ़ाइल चर नहीं लिखेंगे। आपने इसे अपने .emacs में कहीं ऐसा करने के लिए कहा होगा। Emacs -q चलाने का प्रयास करें और देखें कि फ़ाइल चर डाला गया है या नहीं।

1

अद्यतन: मैं मानता चाहिए, कि मैं चर की प्रविष्टि के विषय में अपने वास्तविक सवाल अनदेखी की है, इसलिए मैं केवल "howto सेटअप UTF-8 भाग", इस बारे में खेद जवाब दे दिया। आपके वास्तविक प्रश्न के बारे में मेरे पास कुछ भी जोड़ने के लिए नहीं है, आम तौर पर emacs ऐसा नहीं करता है।

शायद this blog entry आपकी मदद करता है। coding-system-for-read और coding-system-for-write के प्रलेखन पढ़ने का सुझाव यह नहीं है कि आप इसका इस्तेमाल करना चाहिए:

coding-system-for-write is a variable defined in `C source code'. 
Its value is nil 

Documentation: 
Specify the coding system for write operations. 
Programs bind this variable with `let', but you should not set it globally. 
... 
0

पहले, मैं मूल जवाब से सहमत हैं, लेकिन मैं यह भी जोड़ना होगा कि अगर मैं आपकी समस्या का था मैं की तरह कुछ का प्रयोग करेंगे निम्नलिखित:

(defun java-setup() 
    (setq tab-stop-list 
     '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92) 
     indent-tabs-mode nil 
     tab-width 4 
    fill-column 96 
    buffer-file-coding-system 'utf-8-unix 
    c-comment-start-regexp "\\(@\\|/\\(/\\|[*][*]?\\)\\)")) 

(add-hook 'java-mode-hook 'java-setup) 
+0

उसमें से अधिकतर नहीं है? मुझे लगता है कि आप वास्तव में जो कहने की कोशिश कर रहे हैं वह है: (सेट-कोडिंग-सिस्टम() (सेटक बफर-फ़ाइल-कोडिंग-सिस्टम 'utf-8-unix) को हटाएं) (ऐड-हुक' ढूंढ-फ़ाइल-हुक 'सेट -कोडिंग-सिस्टम) ... बेशक, मैंने कोशिश नहीं की है, लेकिन यह आप जो कह रहे हैं उसके महत्वपूर्ण भाग की तरह लगता है। – quodlibetor

+1

एक संकीर्ण अर्थ में, हाँ आप सही हैं। हालांकि, मैंने सोचा कि समाधान को दिखाने के लिए यह अधिक प्रभावी हो सकता है (वास्तविक दुनिया उदाहरण के साथ बफर स्थानीय चर सेट करने के लिए emacs हुक फ़ंक्शंस का उपयोग करके) जो कि संबंधित होना आसान हो सकता है। कभी-कभी ऐसा करना प्रभावी और सहायक होता है, कभी-कभी यह भ्रम जोड़ता है। लेकिन चूंकि आपने इस मुद्दे को उठाया है, इसलिए मैं इसे स्पष्ट करने के लिए एक दिमाग रखूंगा कि क्या अपरिपक्व है और भविष्य के उत्तरों में क्या नहीं है। धन्यवाद। – pajato0

11

यह मेरे लिए काम करता है:

(setq ruby-insert-encoding-magic-comment nil) 

के रूप में सुझाव दिया here

012,

मेरा मानना ​​है कि आप सही हैं कि यह केवल रूबी-मोड में होता है। ऐसा लगता है कि रूबी-मोड लाइन जोड़कर सहायक होने की कोशिश कर रहा है, जिससे रूबी स्वचालित रूप से स्रोत फ़ाइल एन्कोडिंग का पता लगाता है।

1

तुम भी निर्देशिका स्थानीय चर का उपयोग कर सकते चर स्थापित करने के लिए: http://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html

आप एक निर्देशिका में एक विशेष नाम .dir-locals.el के साथ एक फ़ाइल डालें, तो Emacs यह जब यह दौरा पढ़ा जाएगा उस निर्देशिका या उसकी उपनिर्देशिका में से कोई भी फ़ाइल, और फ़ाइल के बफर को निर्दिष्ट सेटिंग्स को लागू करें। Emacs विज़िट फ़ाइल की निर्देशिका में शुरू होने वाले .dir-locals.el की खोज करता है, और निर्देशिका वृक्ष को ऊपर ले जाता है। (मंदी से बचने के लिए, यह खोज दूरस्थ फ़ाइलों के लिए छोड़ दी गई है।)

0

मुझे आज यह समस्या थी। मेरे लिए, समस्या यह थी कि मैंने एक ईमेल से कुछ TODO पाठ की प्रतिलिपि बनाई और चिपकाया।जब मैंने उस पाठ को हटा दिया, [# - - कोडिंग: utf-8 - -] अब emacs द्वारा डाला नहीं गया था।

((nil . ((buffer-file-coding-system . utf-8)))) 

यह किसी भी मोड और फ़ाइल को यह कोडिंग लागू होंगे:

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