क्या किसी को लिनक्स पर एक टेक्स्ट एडिटर के बारे में पता है जो मुझे लाइन ब्रेक और कैरिज रिटर्न देखने की अनुमति देता है? क्या विम इस सुविधा का समर्थन करता है?
क्या किसी को लिनक्स पर एक टेक्स्ट एडिटर के बारे में पता है जो मुझे लाइन ब्रेक और कैरिज रिटर्न देखने की अनुमति देता है? क्या विम इस सुविधा का समर्थन करता है?
जवाबों:
:set listVim में व्हॉट्सएप दिखाएंगे। लाइनों का अंत ' $' के रूप में दिखाता है और गाड़ी का रिटर्न आमतौर पर ' ^M' के रूप में दिखाई देता है ।
:set listनहीं दिखाएंगे ^M। -bVi / vim के विकल्प पर काम करेंगे। या, एक बार विम लोड हो जाने पर टाइप करें::e ++ff=unix
:set nolist
आधिकारिक उत्तर से असहमत होने के लिए:
:set listहोगा नहीं दिखाने ^ एम वर्ण (सीआरएस)। Vi / vim को -b विकल्प देने से काम चल जाएगा। या, एक बार विम लोड होने के बाद टाइप करें :e ++ff=unix।
:help editदिखाता है e[dit]! [++opt] [+cmd]। और :help ++eकहते हैं कि [++ ऑप्ट] तर्क का इस्तेमाल 'फाइलफॉर्मैट' [..] के मूल्य को मजबूर करने के लिए किया जा सकता है ।
:set listन्यूलाइन दिखाता है ( $), :e ++ff=unixसीआर दिखाता है ( ^M); यदि आप दोनों को देखना चाहते हैं, :set listतो:e ++ff=unix
:set ff=unixविम को लाइन एंडिंग्स को यूनिक्स शैली में बदलने के लिए कहता है (फ़ाइलफॉर्म सेट करने के भाग के रूप में), इसलिए ^ एम अक्षर अब नहीं हैं (और इसलिए प्रदर्शित नहीं हैं)। :e ++ff=unixइसे फाइलफोर्मेट को बलपूर्वक सेट करने के लिए कहता है क्योंकि unixवास्तव में सामग्री को बदले बिना। तो विम इसे यूनिक्स फ़ाइल की तरह पढ़ता है, सीआर के पात्रों को अतिरिक्त रूप से देखता है और उन्हें ^ एम के रूप में प्रदर्शित करता है।
vimकिसी कारण से मेरे लिए काम नहीं करता है ... मेरा मतलब है कि न तो -bविकल्प, न ही :e ++ff=unixजब अंदर :(
VI x0Aअगली पंक्ति में बाद के पाठ को दिखाते हुए नईलाइन (LF वर्ण, कोड ) दिखाता है।
-bबाइनरी मोड के लिए स्विच का उपयोग करें । जैसे vi -b filenameया vim -b filename --।
इसके बाद सीआर अक्षर ( x0D) दिखाए जाएंगे , जो आमतौर पर यूनिक्स शैली की फाइलों में पात्रों के रूप में उपयोग नहीं किए जाते हैं ^M।
Unixपर्यावरण में काम करता हूं । लेकिन मैं चाहूंगा कि अगर कोई फाइल है तो विंडोज टाइप लाइन एंडिंग के बारे में चेतावनी दी जाए। विल vi -b filenameया :set binaryसिर्फ ^Mयह दिखाएगा कि यह एक विंडोज़ प्रकार की फ़ाइल है और कोई अन्य पंक्ति अंत नहीं है?
सिर्फ यह स्पष्ट करने के लिए कि :set listसीआर के ^Mबिना क्यों नहीं दिखाया जाएगा e ++ff=unixऔर :set listइसका कुछ भी लेना-देना नहीं है ^M।
आंतरिक रूप से जब विम एक फाइल को अपने बफर में पढ़ता है, तो यह सभी लाइन-एंडिंग अक्षरों को अपने स्वयं के प्रतिनिधित्व के साथ बदल देता है (चलो इसे कॉल करते हैं $)। यह निर्धारित करने के लिए कि कौन से वर्ण हटाए जाने चाहिए, यह सबसे पहले पता लगाता है कि किसी फ़ाइल में कौन-सी प्रारूप पंक्ति अंत संग्रहीत हैं। यदि केवल CRLF हैं'\r\n' या केवल सीआर '\r'या केवल वामो '\n'लाइन न खत्म होने वाली वर्ण, तो 'fileformat'के लिए सेट है dos, macऔर unixक्रमशः।
जब listविकल्प सेट किया जाता है, तो विम $चरित्र प्रदर्शित करता है जब लाइन ब्रेक हुआ तो कोई बात नहीं कि क्या fileformatविकल्प का पता चला है। यह लाइन-ब्रेक के अपने आंतरिक प्रतिनिधित्व का उपयोग करता है और यही वह प्रदर्शित करता है।
अब जब आप डिस्क पर बफर लिखते हैं , तो Vim लाइन-एंडिंग कैरेक्टर्स को उसी के अनुसार सम्मिलित करता हैfileformat विकल्पों का पता लगा लेता है, जो अनिवार्य रूप से उन सभी आंतरिक $को उपयुक्त वर्णों के साथ परिवर्तित करता है । अगर fileformatऐसा हुआ है unixतो यह बस \nअपने आंतरिक लाइन-ब्रेक के स्थान पर लिखेगा ।
चाल विम को एक dosएनकोडेड फ़ाइल को unixएक के रूप में पढ़ने के लिए मजबूर करने के लिए है । शुद्ध प्रभाव यह है कि यह सभी अछूते को \nछोड़ देगा \rऔर उन्हें ^Mआपके बफर में प्रदर्शित करेगा । :set listइसके अतिरिक्त सेटिंग आंतरिक रेखा-अंत दिखाएगा $। आखिरकार, आप एन्कोडेड लाइन-ब्रेक के ^M$स्थान पर देखते हैं dos।
यह भी ध्यान दें कि :set listकुछ भी दिखाने से कोई लेना-देना नहीं है ^M। आप listएकल मोड का उपयोग करके अपने द्वारा जाँच कर सकते हैं (सुनिश्चित करें कि आपके पास पहले अक्षम विकल्प है) , सम्मिलित मोड में CTRL-Vइसके बाद एकल सीआर का उपयोग करके Enter। डिस्क पर बफर लिखने और इसे फिर से खोलने के बाद आप विकल्प 0 पर सेट होने के ^Mबावजूद देखेंगे list।
आप http://vim.wikia.com/wiki/File_format पर या :help 'fileformat'विम टाइप करके फ़ाइल स्वरूपों के बारे में और जानकारी प्राप्त कर सकते हैं ।
निम्न आदेश का प्रयास करें।
: बाइनरी सेट करें
VIM में, यह "-b" कमांड लाइन विकल्प का उपयोग करने के समान कार्य करना चाहिए। यदि आप इसे अपने स्टार्टअप (यानी .vimrc) फ़ाइल में रखते हैं, तो यह हमेशा आपके लिए लागू रहेगा।
कई * nix सिस्टम पर, "dos2unix" या "unix2dos" कमांड होती है, जो फाइल को प्रोसेस कर सकती है और किसी भी संदिग्ध लाइन को समाप्त करने वाली समस्याओं को ठीक कर सकती है। यदि लाइन एंडिंग में कोई समस्या नहीं है, तो फ़ाइलों को बदला नहीं जाएगा।
set binaryऐसा नहीं है vim -b filename.py। कोई विचार क्यों? मैंने जांच की helpऔर ऐसा लगता है कि आप जो कहते हैं वह आम तौर पर सही है। मैं यह कैसे पता लगाऊंगा कि ऐसा क्यों है?
:e ++ff=unix^Mसही ढंग से दिखाता है और इसे तब नहीं दिखाता है जब मैं unixटाइप फ़ाइलों का उपयोग करता हूं .. इसलिए मुझे लगता है कि समस्या अब के लिए हल हो गई है ...
मैं आपको अपने .vimrc फ़ाइल को संपादित करने के लिए सुझाव देता हूं, आदेशों की सूची चलाने के लिए। अपनी .vimrc फ़ाइल को इस तरह संपादित करें:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
जब आप vim निष्पादित कर रहे हैं, तो .vimrc में कमांड निष्पादित किए जाते हैं, और आप इस उदाहरण को देख सकते हैं:
My line with CRLF eol here ^M¶
का उपयोग करके catऔर -Aआप के रूप $में टैब के रूप में नई लाइनें देख सकते हैं^I
cat -A myfile
आप gedit का उपयोग करके ब्रेक लाइनें देख सकते हैं एडिटर ।
सबसे पहले, यदि आपने स्थापित नहीं किया है:
sudo apt-get install gedit
अब, gedit प्लगइन्स इंस्टॉल करें :
sudo apt-get install gedit-plugins
और ड्रा स्पेसेस प्लगइन का चयन करें , वरीयताएँ दर्ज करें, और ड्रा नई लाइनें चुनें
VSCode का उपयोग करके आप लाइन एंडिंग एक्सटेंशन स्थापित कर सकते हैं ।
उदात्त पाठ 3 में एक प्लगइन है जिसे रॉलाइनएडिट कहा जाता है जो लाइन एंडिंग प्रदर्शित करेगा और मनमाने ढंग से समाप्त होने वाले प्रकार के सम्मिलन की अनुमति देगा
shift + ctrl + p और प्लगइन का नाम टाइप करना शुरू करें, और लाइन समाप्त दिखाने के लिए टॉगल करें।