Gedit, Gvim, Vim, Nano को एंड-ऑफ-फाइल न्यूलाइन चार जोड़ने से कैसे रोकें?


42

कभी-कभी मैं चाहता हूं कि पाठ फ़ाइल की अंतिम पंक्ति पाठ की एक सरल स्ट्रिंग हो, जिसमें कोई नई रेखा न हो । किसी अन्य फाइल को इसमें सम्मिलित करना।

कई संपादकों ने स्वचालित रूप से एक नया वर्ण जोड़कर मेरे पाठ को संशोधित किया है, भले ही मैंने Enter दबाया नहीं है ।

Remains unmodified: Emacs, SciTE, केट, ब्लूफिश, नोटपैड (शराब)

Newline is added: गेदित, गविम, विम, नैनो

मैं जानना चाहूंगा कि क्या Gedit, Gvim, और Vim को ट्विस्ट करने का कोई तरीका है जो मैंने टाइप किया है उसे बचाने के लिए .... और यहाँ तक कि नैनो भी काम आ सकती है।

मैं वर्तमान में Gedit का उपयोग करता हूं, और मैं Gvim / Vim में डब्बल कर रहा हूं .. इसलिए यह जानना उपयोगी होगा कि इन पर / बंद "टॉगल" कैसे करें ...

पुनश्च । Gedit, Gvim, और Vim में समान फ़ाइल को फिर से खोलने पर, कर्सर का एंड-ऑफ़-फ़ाइल प्लेसमेंट पाठ के अंत में है, जबकि इसे वास्तव में अगली (खाली) लाइन पर दिखाना चाहिए। यह भ्रामक है (लेकिन ऐसा इसलिए है क्योंकि मैं इसका उपयोग करता हूं)।

मैंने उपरोक्त पर्यवेक्षकों की जांच के लिए एक हेक्सेडिटर का उपयोग किया।

जवाबों:


49

के लिए जीएडिट वहाँ अक्षम एक नई पंक्ति अंत में सम्मिलित होने के लिए एक तरीका हो प्रतीत नहीं होता देख इस जवाबजीडिट स्थापित करें

के लिए विम विम स्थापित करें (और जाँचने विम स्थापित करें ) आप कर सकते हैं - निम्नलिखित विकल्प को क्रियान्वित करते हुए: :set binary। बाइनरी पर सेट करना फ़ाइल को सहेजना होगा जैसा कि दस्तावेज़ के अंत में एक नई रेखा सम्मिलित नहीं है (जब तक कि पहले से ही एक नहीं है, जिसमें इसे बरकरार रखा जाएगा)। किसी भी समय आप इस विकल्प को बदल सकते हैं :set nobinary

नैनो नैनो स्थापित करें थोड़ी आसान है। आप -Lझंडे के साथ नैनो लॉन्च कर सकते हैं (या --nonewlinesयदि आप दृश्य प्रकार अधिक हैं)। यह फ़ाइल के अंत में नईलाइन के स्वचालित जोड़ को अक्षम कर देगा (इसलिए जब तक कि वास्तव में दर्ज नहीं किया गया था)। आदर्श रूप से आप इस उपनाम को अपने में सेटअप कर सकते हैं ~/.bashrc: alias nano="nano -L"जो नैनो को लॉन्च करेगा जिसमें कोई नया अंक नहीं होगा!

चूँकि मुझे नहीं पता कि आप जो कर रहे हैं, वह आपको इंगित करने जा रहा है कि फाइल एक नई पंक्ति के साथ क्यों समाप्त होनी चाहिए? जो समझा सकते हैं कि वे वहां क्यों हैं। कुछ अनुप्रयोगों में विफल हो जाएगा अगर वे EOLसीधे एक से पहले नहीं मिलता हैEOF


1
धन्यवाद मार्को, एक महान जवाब ... "व्हाई शॉड्स ..." "व्हिस" का एक दिलचस्प संग्रह है ... मैं व्यक्तिगत रूप से बहुत "न्यूलाइन अवेयर" हूं (इसीलिए मैंने इसे नोट किया :) लेकिन यह निश्चित रूप से एक दृश्य है सभी के लिए अच्छा संदर्भ (स्वयं शामिल) ... लेकिन मैं यह जानना पसंद करता हूं कि मैंने इसे जोड़ा, या नहीं जोड़ा ... शायद
गेडिट के

3
ऐसा लगता है कि Gvim / Vim के लिए इसे सेट करने के लिए दो विकल्पों की आवश्यकता है ... प्रति के रूप में : मदद eol ...When writing a file and this option ('eol') is off and the 'binary' option is on, no EOL will be written for the last line in the file.
पीटर।

1
गेडिट (लॉन्चपैड) को इस मुद्दे के बारे में पता है, और यह "इच्छा सूची" पर है .... (मैं चाहता हूं, लेकिन मैं इस एक के लिए अपनी सांस नहीं पकड़ूंगा! अगर इस अर्क का मतलब कुछ भी है: "... (यह) ) बल्कि उपयोगकर्ताओं को भ्रमित करेगा "
पीटर।

2
नैनो के लिए, आप डिफ़ॉल्ट रूप से मोड set nonewlinesका उपयोग करने के लिए ~ / .nanorc (या / etc / nanorc) में डाल सकते हैं -L
mwfearnley

Editorconfig (editorconfig, org) का उपयोग करें - vim और gedit के लिए उपलब्ध प्लगइन्स। अपनी .editorconfig फ़ाइल में वांछित विकल्प निर्दिष्ट करें।
ddbug

16

जीडिट के लिए:

यदि आप Ubuntu 12.04 या इसके बाद के संस्करण का उपयोग कर रहे हैं, तो आप पहले से ही व्यवहार सेट कर सकते हैं।

एक ग्राफिकल यूजर इंटरफेस के माध्यम से:

  1. भागो संपादक ( dconf-editor)
  2. पर जाएं orggnomegeditpreferenceseditor
    (या बस के लिए खोज ensure-trailing-newline)
  3. ensure-trailing-newlineयदि आप स्वचालित रूप से जोड़े गए नए लिंक नहीं चाहते हैं तो अनचेक करें ।

कमांड लाइन पर:

  1. एक टर्मिनल खोलें ( ctrl+ alt+ T)
  2. निम्नलिखित कमांड दर्ज करें

    gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
    

    और आपने कल लिया।

संदर्भ | लॉन्चपैड बग


1
धन्यवाद। यह जानकर अच्छा लगा। मैंने इसे आज़माया है और यह काम करता है ... (+1)
पीटर।

क्या आघात संपादक के बारे में? (
आघात के

0

अगर आप सिर्फ सिंगल लाइन फाइल लिखना चाहते हैं, तो इको शायद सबसे आसान उपाय है:

echo -n "the contents of my file" > myfile
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.