Im প্রতিটা লাইনের শেষে এম


132

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


18
এর কারণ উইন্ডোজ একটি লাইন বিরতি উপস্থাপন করতে দ্বি-চরিত্রের ক্রম (সাধারণত "written r \ n" লেখা থাকে) ব্যবহার করে তবে ইউএনআইএক্স / লিনাক্স কেবল একটি লাইন বিরতি উপস্থাপন করতে দ্বিতীয় অক্ষর "\ n" ব্যবহার করে। সুতরাং আপনি যখন একটি লিনাক্স সম্পাদকটিতে উইন্ডোজ পাঠ্য ফাইলটি সম্পাদনা করেন, সম্পাদক অতিরিক্ত অক্ষর দেখতে পান যা এটি লাইন বিরতির অংশ হিসাবে বিবেচনা করে না, তাই এটি তাদের রেন্ডার করার চেষ্টা করে এবং যা বের হয় তা এম এম হয়।
ডেভিড জেড

13
এর থেকে আরও কিছু আছে, ডেভিড। ভিম সেই সবগুলি না দেখিয়ে ডস লাইন শেষের সাথে আনন্দের সাথে একটি পাঠ্য ফাইল সম্পাদনা করবে ^M। ভিমে কোনও ডস পাঠ্য ফাইল সম্পাদনা করার সময় আপনার কেবলমাত্র ইঙ্গিতটি হ'ল যদি %{&ff}আপনার statuslineবিকল্প মান থাকে। ^Mলাইন শেষের স্টাইলটি মিশ্রিত হলে ভিম দেখায় । এর অর্থ হ'ল আপনি এমন একটি পাঠ্য সম্পাদক ব্যবহার করেছেন যা ভিমের মতো সচেতন নয়, যা বিদ্যমান লাইনের সমাপ্তি শৈলী অনুসরণ করে নি, যেমন ভিম ডিফল্টরূপে করবে। আপনি যদি উইন্ডোতে ভিম বা এর ক্যালিবারের অন্য কিছু ব্যবহার করেন তবে আপনি এর মতো নষ্ট লাইনের শেষ পাবেন না।
ওয়ারেন ইয়ং

উত্তর:


128

কমান্ড হিসাবে টাইপ করুন

:%s/^M$//

(^ এম পেতে, key ভি ^ এম টিপুন, যেখানে বেশিরভাগ কীবোর্ডে সিটিআরএল রয়েছে)


62
এছাড়াও,:% s / \ r $ // ^ ভি ^ এম ঝামেলা এড়াতে
গ্লেন জ্যাকম্যান

8
বা, একটি চরিত্র সংরক্ষণ করা::%s/\r$
শে

2
@ সে প্রযুক্তিগতভাবে 2 টি অক্ষর সংরক্ষণ করে :)
ক্রিস

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

86

ডস লাইন শেষগুলি সরিয়ে ফেলার একটি সহজ উপায় হ'ল ffবিকল্পটি ব্যবহার করা :

:set ff=unix
:wq

এখন আপনার ফাইলটি পুরানো-ইউনিক্স-ওয়েতে ফিরে এসেছে।

আপনি যদি ডস লাইন-এন্ডিংস যুক্ত করতে চান (কোনও প্রিন্টারকে সুখী রাখতে, বা উইন্ডোজ বন্ধুদের সাথে ফাইলগুলি স্থানান্তর করতে পারেন যাদের সুন্দর সরঞ্জাম নেই) আপনি সহজেই বিপরীত দিকে যেতে পারেন:

:set ff=dos
:wq

8
ভিম কোনও ^ এম, বা \ আর, বা অন্য কোনও লাইনের শেষ খুঁজে পাচ্ছে না, তবে এটি কার্যকর। ধন্যবাদ :)
SgtPooki

2
ভিম কোনও এমআর বা \ আর পাবেন না, তবে এটি আমার পক্ষে কাজ করেছে! ধন্যবাদ @ সরোনলড
চেম্বার

একক চরিত্রের পরিবর্তন হিসাবে এটি সনাক্ত করতে গিটটি খুব বোবা বলে মনে হবে। আমি এটি ভিমে চালিয়েছি এবং git diffপ্রতিটি লাইন মুছে ফেলা এবং প্রতিটি লাইন দেখায়: /
টমি

টমি, এটি একটি সীমাবদ্ধতা diff, চালু নয় git
স্পাইডি

34

তুমি এটি করতে পারো:

:set fileformats=dos

এটি ^Mফাইলটি স্পর্শ না করেই এর গোপন করবে ।



6

এটি আমার পক্ষে এমন একটি ফাইলে কাজ করেছে যা এক লাইনে সব কিছুই রেখেছিল:

প্রথমে সমস্ত ম্যাচ সন্ধান করুন

:%s/^M//

(পেতে ^M, key V ^ M টিপুন, যেখানে Ctrlবেশিরভাগ কীবোর্ডে রয়েছে)

তারপরে নতুন লাইনের সাথে প্রতিস্থাপন করুন

:%s//\r/g

সম্মিলিত আদেশ হবে:

:%s/^M/\r/g

ধন্যবাদ, কীভাবে বাস্তবে অনুসন্ধান-প্রতিস্থাপনে Ctrl-M প্রবেশ করবেন!
রোবপ্রোগ


1

সমস্যার উত্স এফটিপি স্থানান্তরের মাধ্যমে হতে পারে। আপনি যখন এই ফাইলগুলি একটি বাক্স থেকে অন্য বাক্সে এফটিপি করেন, তখন ASCII স্থানান্তর ব্যবহার করার বিষয়টি নিশ্চিত করুন। "ASC" কমান্ডটি ব্যবহার করুন।


0
" put this in your ~/.vimrc file and :source ~/.vimrc
" then you can do: Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
    let _s=@/
    let l = line(".")
    let c = col(".")
    try
        set ff=unix
        w!
        "%s/\%x0d$//e
    catch /E32:/
        echo "Sorry, first save the file."
    endtry
    let @/=_s
    call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()

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