बुनियादी जानकारी
विम बफर में नवीनतम न्यूलाइन नहीं दिखाता है, लेकिन वास्तव में विम आपको फाइल लिखते समय हमेशा ईओएल को रखता है, क्योंकि यह यूनिक्स सिस्टम में टेक्स्ट फाइलों के लिए मानक है। आप इसके बारे में अधिक जानकारी यहाँ पा सकते हैं । संक्षेप में, आपको फ़ाइल के अंत में नई लाइनों की अनुपस्थिति के बारे में चिंता करने की ज़रूरत नहीं है।
प्रयोग १
इस व्यवहार को जांचने के लिए आप यह छोटा सा प्रयोग कर सकते हैं। टर्मिनल निष्पादन में:
$ vim test_test
चरित्र दर्ज करें 1और फ़ाइल सहेजें :wq।
आपके पास फ़ाइल में केवल एक वर्ण है, है ना? वास्तव में नहीं :) आपके पास अब आपकी फ़ाइल 1और LFवर्ण हैं। आइए इसे जाँचें, हेक्सडम्प उपयोगिता के साथ:
$ hexdump test_test
0000000 31 0a
0000002
31चरित्र के लिए ASCII कोड है 1, और 0aगैर-मुद्रण LFवर्ण के लिए ASCII कोड है जो UNIX के लिए है क्योंकि आप पहले से ही लाइन के अंत के लिए कोड जान सकते हैं।
प्रयोग २
लेकिन क्या होगा अगर हम फाइल को खोलेंगे जिसमें फाइल eolके अंत में प्रतीक नहीं है । आइए इसे भी जांचें। आइए बिना अंत में फाइल बनाएं, उदाहरण के लिए:
$ echo -n "1" > test_without_eol
तो फिर आइए इसके अंदर देखें हेक्सडंप के साथ:
$ hexdump test_without_eol
000000 31
0000001
इसलिए यहां कोई eolपात्र नहीं है। आइए इस फाइल को vim में खोलें:
$ vim test_without_eol
संपादक के तल पर आप देखेंगे:
"test_without_eol" [noeol] 1L, 1C
और यदि आप इस फ़ाइल को सहेजेंगे तो eolवर्ण स्वचालित रूप से डाला जाएगा।
हम इस बारे में क्या कर सकते हैं?
यदि आपको वास्तव में फ़ाइल का अंत देखने की आवश्यकता है। इस आदेश का उपयोग करने का प्रयास करें:
:set listchars=eol:$
यह सभी eolवर्णों को $संकेत के रूप में दिखाएगा ।