سؤال

من السؤال كيفية استبدال حرف سطر جديد في همة?.لديك لاستخدام عند استبدال نص السطر ، مثل هذا

:%s/%/\r/g

ولكن عند استبدال نهاية خطوط و أسطر على حرف ، يمكنك أن تفعل ذلك مثل:

:%s/\n/%/g 

ما القسم من الدليل وثائق هذه السلوكيات ، ما هو المنطق وراء عليهم ؟

هل كانت مفيدة؟

المحلول

من همة مستندات على أنماط:

\r مباريات <CR>

\n مباريات نهاية خط عند مطابقة في سلسلة بدلا من العازلة النص الحرفي السطر الحرف هو مطابقة.

نصائح أخرى

من http://vim.wikia.com/wiki/Search_and_replace :

عند البحث

...

\n هو السطر ، \r هو CR (إرجاع = Ctrl-M = ^M)

عند استبدال

...

\r هو السطر ، \n هو null byte (0x00).

هناك جانب آخر لهذا هو أن \0, الذي عادة NULL, في s//\0/ يعني "كلها مطابقة نمط".(والتي بالمناسبة هي زائدة عن الحاجة مع أطول مما كان ، &).

  • لذلك لا يمكنك استخدام \0 يعني NULL, لذا تستخدم \n
  • لذلك لا يمكنك استخدام \n يعني \n, لذا تستخدم \r.
  • لذلك لا يمكنك استخدام \r يعني \r, ولكن أنا لا أعرف من الذي يريد أن أضيف أن شار على الغرض.

—☈

:help NL-used-for-Nul

التفاصيل التقنية:

<Nul> الشخصيات في ملف يتم تخزين <NL> في الذاكرة.في العرض وتظهر على أنها "^@".تتم الترجمة عند قراءة وكتابة ملفات.لتتناسب مع <Nul> مع نمط البحث يمكنك إدخال فقط CTRL-@ أو "CTRL-V 000".وربما هذا هو فقط ما كنت تتوقع.داخليا الحرف هو استبدال <NL> في البحث عن نمط.ما هو غير عادي هو أن كتابة CTRL-V CTRL-J أيضا إدراج <NL>, وهكذا أيضا بالبحث عن <Nul> في الملف.{السادس لا يمكن التعامل مع <Nul> الشخصيات في ملف في كل}


أولا وقبل كل شيء ، فتح :h :s إلى مراجعة قسم "4.2 بديل" من الوثائق على "التغيير".هنا ما يقبل الأوامر:

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

لاحظ الوصف عن pattern و string

عن {pattern} انظر |pattern|.
{string} يمكن أن تكون سلسلة حرفية ، أو شيء
الخاصة ؛ انظر |sub-replace-special|.

حتى الآن أنت تعرف أن نمط البحث و استبدال أنماط تتبع قواعد مختلفة.إذا كنت تتبع رابط |pattern|, ، فإنه يأخذك إلى القسم الذي يفسر كل regexp الأنماط المستخدمة في همة.

وفي الوقت نفسه ، |sub-replace-special| يأخذك إلى القسم الفرعي من "4.2 بديل" ، الذي يحتوي على أنماط الاستبدال ، \r من أجل كسر خط/تقسيم.

(اختصار إلى هذا الجزء من الدليل :h :s%)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top