क्या किसी को लिनक्स पर एक टेक्स्ट एडिटर के बारे में पता है जो मुझे लाइन ब्रेक और कैरिज रिटर्न देखने की अनुमति देता है? क्या विम इस सुविधा का समर्थन करता है?
क्या किसी को लिनक्स पर एक टेक्स्ट एडिटर के बारे में पता है जो मुझे लाइन ब्रेक और कैरिज रिटर्न देखने की अनुमति देता है? क्या विम इस सुविधा का समर्थन करता है?
जवाबों:
:set list
Vim में व्हॉट्सएप दिखाएंगे। लाइनों का अंत ' $
' के रूप में दिखाता है और गाड़ी का रिटर्न आमतौर पर ' ^M
' के रूप में दिखाई देता है ।
:set list
नहीं दिखाएंगे ^M
। -b
Vi / 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
और प्लगइन का नाम टाइप करना शुरू करें, और लाइन समाप्त दिखाने के लिए टॉगल करें।