लिनक्स पर वीआई: डीओएस-प्रारूप फाइलों के लिए ^ ^ लाइन एंडिंग


10

सोलारिस पर, यदि आप vi में एक फाइल खोलते हैं जिसमें विंडोज लाइन एंडिंग है, तो यह हर लाइन के अंत में ^ M के रूप में दिखाई देता है।

लिनक्स पर, vi चतुर है और विंडोज फ़ाइल प्रारूप को समझता है, और ^ M प्रदर्शित नहीं करता है।

क्या इस संबंध में लिनक्स vi को सोलारिस के समान व्यवहार करने के लिए एक सेटिंग है?

हमारे लिए एक सामान्य समस्या एक (विंडोज) देव बॉक्स से एक शेल स्क्रिप्ट को कॉपी करना और इसे dos2unix पर भूलना और फिर ठीक से काम नहीं करने पर भ्रमित होना है। Solaris पर यह समस्या स्पष्ट है जैसे ही आप फ़ाइल को वाइ-फाइ करते हैं, लेकिन लिनक्स पर नहीं।

धन्यवाद।


लिनक्स पर, vi आमतौर पर Bram Moolenaar की विम है , मुझे उम्मीद है कि Solaris पर vi बिल जोय vi , मूल, प्रामाणिक लेकिन कम सक्षम है।
RedGrittyBrick 10

मेरे vimद्वारा, डिफ़ॉल्ट रूप से मैं आमतौर पर नहीं देखता हूं ^M, लेकिन कभी-कभी फ़ाइल के अंत में एक होता है।
trysis

जवाबों:


10

:set ffs=unixVi शुरू करने का प्रयास करें (या vimrc में डिफ़ॉल्ट के रूप में सेट करें) जो सभी CR वर्णों को प्रदर्शित करना चाहिए ^M

vi ऑटो-अनुमान जो प्रारूप का उपयोग करता है कि क्या यह सिर्फ एलएफ या सीआर / एलएफ दोनों में समाप्त होने वाली लाइनों का सामना करता है या नहीं।


2
@RedGrittyBrick - मेरे सिस्टम पर, सभी लाइनों (यूनिक्स और डॉस प्रारूप) के अंत में :set listदिखाता है $, इसलिए दोनों के बीच अंतर करने में मदद नहीं करता है।
sss

@sss: मेरी गलती है, मैं टिप्पणी हटा दूंगा।
RedGrittyBrick 10

2
@gman - इस कमांड ने मेरे लिए ठीक काम नहीं किया - मुझे मिला Not an editor command: ffs=unix- लेकिन मुझे सही रास्ते पर सेट किया। रनिंग :set ffs=unixफ़ाइल vi में खुला के साथ नहीं किया काम - कोई त्रुटि लेकिन कुछ नहीं हुआ। मैंने set ffs=unixअपनी .vimrc फ़ाइल में डाला और वह काम कर गई।
sss

मैंने ठीक वैसा ही अनुभव किया जैसे @sss
SSH This

इस प्रकार सावधानी से तैयार उपयोगकर्ता विन्यास को भ्रष्ट करता है। मैं सबसे अधिक संभावना ffsयह है कि जिस तरह से है। लेकिन @wisbucky से जवाब देखिए।
फोर्क0

2

वर्तमान फ़ाइल के लिए डॉस लाइन अंत दिखाने के लिए:

:e +ff=unix

यह बलों यूनिक्स के लिए fileformat है, जो प्रदान करेगा CRके रूप में^M


इस सेटिंग को स्थायी बनाने के लिए, इसमें जोड़ें ~/.vimrc:

set ffs=unix

ध्यान दें कि .vimrc सेटिंग है ffs, नहीं ff


यह होना चाहिए :e ++ff=unix, मुझे विश्वास है।
फोर्क0

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