Im এম অক্ষরটি ভিমের অর্থ কী?


500

আমি ^Mআমার ভিএমআরসি-তে চরিত্র পেতে থাকি এবং এটি আমার কনফিগারেশনটি ভঙ্গ করে।


35
BTW এই একটি দুর্দান্ত সম্পদ।
অরবিট

টুইট লিঙ্কটি মারা গেছে বলে আমি আমার মন্তব্য প্রত্যাহার করেছি।
আর্টঅফ ওয়ারফেয়ার

3
@ লাইটনেসেসেসিনআরবিট লিঙ্কের জন্য মিরর, যা এই মুহুর্তে নীচে রয়েছে: ফিফি.আর
ভিম

4
:digraphsভিএম-এর মধ্যে টাইপ করা ডিগ্রাফ-টেবিলটি দেখায় যা @ লাইটনেসেসেসিনঅরবিট লিঙ্ক করেছে।
askewchan

1
পিএইচপি ব্যবহার করে এই ধরণের চরিত্রটি প্রতিস্থাপনের চেষ্টা করার সময়, preg_replace('/[\x01]/', ' ' ,$str); আশা করি এটি সাহায্য করে।
র্যাচেল জেলার

উত্তর:


561

ইউনিক্স একটি নতুন লাইন চরিত্রের জন্য 0xA ব্যবহার করে। উইন্ডোজ দুটি অক্ষরের সংমিশ্রণ ব্যবহার করে: 0xD 0xA। 0xD হ'ল ক্যারেজ রিটার্ন চরিত্র। ^Mভিমটি 0xD (0x0D = 13, এম ইংরাজির বর্ণমালার 13 তম বর্ণ) প্রদর্শন করে be

আপনি ^Mনিম্নলিখিতটি চালিয়ে সমস্ত অক্ষর মুছে ফেলতে পারেন :

:%s/^M//g

কোথায় ^Mচেপে ধরে দ্বারা প্রবেশ করানো হয় Ctrlএবং টাইপ vদ্বারা অনুসরণ m, এবং তারপর মুক্তি Ctrl। এটি কখনও কখনও সংক্ষেপে সংক্ষেপিত হয় ^V^Mতবে মনে রাখবেন যে আপনাকে এটি অবশ্যই আক্ষরিকভাবে টাইপ করার পরিবর্তে পূর্ববর্তী বাক্যে বর্ণিত হিসাবে লিখতে হবে।

এই অভিব্যক্তিটি ^Mখালি স্ট্রিং (অর্থাত্ কিছুই নয়) এর সমস্ত উপস্থিতি প্রতিস্থাপন করবে । আমি ^Mউইন্ডোজ থেকে ইউনিক্স (সোলারিস, লিনাক্স, ওএসএক্স) অনুলিপি করা ফাইলগুলি থেকে মুক্তি পেতে এটি ব্যবহার করি ।


9
আপনি যদি উইন্ডোতে থাকেন তবে Ctrl + V সম্ভবত পেস্ট করার জন্য ম্যাপ করা হবে। যদি কেসটি হয় তবে ডিফল্টগুলি "বিশেষ চরিত্রের পলায়ন" কীটি পুনরায় তৈরি করে এটি Ctrl + Q এ দেয়।
আর মার্টিনহো ফার্নান্দিস

8
আসল প্রশ্নটি হ'ল ভিম কখনও কখনও স্বয়ংক্রিয়ভাবে লাইন শেষগুলি সনাক্ত করে এবং সঠিকভাবে প্রদর্শন করে এবং কখনও কখনও তা হয় না।
স্কট

10
আপনি যদি ^Mঅক্ষরটি দেখতে পান তবে অক্ষরটি দেখতে পাবেন । টমাসজ প্রদত্ত কমান্ডটি ব্যবহার করুন, তারপরে :fileformat={unix|dos|mac}আপনি কোন ওএসকে টার্গেট করছেন তার উপর নির্ভর করে টাইপ করুন। ^Mচরিত্র ব্যতীত যদি কয়েকটি লাইন থাকে তবে আপনি সম্ভবত এটি চান :fileformat=dos। আপনি যদি ভিএম ব্যতীত অন্য কোনও সম্পাদকের মধ্যে ফাইল সম্পাদনা করছেন তবে নিশ্চিত হয়ে নিন যে এটি লাইন শেষের সাথে মেলানোর জন্য কনফিগার করা হয়েছে (নোটপ্যাড এটি করবে না, তবে নোটপ্যাড ++ বা টেক্সটমেটের মতো কোনও স্বনামধন্য সম্পাদক তা করবে)।
মিকেল পলসন

