استمرار تطوير إتقان Vim: 8 نصائح أقوى لمسؤولي Linux (الجزء الثاني)

في المقالة السابقة من هذه السلسلة، قمنا بمراجعة 7 نصائح وحيل لإضافتها إلى مهاراتك في vi/m، بالإضافة إلى الأسباب المذكورة سابقًا، فإن تعلم كيفية استخدام محرر النصوص بشكل فعال في Linux هو قدرة أساسية لمسؤول النظام أو المهندس وهي كفاءة مطلوبة لاجتياز أي برنامج توثيق رئيسي لنظام Linux (مثل LFCS، LFCE، RHCSA، و RHCE).

هذا قوله، دعونا نبدأ.

8. إنشاء نوافذ Vim الأفقية أو الرأسية

شاركنا بهذه النصيحة أحد قرائنا، Yoander، في الجزء 1. يمكنك تشغيل vi/m بتقسيمات أفقية أو رأسية متعددة لتحرير ملفات منفصلة داخل نافذة رئيسية واحدة:قم بتشغيل vi/m مع نافذتين أفقيتين، حيث يكون test1 في الجزء العلوي و test2 في الجزء السفلي

قم بتشغيل vi/m بشاشتين أفقيتين، بها test1 في الأعلى و test2 في الأسفل

vim -o test1 test2 
Launch Vim Editor in Horizontal Windows

قم بتشغيل vi/m بشاشتين عموديتين، بها test3 على اليسار و test4 على اليمين:

vim -O test3 test4 
Launch Vim Editor in Vertical Windows

يمكنك تبديل المؤشر من إحدى الشاشات إلى الأخرى بإستخدام إجرائات تحريك vi/m المعتادة (h: لليمين، l: لليسار، j: للأسفل، k: للأعلى):

  • Ctrl+w k – أعلى
  • Ctrl+w j – أسفل
  • Ctrl+w l – يسار
  • Ctrl+w h – يمين

9. تغيير الأحرف الكبيرة أو الصغيرة في Vim

يرجى ملاحظة أن هذه النصيحة تعمل فقط في vim. في الأمثلة التالية، X رقم صحيح.

  • لتغيير سلسلة من الأحرف إلى أحرف كبيرة، ضع المؤشر على الحرف الأول، ثم اكتب gUX في ex الوضع، وأخيراً اضغط على السهم لليمين على لوحة المفاتيح.
  • لتغيير عدد X من الكلمات، ضع المؤشر في بداية الكلمة، واكتب gUXw في ex الوضع.
  • لتغيير سطر كامل إلى أحرف كبيرة، ضع المؤشر في أي مكان على السطر واكتب gUU في ex الوضع.

على سبيل المثال، لتحويل سطر كامل صغير إلى كبير، يجب أن تضع المؤشر في أي مكان على السطر وتكتب gUU:

Change String to Uppercase in Vim Editor

على سبيل المثال، لتحويل كلمتين عالية إلى صغيرة، يجب أن تضع المؤشر عند بداية الكلمة الأولى وتكتب gu2w:

Convert String to Lowercase in Vim Editor

10. حذف النص في وضع الإدراج في Vim

بينما يمكنك حذف الأحرف أو عدة كلمات في وضع ex (على سبيل المثال dw لحذف كلمة)، يمكنك أيضًا القيام بذلك في وضع الإدراج على النحو التالي:

  • Ctrl + h: حذف الحرف السابق إلى المكان الذي يقع فيه المؤشر حاليًا.
  • Ctrl + w: حذف الكلمة السابقة إلى المكان الذي يقع فيه المؤشر حاليًا. لكي يعمل هذا بشكل صحيح، يجب وضع المؤشر في مساحة فارغة بعد الكلمة التي تريد حذفها.
  • Ctrl + u: حذف السطر الحالي بدءًا من الحرف المباشرة إلى يسار المكان الذي يقع فيه المؤشر.

11. نقل أو نسخ سطور موجودة داخل Vim

على الرغم من أنه يمكنك استخدام أمر dd و yy و p المعروفة في وضع ex لحذف ونسخ (نسخ) ولصق الأسطر على التوالي، إلا أن ذلك ينجح فقط عندما يتم وضع المؤشر حيث تريد إجراء تلك العمليات.

الخبر السار هو أنه باستخدام أوامر نسخ و نقل، يمكنك القيام بذلك بغض النظر عن مكان وجود المؤشر.

من النماذج التالية، سنستخدم قصيدة قصيرة بعنوان “للأبد” من تيري نيكول تارينغتون. للبدء، سنجعل جميع Vim يعرض أرقام الأسطر (:set nu في وضع الأمر – اعتبر هذه نصيحة إضافية). سنستخدم :3copy5 (أيضًا في وضع الأمر) لنسخ السطر 3 أسفل السطر 5:

