سؤال

أنا مطور C # قرر مؤخرا أيضا توسيع معرفتي بالأدوات المتاحة بالنسبة لي. الأداة الأولى التي قررت تعلمها هي VI / VIM. كل شيء يسير على ما يرام حتى الآن، ولكن هناك سؤالين لا يبدو لي أن أجد الإجابة على:

  1. دعنا نقول أنني أردت أن أزعج مجموعة من الخطوط. أعلم أن هناك العديد من الطرق للقيام بذلك، ولكني أرغب في القيام بذلك عن طريق رقم الخط. احسب أنه سيكون يشبه كيفية عمل الأوامر البديلة، شيء مثل 81,91y. وبعد هل هناك طريقة للقيام بذلك؟

  2. أنا مرتبك قليلا حول g أمر في الوضع العادي. يبدو أن هذا لا يحصى من الأشياء ولا يمكنني تحديد ما يفعله الأمر G في جوهره. أنا مرتبك حول ما إذا كان الأمر أمرا أمرا أو نوعا من "التقاط الكل" لأوامر أخرى ركض من خلال الوضع العادي. هل يمكن لشخص ما يرجى توضيح ذلك أو توجيهني إلى مرجع يعطي شرحا جيدا لل g أمر؟

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

المحلول

خطوط يانك 81-91.

:81,91y<enter>

إذا كانت أصابعك لا تحب العثور على : و , مفاتيح، وهذا سيعمل كذلك (اذهب إلى الخط 81، 11 خطوط 11)

81gg11yy 

استخدامي الوحيد g هو 5gg. وبعد للذهاب إلى الخط الخامس. 22gg: الخط 22. كما قال جيمبو، إنه حقا تعديل فقط لبعض الأوامر الأخرى.

للأكتمال، (http://vim.wikia.com/wiki/power_of_g.) يفسر الكثير من كيف g يعمل في وضع القيادة.

نصائح أخرى

يمكنك أيضا نسخ الأسطر الحالية إلى موقع المؤشر الحالي باستخدام 'T'.

:81,91t.<enter>

هذا سوف يلجأ الخطوط 81-91 تحت خط المؤشر قيد التشغيل.

تعلمت هذا من http://vimcasts.org. وهو مورد ممتاز على VIM.

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

:-10,-7ya a

ليتكسر النص في المخزن المؤقت المسمى أ.

NB تحديد الإرادة إلحاق ما الذي تقوم به Yanking إلى محتويات المخزن المؤقت الحالي.

لا تنس أن يمكنك أيضا نسخ كتل من النص ونقل كتل النص حولها أيضا مع الأوامر المشابهة:

:-10,-7co .

يعني نسخ الأسطر الأربعة للنص 10 خطوط أعلى إلى أسفل الخط الحالي، و

:-10,-7mo .

يعني نقل الأسطر الأربعة للنص 10 خطوط أعلى إلى أسفل الخط الحالي.

ال G يذهب الأمر إلى رقم سطر معين، إذا كان مصحوبا بقيمة عدد. 81G يضعك على الخط 81.

ال y يمكن دمج الأمر مع حركة، مثل G. وبعد حتى يانك كل شيء حتى السطر 91 يمكنك استخدامها y91G.

معا تحصل على:

81Gy91G

اذهب إلى الخط 81، ثم Yank أثناء السحب 91.

g لا تفعل أي شيء في حد ذاته. إنها واحدة من أوامر متتيا زوجين تحمل مجموعة من الأوامر التي لا علاقة لها نوعها.

z هو أمر آخر مثل هذا.

Vim's :help index يصف g مثل:

|g|             g{char}            extended commands, see |g| below

التمرير لأسفل (أو :help g) لقائمة.

سيكون أفضل حل للدخول "الوضع المرئي"، عن طريق الضغط على V. وبعد تحديد الخطوط فقط انسخها عن طريق الضغط على Y. ثم لصق الخطوط المنسوخة عن طريق الضغط على P.

بالإضافة إلى :91,96y a أي yanks (y) خطوط 91 إلى 96 في التسجيل a, ، (لصق مع "ap)، يمكن أن تكون الخطوط الاشتراكية ملحق إلى السجل مع:

:91,96y A

أي رسملة A التسجيل يسبب عملية إلحاحية في التسجيل a بدلا من الكتابة فوق. رسملة السجل يعمل دائما مثل هذا، على سبيل المثال :let @A=';' إلحاق أ ; للتسجيل a.

استخدام خطوط المراجع Plus (+) أو ناقص (-) نسبة إلى موضع المؤشر الحالي:

:-10,+10y b

أي أنه سوف يانك (y) 21 خطوط حول موقف المؤشر الحالي ووضعها في السجل b.

يمثل غياب المدخلات في الواقع موقف المؤشر الحالي أيضا، مما يعني أن هذا:

:-5,y a

سوف يانك النص من 5 خطوط أعلى إلى موقف المؤشر الحالي في المخزن المؤقت المسمى a, ، و:

:,+5y a

سوف يانك سطر 5 بعد موقف المؤشر الحالي إلى المخزن المؤقت a.

ملاحظة: إذا كان لديك ماكرو في المخزن المؤقت a لقد تم الكتابة فوقها فقط من قبل Yank السابق، حيث سجلات Yank وسجلات ماكرو هي نفس الشيء. وهذا هو السبب في ذلك، من قبيل الصدفة، يمكنك لصق ماكرو وتعديله، ثم انسحبت في سجلها. أنا شخصيا استخدام الرسائل التي تم الوصول إليها بواسطة يدي اليسرى ل Yanks، والرسائل التي تم الوصول إليها بواسطة يدي اليمنى لحدات الماكرو.

تحريك كتل النص في جميع أنحاء، يبدو أن هذا:

:+10,+13m.

مما يعني نقل الأسطر الأربعة وضع 10 خطوط قبل المؤشر الحالي، إلى أسفل الخط الحالي.

إضافة

أنا مرتبك سابقا ya في :91,95ya a أن تكون مرادفا بطريقة أو بأخرى ya{motion} حيث تم توفير الحركة من قبل 91,95. وبعد كان هذا غير صحيح و "A" في ya غير ضروري تماما. في دفاعي، بلدي help yank لا ينقل ذلك ya هو الاسم المستعار ممكن yank.

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