9
নতুনদের জন্য নোট করুন vi, সেই কমান্ডটি ম্যানুয়ালি টাইপ করা দরকার। এটি viচলমান সহ একটি উন্মুক্ত টার্মিনাল এ আটকানো একটি "প্যাটার্ন খুঁজে পাওয়া যায় না" ত্রুটির ফলস্বরূপ।
আইকিউআন্দ্রিয়াস

51
@ ব্লুজেম :%s/\r//gআমার ফাইলটিতে ক্যারেজ রিটার্ন প্রতিস্থাপন করতে আসলে আমার প্রয়োজন ছিল । আমার কাছে a এম অক্ষরের একটি গুচ্ছ থাকা ফাইলটিতে "ভি ^ এম প্যাটার্নটি পাওয়া যায়নি
জনিবট

139
:%s/\r//g 

আমার জন্য আজ কাজ। তবে আমার পরিস্থিতি কিছুটা আলাদা হতে পারে।


1
g বিকল্পের প্রয়োজন নেই, প্রতি লাইনে একটি নতুন লাইন রয়েছে। :%s/\r//যথেষ্ট হবে।
ব্যাঙকোডার

7
জি বিকল্পটি খুব ভালভাবে প্রয়োজন হতে পারে, কারণ একটি গাড়ীর ফেরত অগত্যা কোনও নতুন লাইন নয়। যখন ইউনিক্স মোডে খোলানো হয়, ক্যারেজ রিটার্নটি কেবল অন্য একটি চরিত্র এবং যখন উইন্ডোজ মোডে খোলা হয়, তখনই লাইন ফিডের পরে ক্যারিয়ার রিটার্ন কেবল বিশেষ হয়।
জোনাথন বাল্ডউইন

65

নতুন লাইনটি মুছে ফেলার পরিবর্তে অনুবাদ করতে:

:%s/\r/\r/g

2
আসলে এটি করার কী আছে? আমার কাছে দেখে মনে হচ্ছে এটি পছন্দের মতো একটি প্রতিস্থাপন করছে যা আমি কল্পনাও করতে পারি না যে কোনও কিছু বদলে যাবে। সিনট্যাক্সটি এখানে কীভাবে কাজ করে সে সম্পর্কে আমি কি বিশেষ কিছু অনুভব করছি?
প্লাটিনাম আজুর

16
@ প্ল্যাটিনামএজুরি আমি জানি না কেন কেউ কখনও আপনার প্রশ্নের উত্তর দেওয়ার জন্য ভাবেনি। \rপ্রতিস্থাপন অংশ বনাম অনুসন্ধান অংশে বিভিন্ন আচরণ রয়েছে। উদাহরণস্বরূপ stackoverflow.com/a/3834303 দেখুন ।

অথবা :%s/^V^M/^V^M/g দেখতে এখানে
tomd

@ টমডি লিঙ্কটি আপনি যে মন্তব্যে মন্তব্য করছেন সেটিকে বোঝায়।
bzeaman

আমার জন্য এটি বিরক্তিকর অক্ষরগুলিকে অতিরিক্ত নিউলাইন দিয়ে প্রতিস্থাপন করেছে। @ dlk5730 উত্তর আমার জন্য আরও ভাল কাজ করেছে। যেমন:%s/\r//g
মার্কুশেপ

37

এর সম্ভবত অর্থ হ'ল আপনি গাড়ীর রিটার্ন পেয়েছেন (বিভিন্ন অপারেটিং সিস্টেমগুলি লাইনের শেষের সিগন্যাল দেওয়ার বিভিন্ন উপায়ে ব্যবহার করে)।

dos2unixফাইলগুলি ঠিক করতে বা ভিএম-তে ফাইল ফর্ম্যাটগুলি সেট করতে ব্যবহার করুন :

set ffs=unix,dos

19

ধরা যাক আপনার পাঠ্য ফাইলটি হ'ল - file.txt, তারপরে এই কমান্ডটি চালান -

dos2unix file.txt 

এটি পাঠ্য ফাইলটি ডস থেকে ইউনিক্স ফর্ম্যাটে রূপান্তর করে।


পুরোপুরি কাজ করে!
robe007

9

আমি একটি ম্যাক ব্যবহারকারীর মাধ্যমে উইন্ডোজ মেশিনে মূলত উত্পন্ন একটি পাঠ্য ফাইল পেয়েছি এবং এটি ব্যবহার করে এটি লিনাক্স মাইএসকিউএল ডিবিতে আমদানি করা দরকার load data কমান্ডটি ।

