संपादक में लाइन ब्रेक और कैरिज रिटर्न देखें


180

क्या किसी को लिनक्स पर एक टेक्स्ट एडिटर के बारे में पता है जो मुझे लाइन ब्रेक और कैरिज रिटर्न देखने की अनुमति देता है? क्या विम इस सुविधा का समर्थन करता है?


1
नोट: कभी-कभी न्यूलाइन ($) और कैरेज रिटर्न (^ M) MANY रंग योजनाओं में छिपे होते हैं, और पोटीन से ssh का उपयोग करते समय भी।
वैनेसा सांचेज़

1
ओपी मुझे लगता है कि आपको चयनित उत्तर पर पुनर्विचार करना चाहिए। चयनित उत्तर काम नहीं करता है। लेकिन CaptSaltyJack उत्तर अच्छी तरह से काम करता है।
JavaSheriff

ओपी क्या दिखाएगा BOTH @arno का समाधान है। मुझे बीओटीएच को देखने की जरूरत है, क्योंकि मेरे पास सभी 3 फाइलफॉर्मेट्स का उपयोग करके बेतरतीब ढंग से एक फाइल है ... और अर्नो का समाधान काम करता है
वेन वॉकर

जवाबों:


139

:set listVim में व्हॉट्सएप दिखाएंगे। लाइनों का अंत ' $' के रूप में दिखाता है और गाड़ी का रिटर्न आमतौर पर ' ^M' के रूप में दिखाई देता है ।


2
यहाँ एक ही सवाल: superuser.com/questions/97692/…
एलेक जैकबसन

254
गलत, वर्ण (CR) :set listनहीं दिखाएंगे ^M-bVi / vim के विकल्प पर काम करेंगे। या, एक बार विम लोड हो जाने पर टाइप करें::e ++ff=unix
CaptSaltyJack

15
FYI करें, "सेट की सूची" मोड, उपयोग बंद करने के लिए:set nolist
Tomofumi

@Tomofumi अपने संपादन के साथ एक स्वागत किया जाएगा!
पिपो

1
गलत जवाब। : सेट सूची में M अक्षर (CR) नहीं दिखाए जाएंगे। Vi / vim के लिए -b विकल्प काम करेगा।
नैनोसॉफ्ट

265

आधिकारिक उत्तर से असहमत होने के लिए:

:set listहोगा नहीं दिखाने ^ एम वर्ण (सीआरएस)। Vi / vim को -b विकल्प देने से काम चल जाएगा। या, एक बार विम लोड होने के बाद टाइप करें :e ++ff=unix


4
यह सिंटेक्स है। :help editदिखाता है e[dit]! [++opt] [+cmd]। और :help ++eकहते हैं कि [++ ऑप्ट] तर्क का इस्तेमाल 'फाइलफॉर्मैट' [..] के मूल्य को मजबूर करने के लिए किया जा सकता है
डेनिस

19
बस स्पष्ट करने के लिए, :set listन्यूलाइन दिखाता है ( $), :e ++ff=unixसीआर दिखाता है ( ^M); यदि आप दोनों को देखना चाहते हैं, :set listतो:e ++ff=unix
Yibo Yang

5
@ डेनिस की टिप्पणी पर विस्तार करने के लिए, :set ff=unixविम को लाइन एंडिंग्स को यूनिक्स शैली में बदलने के लिए कहता है (फ़ाइलफॉर्म सेट करने के भाग के रूप में), इसलिए ^ एम अक्षर अब नहीं हैं (और इसलिए प्रदर्शित नहीं हैं)। :e ++ff=unixइसे फाइलफोर्मेट को बलपूर्वक सेट करने के लिए कहता है क्योंकि unixवास्तव में सामग्री को बदले बिना। तो विम इसे यूनिक्स फ़ाइल की तरह पढ़ता है, सीआर के पात्रों को अतिरिक्त रूप से देखता है और उन्हें ^ एम के रूप में प्रदर्शित करता है।
सूंदर -

