سؤال

وكيف يمكنني إضافة أرقام الأسطر لمجموعة من الصفوف في همة؟ ليس كما في ": مجموعة نو" - وهذا يعرض فقط الأرقام، ولكن لا إضافتها إلى ملف

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

المحلول

مع

:%s/^/\=line('.')/

وتحرير: لتلخيص التعليقات.

ويمكن أنب هذا الأمر بقدر ما تريد.


ودعونا نقول كنت ترغب في إضافة أرقام أمام خطوط من بين مجموعة البصرية (V + خطوة)، وتريد ترقيم لبدء في 42.

:'<,'>s/^/\=(line('.')-line("'<")+42)/

إذا كنت ترغب في إضافة سلسلة بين الرقم والنص القديم من الخط، مجرد سلسلة (مع . في فيمل) إلى الرقم التعبير عن:

:'<,'>s/^/\=(line('.')-line("'<")+42).' --> '/

إذا كنت بحاجة إلى هذا لفرز كنص، قد ترغب في الصفر لوحة النتائج، والتي يمكن أن يتم ذلك باستخدام printf ل0001, 0002 ... بدلا من 1, 2 ... على سبيل المثال:

:%s/^/\=printf('%04d', line('.'))/

وعلى أي حال، إذا كنت تريد المزيد من المعلومات، مجرد مفتوحة مساعدة همة: :h :s واتبع الروابط (|subreplace-special|، ...، |submatch()|)

نصائح أخرى

وcat -n يضيف أرقام الأسطر لمدخلاتها. يمكنك الأنابيب الملف الحالي إلى cat -n واستبدال المخزن المؤقت الحالي مع ما يطبع لالمعياري. لحسن الحظ هذا الحل معقد أقل من 10 حرفا في همة:

 :%!cat -n

وأو، إذا كنت ترغب فقط في subselection، بصريا تحديد المنطقة، واكتب ما يلي:

 :!cat -n

وهذا سوف يضع تلقائيا علامات اختيار البصرية في، وسيبدو هذا بعد أن كنت قد كتبته فيه:

 :'<,'>!cat -n

في أجل محو أرقام الأسطر، أوصي باستخدام control-v، والتي سوف تسمح لك بصريا تحديد مستطيل، ثم يمكنك حذف هذا المستطيل مع x.

في نظام GNU: مع ثنائي nl الخارجية:

:%!nl

ومع بيئة يونكس مثل، يمكنك استخدام القط أو AWK لتوليد رقم سطر بسهولة، لأن همة يحتوي على واجهة ودية مع شل، لذلك عمل كل شيء في همة وكذلك هو الحال في قذيفة.
من فيم Tip28 :

:%!cat -n

أو

:%!awk '{print NR,$0}'

ولكن، إذا كنت تستخدم همة في MS-DOS، من الأنظمة الأساسية Win9x، نظامي التشغيل Win2000، كنت خسار هذه الأدوات. هنا هو طريقة بسيطة جدا لأرشفة هذا إلا من خلال همة:

fu! LineIt()
  exe ":s/^/".line(".")."/"
endf

وأو سلسلة تتألف مع الأبجدية سهلا كما هو أعلاه:

exe "s/^/".nr2char(line("."))."/" 

ويمكنك أيضا استخدام SUBST:

:g/^/exe ":s/^/".line(".")."^I/"

ويمكنك أيضا تريد فقط لطباعة خطوط دون إضافتها إلى الملف:

<اقتباس فقرة>   

و"في بعض الأحيان يمكن أن يكون مفيدا بشكل خاص يكون تحرير ملفات المصدر كبيرة لطباعة أرقام الأسطر على الورق.
  للقيام بذلك يمكنك استخدام :set printoptions=number:y الخيار لتفعيل و:set printoptions=number:n لتعطيل هذه الميزة.
  إذا يجب أن تتم طباعة رقم السطر دائما، ضع set printoptions=number:y خط في vimrc ".

أولا، يمكنك إزالة أرقام الأسطر الموجودة إذا كنت بحاجة إلى:

:%s/^[0-9]*//

وبعد ذلك، يمكنك إضافة أرقام الأسطر. يشير NR إلى رقم السطر الحالي ابتداء من الساعة واحدة، حتى تتمكن من القيام ببعض الرياضيات عليه للحصول على الترقيم الذي تريد. الأمر التالي يمنحك أربعة أرقام الأسطر أرقام:

:%!awk '{print 1000+NR*10,$0}'

"VisIncr" المساعد هو جيد لإدراج أعمدة أرقام تزايد بشكل عام (أو الرسائل، والتواريخ، والأرقام الرومانية وما إلى ذلك). يمكنك التحكم في تنسيق الأرقام، الحشو، وهلم جرا. لذا إدراج "1" أمام كل سطر (عبر :s أو :g أو إدراج البصرية كتلة)، تسليط الضوء على هذا العمود في وضع البصرية لبنة، وتشغيل أحد الأوامر من البرنامج المساعد.

إذا كان هناك من يريد أن يضع علامة تبويب (أو بعض المسافات) بعد إدراج أرقام الأسطر باستخدام هذه الإجابة ممتاز ، وهنا الطريقة. بعد الخوض في وضع الهروب، القيام به:

:%s/^/\=line('.').'    '/

و^ يعني بداية السطر و%s هو التوجيه للتبديل. لذلك، نقول إن وضع رقم السطر في بداية كل سطر وإضافة 4 مساحات إليها ومن ثم وضع كل ما هو محتويات السطر قبل الاستبدال، وذلك لجميع الخطوط في الملف.

وهذا سوف استبدالها تلقائيا. بدلا من ذلك، إذا كنت ترغب في الأمر لطلب تأكيد من لكم، ثم القيام به:

:%s/^/\=line('.').'    '/igc

وP.S: قوة <القوي> همة : ل)

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