बुनियादी जानकारी
विम बफर में नवीनतम न्यूलाइन नहीं दिखाता है, लेकिन वास्तव में विम आपको फाइल लिखते समय हमेशा ईओएल को रखता है, क्योंकि यह यूनिक्स सिस्टम में टेक्स्ट फाइलों के लिए मानक है। आप इसके बारे में अधिक जानकारी यहाँ पा सकते हैं । संक्षेप में, आपको फ़ाइल के अंत में नई लाइनों की अनुपस्थिति के बारे में चिंता करने की ज़रूरत नहीं है।
प्रयोग १
इस व्यवहार को जांचने के लिए आप यह छोटा सा प्रयोग कर सकते हैं। टर्मिनल निष्पादन में:
$ 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
वर्णों को $
संकेत के रूप में दिखाएगा ।