যদিও ভিআইএম '^ এম' চরিত্রটি প্রদর্শন করেছে, উপরোক্তগুলির কোনওটিই আমার বিশেষ সমস্যার জন্য কাজ করেনি, ডেটা আমদানি করবে তবে সর্বদা কোনওভাবে দুর্নীতিগ্রস্থ ছিল। শেষ পর্যন্ত সমাধানটি বেশ সহজ ছিল (অনেক হতাশার পরে)।

সমাধান: একই ফাইলটিতে dos2unix TWICE চালানো কৌতুকটি করেছিল! fileকমান্ড ব্যবহার করে দেখায় যে পথে কী ঘটছে।

$ file 'file.txt'
file.txt: ASCII text, with CRLF, CR line terminators

$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text, with CRLF line terminators

$ dos2unix 'file.txt'
dos2unix: converting file file.txt to UNIX format ...
$ file 'file.txt'
file.txt: ASCII text

এবং ফাইলের চূড়ান্ত সংস্করণটি পুরোপুরি ডাটাবেসে আমদানি করে।



9

আমি সেড দিয়ে সমস্ত মুছে ফেলেছি:

sed -i -e 's/\r//g' <filename>

একটি ভিন্ন স্ট্রিং বা চরিত্রের সাথে প্রতিস্থাপন করতে পারে:

sed -i -e 's/\r/string/g' <filename>

এই sedকমান্ডগুলি জিএনইউ / লিনাক্স সংস্করণে কাজ করে sedতবে বিএসডিগুলিতে (ম্যাকোস সহ) টুইট করার প্রয়োজন হতে পারে।


4

আপনি এটি ব্যবহার করে ভিএম এ ঠিক করতে পারেন

:1,$s/^V^M//g

যেখানে ^ হল নিয়ন্ত্রণ চরিত্র।


2
এটি কী তা ব্যাখ্যা করে না ^M
অরবিট

2
সে আসলে কী তা জিজ্ঞাসা করছে না, কীভাবে এটি ঠিক করবেন সে জিজ্ঞাসা করছেন। এটি কী ডস থেকে একটি ক্যারেজ রিটার্ন চরিত্র।
স্কট সি উইলসন

3
আমি জানি এটা কি। প্রশ্নের শিরোনাম "ভিমে im এম চরিত্রটি কী বোঝায়"।
অরবিট


2

যদি এটি আপনার কনফিগারেশনটি ভঙ্গ করে, এবং ম্যাপিংগুলিতে ^ এম অক্ষরগুলির প্রয়োজন হয়, আপনি কেবল <Enter>or এম অক্ষরগুলি বা এমনকি দ্বারা প্রতিস্থাপন করতে পারেন <C-m>(উভয়ই যথাক্রমে 7 এবং 5 অক্ষর হিসাবে সরল অক্ষরের অনুক্রম হিসাবে টাইপ করা হয়)।

এটি ম্যাপিংগুলিতে বিশেষ কীকোডগুলি সঞ্চয় করার একক প্রস্তাবিত, বহনযোগ্য উপায়


2

ফ্রিবিএসডি-তে আপনি ^Mনিম্নলিখিত লিখে ম্যানুয়ালি সাফ করতে পারেন :

:%s/ Ctrl+ V, তারপরে Ctrl+ M, তারপর Ctrl+ Mআবার।


1

আপনি যদি fileformatইচ্ছাকৃতভাবে :e ++ff=unixঅন্যটি নির্দিষ্ট না করেন (তবে একটি উইন্ডোজ ফাইলের জন্য বলুন ), সম্ভবত লক্ষ্যযুক্ত ফাইলটি EOL গুলি মিশিয়েছে।

উদাহরণস্বরূপ, যদি একটি ফাইল সঙ্গে কিছু লাইন আছে <CR><NL>শেষা w শ এবং সঙ্গে অন্যদের <NL>, শেষা w শ এবং fileformatসেট করা হয় unixযখন এটা পড়া তেজ দ্বারা স্বয়ংক্রিয়ভাবে ^M (<CR>)প্রদর্শিত হবে। এই জাতীয় ক্ষেত্রে, fileformatsখেলা আসে। দেখুন :help ffsবিস্তারিত জানার জন্য।


0

আমি আবিষ্কার করেছি যে আমার হোমব্রিউ এমভিম দৃষ্টান্তটি ফাইল টাইপ = ডস ব্যবহারের জন্য সেট করা হয়েছিল তার কারণে আমি কয়েক সপ্তাহ ধরে ফাইলগুলি দূষিত করছি। .Vimrc .... এ প্রয়োজনীয় পরিবর্তন করেছে


0

চেষ্টা :%s/\^M//অন্তত এই আমার জন্য কাজ করেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.