फ़ाइल के अंत में नई पंक्ति न जोड़ें


11

बचत करते समय Vim हमेशा मेरी फ़ाइलों के अंत में एक नई पंक्ति जोड़ता है, और यह मेरी PHP लिपियों में त्रुटियां पैदा कर रहा है।

मैं इस नई लाइन को सेव पर कैसे नहीं जोड़ सकता हूँ?


7
"यह मेरी PHP लिपियों में त्रुटियां पैदा कर रहा है" -> यह अजीब है? PHP को एक अनुगामी न्यूलाइन के साथ ठीक काम करना चाहिए। वास्तव में, यह बहुत मानक है। शायद आपके पास एक रिक्त रेखा है जिसके बाद ?>PHP ब्राउज़र को आउटपुट करता है (जिससे "हेडर पहले से ही भेजा गया है" -रोर)? आपको एक अनुगामी की आवश्यकता नहीं है ?>, और आमतौर पर इसे इस समस्या को रोकने के लिए इसे छोड़ने की सिफारिश की जाती है।
मार्टिन टूरनोइज

मुझे लगता है कि भ्रामक है। हमारी स्क्रिप्ट किसी भी आउटपुट को एक त्रुटि के रूप में व्याख्या करती है।
दान


1
नहीं। विम नई लाइन नहीं जोड़ रहा है।
रोमेनैल

जवाबों:


11

यह एक पूर्ण रिक्त रेखा नहीं है, अंतिम पंक्ति के अंत में सिर्फ एक अंतिम नई रेखा है। यूनिक्स उपकरण (जैसे विम की विरासत) इसे जोड़ने पर जोर देते हैं, जबकि विंडोज ऑपरेटिंग सिस्टम इतना सख्त नहीं है। आप इस पर और अधिक पढ़ सकते हैं कि फाइल को नईलाइन के साथ क्यों समाप्त करना चाहिए?

दुर्भाग्य से, विम को अंतिम न्यूलाइन लिखने से रोकने के लिए यह काफी जटिल है। मेरा संरक्षणकर्ता प्लगइन ऐसा कर सकता है। दृष्टिकोणों की चर्चा के लिए, फ़ाइल के अंत में VIM अक्षम करें स्वचालित Newline देखें ।


भविष्य के पाठकों के लिए बस यह देखते हुए कि यह उत्तर उस समय बहुत ही अच्छा था, विम के अधिक हाल के संस्करणों में बाद में पोस्ट किए गए उत्तर में बहुत सरल समाधान है
रिच

11

विम के नए संस्करणों में अंत में इसके लिए एक विकल्प है

विम 7.4.785 'फिक्सेल' विकल्प को जोड़ता है जिसे फ़ाइल के अंत में किसी भी लापता ईओएल को स्वचालित रूप से संरक्षित करने के लिए अक्षम किया जा सकता है।

(देखें विकी पेज: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )

आपके ~/.vimrcइस पंक्ति में:

set nofixeol

Relaunch vim, अब यह फ़ाइल के अंत में नई पंक्ति नहीं जोड़ना चाहिए।

(केवल संस्करण 85.४.) )५ से काम करता है)


0

क्या आपने फ़ाइल को बाइनरी मोड में खोलने की कोशिश की है? कोशिश करो vim -b file_name। यह फ़ाइल के अंत में नई लाइन नहीं जोड़ना चाहिए।


मैंने ऐसा करने की कोशिश की, और फिर xxdसत्यापन के लिए उपयोग किया, लेकिन यह अभी 0aभी द्विआधारी मोड में एक लाइनफीड ( ) जोड़ता है।
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.