ভিমের জন্য \ রা নিউলাইন কেন?


253

প্রশ্ন থেকে ভিমে একটি নতুন লাইনের জন্য একটি চরিত্রটি কীভাবে প্রতিস্থাপন করবেন? । এই জাতীয় লাইনের জন্য পাঠ্য প্রতিস্থাপন করার সময় আপনাকে \ r ব্যবহার করতে হবে

:%s/%/\r/g

তবে কোনও চরিত্রের জন্য লাইন এবং নিউলাইনগুলির শেষে প্রতিস্থাপন করার সময় আপনি এটি এর মতো করতে পারেন:

:%s/\n/%/g 

ম্যানুয়ালটির কোন বিভাগটি এই আচরণগুলি নথিভুক্ত করে এবং এর পিছনে যুক্তি কী?


1
%অনুসন্ধান এবং প্রতিস্থাপন করার সময় এর জন্য কী ?
কিড

7
@ কেয়েড: ডিফল্টরূপে :sকেবলমাত্র বর্তমান লাইনে প্রতিস্থাপন প্রয়োগ করা হবে। :%sএটি পুরো ফাইলটিকে সম্বোধন করে। আরো
c24w 14

3
+ c24w আমার মনে হয় তিনি স্ল্যাশগুলির মধ্যে '%' উল্লেখ করছেন, প্রথম উদাহরণটি অনুসন্ধানের অবস্থানের মধ্যে '%' এবং দ্বিতীয় উদাহরণে প্রতিস্থাপনের জায়গায়, তবে @ আপনার প্রশ্নের উত্তর দিতে পেরেছেন, এই '% আক্ষরিক মিল আছে।
রাস্তাজেদী

উত্তর:


154

নিদর্শনগুলির উপর ভিম ডক্স থেকে :

\r <CR> মিলছে

\n একটি লাইন-এর শেষের সাথে মেলে - বাফার পাঠ্যের পরিবর্তে কোনও স্ট্রিংয়ের সাথে মিল রেখে যখন একটি আক্ষরিক নতুন লাইনের চরিত্রটি মিলে যায়।


41
আমার জন্য বিভ্রান্তির বিষয়টি হ'ল used r এবং \ n মানে বিভিন্ন জিনিস যখন ব্যবহৃত হয় তা হ'ল অনুসন্ধানের ধরণ এবং প্রতিস্থাপনের ধরণ pattern
dlamblin

3
টুইটারে আমার উত্তর দেখুন :)
সীমাবদ্ধ প্রায়শ্চিত্ত

206

Http://vim.wikia.com/wiki/Search_and_replace থেকে :

যখন অনুসন্ধান

...

\nনতুন লাইন, \rএটি CR(গাড়ীর ফেরত = Ctrl-M= ^M)

প্রতিস্থাপন করার সময়

...

\rনিউলাইন, \nএটি নাল বাইট ( 0x00)।


6
এই উত্তরটি আমাকে সবচেয়ে বেশি সাহায্য করেছে। এছাড়াও, আরও তথ্যের জন্য :h :s%, বিশেষত শেষ অনুচ্ছেদ। (এর মাধ্যমে :h :s)
ডিপ্নলিক

113

এর অন্য দিকটি হ'ল \0, যা traditionতিহ্যগতভাবে ন্যূনুয়াল, এটি s//\0/"সম্পূর্ণ মিলিত প্যাটার্ন" হিসাবে বোঝানো হয়। (যা, যাইহোক, এর সাথে নিরর্থক এবং এর চেয়ে বেশি দীর্ঘ &)।

  • সুতরাং আপনি \0বোঝাতে পারবেন না NULLতাই আপনি ব্যবহার করুন\n
  • সুতরাং আপনি \nবোঝাতে পারবেন না \nতাই আপনি ব্যবহার করুন \r
  • সুতরাং আপনি \rঅর্থটি ব্যবহার করতে পারবেন না \r, তবে আমি জানি না কে এই চরটি উদ্দেশ্য হিসাবে যুক্ত করতে চাইবে।

-☈