Move Copy Existing Lines in Vim

الآن، فك التغيير الأخير (Esc + u – نصيحة إضافية أخرى!) واكتب :1move7 لتبديل السطر 7 بالسطر 1. لاحظ كيف تم تحريك الأسطر من 2 إلى 7 إلى أعلى والسطر السابق 1 الآن يشغل السطر 7:

Move Lines in Vim Editor

12. التنقل وحساب تطابقات النمط في Vim

هذه النصيحة مبنية على أمر الاستبدال (نصيحة #7 في الجزء 1 من هذه السلسلة),مع الاستثناء من أنها لن تحذف أي شيء لأن سلوك الاستبدال يتم تجاوزه بواسطة خيار n، مما يؤدي إلى حساب تواجدات النمط المحدد:

تأكد من عدم تغيب أي من الشرطات الأفقية!

:%s/pattern//gn 

على سبيل المثال,

:%s/libero//gn
Count Matches by Search Pattern in Vim

للتنقل من موقع واحد للنمط إلى التالي في وضع ex، اضغط n (حرف N صغير). للتنقل إلى الحالة السابقة، اضغط N.

13. فتح ملف في Vim في سطر محدد

بشكل افتراضي، عندما تقوم بتشغيل vi/m، يتم وضع المؤشر في السطر الأخير الذي تم تحريره. إذا كنت تريد فتح البرنامج ووضع المؤشر مباشرة على سطر محدد، يمكنك استخدام الحيلة التالية:

# vim filename +line_number

على سبيل المثال، افتح forever.txt وضع المؤشر في السطر 6:

# vim forever.txt +6

لنقوم بتعديل هذا المثال قليلاً. لنفترض أننا نريد فتح الملف على السطر الذي يظهر فيه النمط للمرة الثالثة:

# vim filename +$(grep -in pattern filename | sed -n 3p | cut -d: -f1)

لنلقي نظرة أقرب على ما يفعله الأمر أعلاه:

  • grep -in pattern filename – يعرض جميع الأسطر من اسم الملف حيث يحدث النمط، مع رقم السطر في بداية كل سطر من الناتج.
  • sed -n 3p – يعرض السطر الثالث من الناتج السابق للأنبوب.

أخيرًا،

  • cut -d: -f1 يُرجع الحقل الأول من الأنبوب السابق مع الفاصلة (:) كفاصل حقل.
grep -in forever forever.txt
grep -in forever forever.txt | sed -n 3p
grep -in forever forever.txt | sed -n 3p | cut -d: -f1
Open Vim Editor in Specified Line

يتم تمرير نتيجة الأمر السابق إلى vi/m لفتح البرنامج في السطر المحدد.

تخصيص بيئة Vim المخصصة

إذا كنت تستخدم vi/m لتحرير ملفات التكوين أو كتابة الشفرة، فسوف ترغب في القدرة على عرض السطر

  • Vim for Linux Admins: 8 Powerful Tips and Tricks (الجزء 2)

عندما تفتح البرنامج لأول مرة وضبط التنسيق التلقائي حتى عند الضغط على مفتاح Enter، سيتم وضع المؤشر تلقائيًا في الموضع المناسب. بالإضافة إلى ذلك، قد ترغب في تخصيص عدد المسافات البيضاء التي يحتلها الفرجة.

بينما يمكنك القيام بذلك في كل مرة تشغيل فيها vi/m، من الأسهل ضبط هذه الخيارات في ~/.vimrc حتى يتم تطبيقها تلقائياً:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

للحصول على المزيد من الخيارات لتخصيص بيئة vi/m الخاصة بك، يمكنك الرجوع إلى التوثيق عبر الإنترنت لـ vim.

15. احصل على مساعدة عامة لـ Vim مع Vimtutor

إذا احتجت في أي وقت إلى تحسين مهاراتك العامة في vi/m، يمكنك تشغيل vimtutor من سطر الأوامر الذي سيعرض مساعدة كاملة لـ vi/m يمكنك الرجوع إليها بقدر ما تشاء دون الحاجة إلى تشغيل متصفح ويب للبحث عن كيفية إتمام مهمة معينة في vi/m.

vimtutor
Vim Editor Help and Options

لاحظ أنه يمكنك التنقل أو البحث في محتويات Vimtutor كما لو كنت تتنقل في ملف عادي في vi/m.

ملخص

في هذه السلسلة من المقالات المكونة من جزأين، شاركت عدة نصائح وحيل لـ vi/m التي يجب أن تساعدك على أن تكون أكثر فعالية عندما يتعلق الأمر بتحرير النصوص باستخدام أدوات سطر الأوامر.

I’m sure you must have other ones – so feel free to share them with the rest of the community in the comment form below. As always, questions and comments are also welcome.

Source:
https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/