2
न तो अभी भी vimकिसी कारण से मेरे लिए काम नहीं करता है ... मेरा मतलब है कि न तो -bविकल्प, न ही :e ++ff=unixजब अंदर :(
RAM237

3
सब ठीक है: ई ++ एफएफ = यूनिक्स ने काम किया। अब मैं इसे कैसे बंद करूं?
क्रोक

78

VI x0Aअगली पंक्ति में बाद के पाठ को दिखाते हुए नईलाइन (LF वर्ण, कोड ) दिखाता है।

-bबाइनरी मोड के लिए स्विच का उपयोग करें । जैसे vi -b filenameया vim -b filename --

इसके बाद सीआर अक्षर ( x0D) दिखाए जाएंगे , जो आमतौर पर यूनिक्स शैली की फाइलों में पात्रों के रूप में उपयोग नहीं किए जाते हैं ^M


मुझे आमतौर पर लाइन को समाप्त होते हुए देखने की आवश्यकता नहीं है, क्योंकि मैं ज्यादातर Unixपर्यावरण में काम करता हूं । लेकिन मैं चाहूंगा कि अगर कोई फाइल है तो विंडोज टाइप लाइन एंडिंग के बारे में चेतावनी दी जाए। विल vi -b filenameया :set binaryसिर्फ ^Mयह दिखाएगा कि यह एक विंडोज़ प्रकार की फ़ाइल है और कोई अन्य पंक्ति अंत नहीं है?
अल्फा_989

31

सिर्फ यह स्पष्ट करने के लिए कि :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'विम टाइप करके फ़ाइल स्वरूपों के बारे में और जानकारी प्राप्त कर सकते हैं ।


11

निम्न आदेश का प्रयास करें।

: बाइनरी सेट करें

VIM में, यह "-b" कमांड लाइन विकल्प का उपयोग करने के समान कार्य करना चाहिए। यदि आप इसे अपने स्टार्टअप (यानी .vimrc) फ़ाइल में रखते हैं, तो यह हमेशा आपके लिए लागू रहेगा।

कई * nix सिस्टम पर, "dos2unix" या "unix2dos" कमांड होती है, जो फाइल को प्रोसेस कर सकती है और किसी भी संदिग्ध लाइन को समाप्त करने वाली समस्याओं को ठीक कर सकती है। यदि लाइन एंडिंग में कोई समस्या नहीं है, तो फ़ाइलों को बदला नहीं जाएगा।


दुर्भाग्य से मेरे सिस्टम (Ubuntu 16.04) में set binaryऐसा नहीं है vim -b filename.py। कोई विचार क्यों? मैंने जांच की helpऔर ऐसा लगता है कि आप जो कहते हैं वह आम तौर पर सही है। मैं यह कैसे पता लगाऊंगा कि ऐसा क्यों है?
अल्फा_989

:e ++ff=unix^Mसही ढंग से दिखाता है और इसे तब नहीं दिखाता है जब मैं unixटाइप फ़ाइलों का उपयोग करता हूं .. इसलिए मुझे लगता है कि समस्या अब के लिए हल हो गई है ...
Alpha_989

6

मैं आपको अपने .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¶

2

का उपयोग करके catऔर -Aआप के रूप $में टैब के रूप में नई लाइनें देख सकते हैं^I
cat -A myfile


0

आप gedit का उपयोग करके ब्रेक लाइनें देख सकते हैं एडिटर ।

सबसे पहले, यदि आपने स्थापित नहीं किया है:

sudo apt-get install gedit

अब, gedit प्लगइन्स इंस्टॉल करें :

sudo apt-get install gedit-plugins

और ड्रा स्पेसेस प्लगइन का चयन करें , वरीयताएँ दर्ज करें, और ड्रा नई लाइनें चुनें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

VSCode का उपयोग करके आप लाइन एंडिंग एक्सटेंशन स्थापित कर सकते हैं ।

उदात्त पाठ 3 में एक प्लगइन है जिसे रॉलाइनएडिट कहा जाता है जो लाइन एंडिंग प्रदर्शित करेगा और मनमाने ढंग से समाप्त होने वाले प्रकार के सम्मिलन की अनुमति देगा

shift + ctrl + p और प्लगइन का नाम टाइप करना शुरू करें, और लाइन समाप्त दिखाने के लिए टॉगल करें।

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