1
ভাল যুক্তি! সুতরাং এটি প্রায় \ 0 এর কাছাকাছি - 0-টি নেস্টেড গোষ্ঠীর পিছনে রেফারেন্স - পুরো রিজেক্সেপ। এটি একটি খুব ভাল উত্তর, তবে এটি আমাকে অসন্তুষ্ট করে তোলে, আমি প্রতিস্থাপনে \ r ব্যবহার করতে পারি না ... (যার অর্থ: সন্নিবেশ # (13), উদাহরণস্বরূপ একটি "সাধারণ" ফাইলটিতে (== ইউনিক্স ইওএল)।
টমসজ গ্যান্ডার

3
ঠিক আছে, উত্তরটি ভিম ডক্সে রয়েছে। একটি সাধারণ ব্যাকস্ল্যাশ সহ সবেমাত্র \ or এম বা CR <সিআর> পলায়ন করুন। খুশী হলাম। ----- <CR> এই বিন্দুতে দুটিতে বিভক্ত রেখাটি (<সিআরটি> সিটিআরএল-ভি হিসাবে লিখুন <<<<<<< <<> ide r আদর্শ -------- এস / \ আর \ < সিআর> একটি ক্যারিজ-রিটার্ন
Cোকান

16
"আরেকটি দিক"? আপনি খুব বিনয়ী! ঠিক কীভাবে_ কেন_ এটি ব্যাখ্যা করা সমস্তকে কেবল কীভাবে এটি কাজ করতে হবে তার উত্তরের উত্তর দেয়। +1
আন্ডারস্কোর_

এই সত্যই হল সত্যিই কেন মধ্যে মহান অন্তর্দৃষ্টি \nঅনুসন্ধান ভিন্ন অর্থ এবং নিদর্শন প্রতিস্থাপন করুন। চমত্কার উত্তর।
জিরোনাট

47

:help NL-used-for-Nul

প্রযুক্তিগত বিবরণ:

<Nul>ফাইলের অক্ষর <NL>মেমরি হিসাবে সংরক্ষণ করা হয়। ডিসপ্লেতে এগুলি " ^@" হিসাবে প্রদর্শিত হয় । অনুবাদ ফাইল পড়া এবং লেখার সময় করা হয়। <Nul>কোনও অনুসন্ধানের প্যাটার্নের সাথে মেলে আপনি কেবল CTRL- @ বা " CTRL-V 000" লিখতে পারেন । এটি সম্ভবত আপনি প্রত্যাশা করেছেন। অভ্যন্তরীণভাবে অক্ষরটি <NL>অনুসন্ধানের প্যাটার্নে প্রতিস্থাপন করা হয় । যেটি অস্বাভাবিক তা হ'ল সিটিআরএল-ভি সিটিআরএল-জে টাইপ করলে একটিও সন্নিবেশ করা হয় <NL>, সুতরাং <Nul> ফাইলটিতে একটি অনুসন্ধান করে । {Vi <Nul>ফাইলের অক্ষরগুলি হ্যান্ডেল করতে পারে না }



10

সবার আগে, :h :s"পরিবর্তন" তে নথির "4.2 বিকল্প" বিভাগটি দেখতে খুলুন । আদেশটি যা গ্রহণ করে তা এখানে:

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

patternএবং সম্পর্কে বর্ণনা লক্ষ্য করুনstring

জন্য {pattern}দেখুন |pattern|
{string}আক্ষরিক স্ট্রিং বা
বিশেষ কিছু হতে পারে ; দেখতে |sub-replace-special|

সুতরাং এখন আপনি জানেন যে অনুসন্ধানের প্যাটার্ন এবং প্রতিস্থাপনের ধরণগুলি বিভিন্ন বিধি অনুসরণ করে। আপনি যদি এই লিঙ্কটি অনুসরণ করেন তবে |pattern|এটি আপনাকে সেই বিভাগে নিয়ে যায় যা ভিমে ব্যবহৃত পুরো রেজিএক্সএক্স নিদর্শনগুলি ব্যাখ্যা করে।

এদিকে, |sub-replace-special|আপনাকে "৪.২ সাবস্টিটিউটের" উপধারাতে নিয়ে যায়, যেখানে প্রতিস্থাপনের নিদর্শন রয়েছে, যার মধ্যে \rলাইন ব্রেক / বিভাজনের জন্য রয়েছে।

(ম্যানুয়ালটির এই অংশের শর্টকাটটি হ'ল :h :s%)

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