المحتوى عن 'vim'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
    • React
  • HTML
    • HTML5
  • CSS
  • SQL
  • لغة C#‎
  • لغة C++‎
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
    • منصة Xamarin
  • سهولة الوصول
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 3 نتائج

  1. يعدّ التعامل مع الملفات النصيّة من المهامّ المتكرّرة التي على مدير النّظُم تنفيذها. تشمل هذه المهمّة التّعديل على الملفّات الموجودة (ملفات إعداد غالبا) أو إنشاء ملفّات جديدة. سنقدّم في هذا الدّرس البرنامجيْن الأكثر استخداما لتحرير الملفات النصيّة على RHEL (وتوزيعات لينكس عموما)؛ وهما Nano و Vim. يشتهر Nano بسهولة استخدامه، خصوصا بالنسبة للمبتدئين؛ فيما يتميّز Vim بإضافاته الفعّالة التي تجعل منه أكثر من مجرّد محرّر نصوص. لن ندخل في شرح المحرّر الذي يجب عليك اختيّاره؛ جرّب ثم اختر ما يناسبك. استخدام Nano لتحرير الملفات النصية يُستخدَم أمر nano لبدء تشغيل محرّر النصوص Nano. يمكن فتح ملفّ بتمرير مساره إلى الأمر؛ سيظهر محتوى الملفّ في هذا الحالة داخل المحرّر. إن لم يكن الملفّ موجودا فسيُنشئ المحرّر ملفا فارغا بنفس الاسم ويفتحه إلا أنه لن يُخزَّن إلا إذا طلبت ذلك من المحرّر (سنرى كيف في ما بعد). إن استُخدِم الأمر دون معطيات فسيظهر المحرّر بمحتوى فارغ. يظهر في أعلى المحرّر إلى اليسار رقم الإصدار وفي الوسط اسم الملفّ المفتوح أو صوان Buffer جديد (تخزين مؤقّت) إن نُفِّذ الأمر دون تمرير معطى. ثم تأتي منطقة تحرير النّص (بيضاء في الصّورة) وفي الأسفل أدوات للتحكّم. تظهر أدوات التحكّم على هيئة حرف تسبقه علامة ^ التي تشير إلى زرّ Ctrl في لوحة المفاتيح؛ أي أنه يجب الضّغط على زرّ Ctrl والحرف المشار إليه من أجل استعمال أداة التحكّم. أهم أدوات التحكم هي التالية: Ctrl+G: تظهر صفحة المساعدة. Ctrl+X: تخرُج من المحرّر. Ctrl+O: تخزّن محتوى الملفّ. Ctrl+J: تسويّة محاذاة النّص. Ctrl+R: إدراج محتوى ملفّ بذكر مساره الكامل (المُطلَق) في الملفّ الحالي. Ctrl+W: البحث داخل الملفّ. Ctrl + K: يقصّ السطر الحالي. Ctrl + U: يُلصق المحتوى المقصوص. Ctrl + C: يُظهر وضعيّة المؤشر (السطر والعمود). إن طلبت من المحرّر عملية مثل الحفظ وأردت إلغاءها يمكن أيضا استخدام هذا الاختصار. يُستخدم الاختصاران Ctrl+F و Ctrl+B على التوالي لتقديم المؤشّر أو إرجاعه بحرف. يُستخدم الاختصاران Ctrl+P و Ctrl+N على التوالي للانتقال إلى الأعلى أو الأسفل؛ سطرا في كل مرة. يُستخدم الاختصاران Ctrl+space وAlt+space على التوالي لتقديم المؤشّر أو إرجاعه بكلمة. Ctrl + _: الانتقال إلى سطر وعمود تحدّدهما بالصّيغة X,Y حيث X رقم السّطر وY رقم العمود. استخدام Vim لتحرير الملفات النصية محرّر Vim هو نسخة محسَّنة من محرّر Vi؛ وهو محرّر نصوص مشهور الأنظمة الشبيهة بيونكس. يتميّز محرّر Vim بعمله حسب أوضاع Modes مختلفة: وضع الأوامر: يُستخدَم لتصفّح الملف وتنفيذ أوامر عليه. تتكوّن الأوامر من حرف أو أكثر وهي حسّاسة لحالة الأحرف Case-sensitive. إن أردت إعادة تنفيذ أحد الأوامر عدّة مرات فيمكنك كتابة عدد المرات قبله (توجد بضعة استثناءات لهذه القاعدة). مثلا؛ ينسخ الأمرُ yy (أو Y) كامل السّطر الحالي وعند كتابة العدد 4 أمامه كالتالي 4yy (أو 4Y) فإنه ينسخ السّطر الحالي إضافة للأسطر الثلاثة الموالية (4 أسطر في المجموع). وضع ex: يمكن في هذا الوضع تطبيق أوامر محرّر ex (محرّر نصوص يعمل على أنظمة يونكس) لتنفيذ عمليّات مثل حفظ الملفّ الحالي أو تنفيذ برنامج أو أمر خارجي. اضغط على زر Exc ثم أدخل نقطتين عموديّتيْن : إن أردت الوصول إلى وضع ex من وضع الأوامر؛ ثم اكتب بعدهما أمر ex الذي تودّ تنفيذه. وضع الإدخال : يُستخدم زر i للانتقال من وضع الأوامر إلى وضع الإدخال (كتابة نصّ). ينتج عن الضّغط على أزرار في لوحة المفاتيح أثناء وضع الإدخال ظهور النّص في المحرّر. تمكن دائما العودة إلى وضع الأوامر، مهما كان الوضع الذي توجد فيه، بالضّغط على زرّ Esc. نشغّل محرّر النصوص Vim بتنفيذ الأمر vim في سطر الأوامر. يكون المحرّر عند بدء تشغيله على وضع الأوامر. ننفّذ الأمر help: للحصول على المساعدة (لا تنس الضغط على زر Enter بعد كتابة الأمر ليُنفَّذ). يبدو المحرّر كالتالي بعد تنفيذ الأمر السابق. تُقدّم صفحة المساعدة في الأعلى فهرسا بمحتوياتها على هيئة مقاطع مخصّصة حسب المواضيع. انتقل إلى الموضوع الذي ترغب في عرض معلومات عنه باستخدام الأسهم على لوحة المفاتيح ثم عند الوصول إلى اسم الموضوع في الفهرس اضغط على الزّريْن [+Ctrl لعرض محتويات المقطع المخصَّص للموضوع. يظهر في أسفل الشاشة اسم الملفّ الحالي. إن أردت إغلاق الملف دون حفظ التعديلات نفّذ الأمر التالي: :q! يُستخدَم نفس الأمر أيضا للخروج من صفحة المساعدة. استخدم أحد الأوامر التاليّة لحفظ التعديلات على ملفّ: :wq! :x! ZZ لاحظ ألا وجود للنقطتيْن في الأمر الأخير (ZZ). استخدم الأمر Ndd أثناء وضع الأوامر لقصّ عدد N من الأسطر، ابتداءً من السّطر الحالي. استخدم الأمر Myy أثناء وضع الأوامر لنسخ عدد M من الأسطر، ابتداءً من السّطر الحالي. استخدم الأمر p للصق الأسطُر التي نسختها أو قصصتها سابقا. يُستخدَم الأمر r: إن أردت إدراج محتوى ملف في الملفّ الحالي. إن أردنا مثلا إدراج محتوى الملف etc/fstab/ في الملف الحالي ننفّذ الأمر كالتالي: :r /etc/fstab يمكن أيضا إدراج نتيجة تنفيذ أمر من أوامر النّظام كالتالي: :r! command مثلا؛ لإضافة التاريخ والوقت في مكان المؤشّر نكتب: :r! date تابع درس أساسيّات Vim للمزيد حول الموضوع. استخدام أمر grep والتعابير النمطية Regular expressions يعد البحث في الملفات النصيّة من الأمور الاعتياديّة لأي مدير أنظمة. يكثُر استخدام أمر grep مع التعابير النمطيّة لهذا الغرض. التعابير النمطيّة (تُعرَف بـ regexأو regexp) هي طريقة للتعرّف على سلسلة محارف تتبع نمطا (صيغة أو هيئة) تُحدَّد بعبارة. سنعرض في ما يلي لأمثلة قاعديّة في التعامل مع التعابير النمطيّة؛ راجع مقال مقدمة في التعابير النمطية لتفاصيل أكثر. نفرض مثلا أنك تريد التأكد من دعم معالجك للحوسبة الافتراضيّة Virtualization. يعني وجود سلسلة المحارف svmأو vmx في الملفّ proc/cpuinfo/ أن المعالج يدعم التقنيّة المذكورة. نستخدم أمر grep كما يلي للبحث في الملف: $ grep -i 'svm\|vmx' /proc/cpuinfo تُستخدم العصى العموديّة | (تشير إلى العامل أو Or) للبحث عن توجد إحدى العبارتين svm أو vmx. يجب تخليص Escape العامل بـ\ وإلا فإن أمر grep سيتعامل معه كمحرف عادي لا دلالة له وليس بوصفه عاملا. يطلُب الخيار i- من الأمر ألا يعتدّ بحالة الأحرف (كبيرة أو صغيرة). يمكن باستخدام الخيّار E- تجاوز الحاجة لتخليص العوامل؛ ما يجعل الأمر يفسّرها مباشرة؛ يُكتَب الأمر السابق مثلا: $ grep -Ei 'svm|vmx' /proc/cpuinfo يمكن أن يكون التعبير النمطي عبارة عن مجال من خيارات توضَع بين معكوفين مربعين []. يُقرأ التعبير النمطي c[aeiou]t مثلا: حرف c، يتبعه واحد من الأحرف التالية aeiou ثم حرف t. تُطابق الكلمات التاليّة هذا التعبير النمطي: cat، cet، cot، cit وcut. يمكن أيضا وضع مجال من الأحرف أو الأرقام بين المعكوفين؛ على سبيل المثال [a-z] و[0-9] يوافقان على التوالي أي حرف أبجدية لاتيني صغير Lowercase والأرقام من 0 إلى 9. إن أردنا الإشارة إلى أن الحرف يمكن أن يتكرّر نضع عدد مرات التكرار بين معكوفين {X} بعد العبارة. يستخرج الأمر التالي معرّف جهاز التخزين من الملفّ etc/fstab/: $ grep -Ei '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' -o /etc/fstab نأخذ الجزء الأول من العبارة: [0-9a-f]{8}- بمكن فهم الجزء كالتالي: لدينا ثماني خانات تتبعها خانة تاسعة توجد بها عارضة -. بالنسبة للخانات الثمانيّة فقيمة كل واحدة يمكن أن تكون إما رقما من بين الأرقام 0 إلى9 أو حرفا من بين الأحرف a إلى f. ينطبق نفس المبدأ على بقيّة أجزاء العبارة. يشير العدد بين معكوفين بعد الأقواس إلى أن عدد مرات تكرار الجزء الموجود بينها. في المحصّلة: يمكن تقسيم العبارة إلى ثلاثة أجزاء: [0-9a-f]{8}- ([0-9a-f]{4}-){3} [0-9a-f]{12} يتشابه الجزء الأول والأخير (الثالث) مع فرق ألا وجود لعارضة في الجزء الأخير وكونه مكونا من 12 محرفا؛ بدلا من 8 قبل العارضة في الجزء الأول. أما الجزء الثاني فهو مكوّن من ثلاثة أجزاء؛ وتمكن إعادة كتابته كالتالي: [0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}- يطلُب الخيار o- من الأمر طباعة جزء الملف المطابق للعبارة دون غيره. الأنماط المعرَّفة مسبقا توجد تعابير نمطيّة معرّفة مسبقا؛ وفي ما يلي أهمها: النمط المعنى [[:alnum:]] جميع الحروف اللاتينية (الصغيرة والكبيرة) إضافة للأرقام من 0 إلى 9 [[:alpha:]] أي حرف لاتيني، صغيرا كان أم كبيرا [[:blank:]] مسافة أو علامة الجدولة Tabulation [[:digit:]] أي رقم من 0 إلى 9 [[:lower:]] أي حرف لاتيني صغير [[:space:]] مساحة [[:punct:]] علامات التنقيط [[:upper:]] أي حرف لاتيني كبير [:word:] جميع الأحرف اللاتينية، الأرقام من 0 إلى 9 أو عارضة سفليّة _ Underscore يطبع الأمر التالي جميع أسطر الملفّ etc/passwd/التي تحوي سلسلة من أربعة أرقام: $ grep -Ei [[:digit:]]{4} /etc/passwd ترجمة -وبتصرّف- للمقال RHCSA Series: Editing Text Files with Nano and Vim / Analyzing text with grep and regexps – Part 4 لصاحبه Gabriel Cánepa.
  2. مدخل إلى محرّر vim

    محرّرُ Vim يتمتّع بشهرة واسعة، بفضل هذه الشهرة أصبح يُعدّ من أوائل المحرّرات التي يُمكن للمستخدم أن يُخصّصها ويُضيف عليها كل ما من شأنه أن يجعل التّحرير مُريحاً وسهلاً سواء شكلاً أو أداءً. لقد تحدّثنا سابقاً عن الشّكل والمظهر، وقد حان الوقتُ للغوص في أعماق الإضافات التي تجعل التحرير لعبة في كثير من الأحيان بل هناك بعض الإضافات التي ستندم على أنّك لم تعرفها في كلّ هذه السنين منذ بداية استخدامك للحاسب، مُعظم الإضافات تتّبع فلسفة 'اجعلها أسرع وأبسط' وهذا يعني أنّك ستجدُ ضالّتك في هذا الدّرس إذا كنت تبحث عن تحسين أدائك وزيادة إنتاجيّتك إذ ستتعلّم كيف تديرُ الإضافات من تثبيت وتحديث إلى طرق حذفها. صحيح أن المُحرّر ممتازٌ جدّا في ما يتعلق بزيادة الإنتاجية حتى بدون أي إضافات (كما رأينا في الدّرسين السّابقين)، لكنّك بالإضافات قادرٌ على أخذ المُحرّر إلى المستوى المُتقدّم بشكل جدّ ملاحظ. ماهي إضافات vim بالضبط؟لا أظنّ أنّك قد تسألُ هذا السؤال، فنحن محاطون بالإضافات في كلّ مكان من إضافات المتصفّح إلى تطبيقات الهواتف الذكيّة، لكن في حال سألت هذا السّؤال جديّا، ففكّر في الإضافة على أنها أداة مساعدة تؤدّي عملا معيّنا أو تساعدُ في القيام بأمر ما، الشيء الذي يُسهّل ويُسرع عملية الإنتاج، وقد أعطيتك إضافات المتصفّح كمثال، و هذا بالضبط ما تفعله إضافات vim، أي تسريع عملية الإنتاج (الكتابة). الإضافات الخاصّة بالمحرّر يُمكن أن تكون عامّة أو مُخصّصة للغة برمجة ما، لبيئة ما أو إطار عمل معيّن. معظم الإضافات مُطوّرة من مُبرمجين مُستقلّين عن مُطوري المُحرّر، وكذلك تستطيع أنت أن تُبرمج إضافة خاصّة بك سواء بلغة Vimscript أو بلغتك إذا كنت تجيد لغات مثل روبي، بايثون، Lua. مع ملاحظة أن الإضافات التي لم تُبرمج بلغة Vimscript عادة ما تكون بلغة بايثون. تثبيت الإضافاتأولا عليك أن تعرف بأن الإضافات ليست إلا ملفّات برمجيّة وتنصيبها لمُحرّر Vim أمر في غاية السهولة، ويُمكن ذلك بعدّة طُرق سواء بأداة pathogen الّتي تسهّل إدارة ملفّات الإضافات البرمجيّة حيثُ تقوم بتنظيم الملفّات والإضافات لأجل تَيْسِيرِ تحديثها وحذفها. كذلك يُمكن فعل نفس الأمر باستخدام أداة Vundle التي استُلهمت من مشروع Bundler الخاص بإدارة جواهر روبي Rubygems. مع Vundle يمكنك ضبط إعدادات الإضافات في ملف vimrc، يُمكنك تثبيت، تحديث، البحث، وحذفُ الإضافات. هناك العديد من الأدوات الأخرى التي تؤدّي نفس الغرض، لكن pathogen و Vundle هما الأكثر استخداماً، وسأريك كيف تستخدمهما معاً ويمكنك اختيار أي واحدة منهما، لكنّي سأعتمد فقط على Vundle في الدروس القادمة التي سأتناول فيها استعمال الإضافات المُختلفة. 1. تثبيت الإضافات باستعمال أداة pathogenأداة pathogen تعتمد مبدأ البساطة المطلقة، إذ لا تتوفر على الكثير من المهام والتعقيدات وتُمكّنك من تثبيت الإضافات بنقلها إلى مجلد: .vim/bundle/pluginحيثُ plugin هو ملف الإضافة التي تُريد تثبيتها. لتثبيت الأداة حمّل ملفّ pathogen.vim ثمّ أنقله إلى مجلّد : ~/.vim/autoloadلديك أيضا خيار التثبيت عبر سطر الأوامر (تحتاج إلى أداة curl): تثبيت أداة curl على Gnu/Linuxعلى Debian وما بُني عليها: $ sudo apt-get install curlعلى Fedora: $ sudo yum install curlتثبيت أداة curl على Windows: حمّل curl، بعد فكّ الضغط عن الملفّ انقل الملف المسمّى curl.exe إلى مجلّد %windir% للوصول إلى المجلّد افتح قائمة ابدأ ثمّ تشغيل (Run) ثمّ ألصق %windir% واضغط Enter. بعد الحصول على curl لأنظمة جنو/لينكس الخطوة التالية هي تطبيق الأمر التالي من الطّرفيّة (Terminal): $ mkdir -p ~/.vim/autoload ~/.vim/bundle && \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vimأما إذا كنت من مستعملي Windows فطبّق الأمر التالي في برنامج Cmd: > mkdir -p ~\vimfiles\autoload ~\vimfiles\bundle && \ curl -LSso ~\vimfiles\autoload\pathogen.vim https://tpo.pe/pathogen.vimبعد نقل الملفّات وانتهاء العمليّة تحتاج إلى إضافة الأسطر التالية إلى ملفّ vimrc: execute pathogen#infect() syntax on filetype plugin indent onالآن أنت قادرٌ على تثبيت أي إضافة تريد (المثال التالي يقوم بتثبيت إضافة NERDTree على توزيعات Gnu/Linux و Mac) $ cd ~/.vim/bundle && git clone https://github.com/scrooloose/nerdtree.git أمّا إذا كنت تستعمل cmd في Windows، فهاك الأمر: > cd ~\vimfiles\bundle && git clone https://github.com/scrooloose/nerdtree.gitأداة Gitمعظم الإضافات مستضافة على GitHub لذلك فأداة git ضرورية للتحميل وهي متوفرة لمستخدمي جنو/لينكس على المستودعات الرّسمية ويمكنك تثبيتها تماماً كما تبّثنا أداة curl: لـ Debian وما بُني عليها: $ sudo apt-get install gitلـ Fedora: $ sudo yum install gitلمستخدمي وندوز حمل git هذا إذا أردت تثبيت الإضافات من الطرفيّة، أمّا إذا أردت أن تقوم بالأمر بشكل يدوي فهناك دائما طريقة أخرى: أولاً عليك تحميل الملفّات مضغوطة: https://github.com/scrooloose/nerdtree/archive/master.zipحيثُ scrooloose وnerdtree تتغيّر حسب اسم الإضافة واسم المستخدم الخاص بمُطوّرها على Github. فك ضغط الملفّ ثمّ انقل ما بداخله إلى مجلّد bundle. 2. تثبيت الإضافات باستعمال أداة Vundleأداة vundle شبيهة بأداة pathogen وتؤدّي نفس الغرض تقريباً، لكن أداة Vundle تستطيع فعل كثير من الأشياء التي لا تستطيع pathogen فعلها، مثلا في Vundle يُمكنك البحث عن الإضافات ، حيث تعرض لك الأداة جميع الإضافات الموافقة لما أدخلته وتعطيك إمكانية التنقّل بين نتائج البحث واختيار الإضافة المراد تثبيتها وبضغطة زر تُثبّتُ الإضافة، يُمكنك اعتبار الأداة بمثابة مدير حزم مثل apt-get في توزيعة أبنتو وyum في توزيعة فيدورا. أداة Vundle تمكنّك من : ضبط إعدادات الإضافات من ملفّ vimrc مباشرة.تثبيت الإضافات.تحديث الإضافات المثبتة.البحث عن الإضافات المتوفّرة.حذف الإضافات.القيام بكلّ ما سبق باستعمال سطر أوامر بسيط وسهل.تثبيت أداة Vundleلتثبيت الأداة عليك أن تتوفر على أداة git (أنظر فصل أداة Git أعلاه)، وعليك أيضاً أن تتوفر على أداة Curl، حيثُ تُستخدم للبحث من طرف Vundle. على Gnu/Linux أو ماك، طبّق الأمر التالي على الطّرفية: $ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vimبعد تطبيق الأمر أعلاه، أضف هذه الأسطُر إلى ملفّ vimrc: set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'user/plugin.vim' Plugin 'L9' filetype plugin indent on call vundle#end()التثبيت على نظام Windows، طبّق الأمر التالي في سطر الأوامر Cmd: cd %USERPROFILE% && git clone https://github.com/gmarik/Vundle.vim.git vimfiles/bundle/Vundle.vim && gvim _vimrcثمّ أضف الأسطر التالية إلى ملفّ vimrc: set nocompatible filetype off set rtp+=~/vimfiles/bundle/Vundle.vim/ let path='~/vimfiles/bundle' call vundle#begin(path) Plugin 'gmarik/Vundle.vim' Plugin 'user/plugin.vim' Plugin 'L9' filetype plugin indent on call vundle#end()مع مراعاة أن الأسطر باللون المُختلف غير ضروريّة وهي تعني: Plugin 'user/plugin.vim': تثبيت إضافة من github مُباشرة حيث user هو اسم مستخدم المُطوّر و plugin.vim اسم الإضافة.Plugin 'L9': تثبيت إضافة في حال توفّرها على Vimscripts.ملاحظة: بعد إضافة أي سطر لتثبيت إضافة ما عليك حفظ الملفّ والخروج من vim ثمّ تطبيق الأمر: :PluginInstallوسيبدأ Vundle بتثبيت الإضافات واحدة تلو الأخرى. الآن لتثبيت أي إضافة باستخدام Vundle يمكنك الاختيار بين الطّرق التالية: تثبيتُ إضافةالتثبيت من ملفّ vimrc.لقد رأينا هذه الطّريقة من قبل، فقط إضافة أحد الأسطر السّابقة أعلاه لملفّ vimrc ثمّ الخروج من Vim وفتحه مجدّدا ثمّ تنفيذ الأمر PluginInstall كفيل بالأمر. التثبيت من المُحرّر مباشرة:Vundle يُوفّر لنا عدة أوامر جاهزة لاستخدامها داخل المُحرّر ومن بين هذه الأوامر أمر PluginInstall، ويُمكنك استعماله في المُحرّر على النّحو التالي: :PluginInstall pluginحيثُ plugin هو اسم الإضافة، ويمكن أن يكون على شكل user/plugin في حال كانت الإضافة مستضافة على GitHub. الأمر سيفتح تقسيما جديدا للشاشة وسيبدأ بعملية التثبيت مباشرة الوقت المُستغرق يعتمد على حجم الإضافات التي تُحاولُ تثبيتها وعلى سرعة الأنترنت لديك. عند الانتهاء يُمكنك إغلاق التقسم باستخدام: :qأو :bdeleteالبحث عن إضافةعرض جميع الإضافات التي يُمكن لـ vundle تثبيتها إذا كنت فضولياً فمن الجيّد أن تطّلع على كميّة الإضافات الموجودة لمحرّر vim وأسمائها، لفعل ذلك نفّذ الأمر التالي على المُحرّر: :PluginSearch! إلى حين كتابة هذا الدّرس هناك أكثر من 4000 إضافة يستطيع Vundle تثبيتها، الإضافات يُمكن أن تكون عامة ومفيدة لجميع المُبرمجين، للغة معيّنة، لبيئة ما أو حتى لإطار عمل معيّن. تحديثُ إضافةبعد تثبيت إضافة ما أنت جاهز للعمل بها واستغلالها لتحسين أداء المُحرّر، لكن بعد مدة معيّنة سيضيف المطوّر بعض التحسينات لإضافته، وكلّنا ذاك الذي يرغبُ في الجديد المحسّن، لذلك أداة Vundle تُوفّرُ لنا أمر PluginUpdate لتحديث الإضافات. لتحديث جميع الإضافات: :PluginUpdateلتحديث إضافة معيّنة: :PluginUpdate pluginلتحديث أكثر من إضافة يُمكنك فصلُ أسمائها بمسافة: :PluginUpdate plugin1 plugin2يمكنكَ استخدام أمر PluginInstall مع إضافة علامة تعجّب(!) لتحديث جميع الإضافات (ليس ضروريا، مُجرّد أضف لمعلوماتك): :PluginInstall!وهو أمرٌ يخبرُ Vundle بالقيام بعمليّة إعادة تثبيت، ما يجلبُ أحدث الإصدارات. حذف إضافةقد تشعرُ أنّ الإضافة التي قُمت بتثبيتها مؤخّراً ليست مفيدة بالمرّة أو أنها تُسبب مشاكل للمحرّر، لا مشكلة يمكنك التخلّص منها باستخدام Vundle. لحذف إضافة عليك أولاً أن تعرض الإضافات المُثبّتة، لقيام بذلك طبّق الأمر: :PluginListبعد تطبيق الأمر سيظهر قسم في الشاشة يحوي جميع الإضافات المُثبّتة تصفح باستخدام أسهم لوحة المفاتيح واختر الإضافة التي تُريد حذفها ثمّ اضغط على زرّ D. ستظهر علامة – بجانب اسم الإضافة، هذا يعني أنّ الإضافة حُذفت ويمكنكَ الخروج، إذا أردت التراجع يمكنك ذلك باستخدام أمر التثبيت ما دام اسم الإضافة في ملف vimrc أو يُمكنك حذف اسمها في الملفّ إذا أردت تأكيد عدم رغبتك في رؤية وجه تلك الإضافة مُجدّدا. حذفُ مجموعة من الإضافات دُفعة واحدةيُمكنك حذف مجموعة من الإضافات بإزالتها من ملفّ vimrc ثم تنفيذ الأمر التالي: :PluginCleanسيقوم Vundle بإظهار رسالة تأكيد أكتب y ثمّ Enter للتأكيد، الأمر سيقوم بحذف جميع الإضافات التي لا توجد في ملفّ vimrc. حذفُ جميع الإضافات دُفعة واحدة (احذر!)إذا كنت تُريد أن تعود إلى زمن vim الخالص بدون أي إضافة، يُمكنك حذف جميع الإضافات بإزالتها من ملفّ vimrc ثم تنفيذ الأمر التالي: :PluginCleanسيقوم Vundle بإظهار رسالة تأكيد أكتب y ثمّ Enter للتأكيد، الأمر سيقوم بحذف جميع الإضافات التي لا توجد في ملفّvimrc أي جميعها في حالتنا. خاتمةتعرّفنا في هذا الدّرس على كيفيّة إدارة الإضافات ولم يبق لنا إلا شرح أهم الإضافات التي من شأنها أن تزيد من إنتاجيتك، وتُحسّن بها أداءك. الدرس القادم سيكون عن الإضافات التي يحتاج إليها كل مبرمج بغضّ النظر عن اللغة التي يتعامل بها مع برامجه وتطبيقاته.
  3. لقد تعرّفنا معا في الدرس السابق على أساسيّات التّعامل مع النّصوص والملفّات في محرر vim حيثُ شرحتُ أوامر متعلّقة بالتّعديل والحذف كالقصّ واللّصق والحذف، وتعرّفنا على مبادئ الانتقال بين الكلمات، الأسطر، التّبويبات وتقسيمات الشّاشة؛ والآن حان وقت المزيد من الأوامر -المتقدمة نسبيّا- التي ستساعدك على التعرف على المحرر بشكل أعمق. معلومات الملفإذا قمت بفتح ملف ما وتريد معلومات عنه فكل ما عليك فعله هو الضغط على Ctrl+g أو تنفيذ الأمر: :fبعد تنفيذ الأمر ستلاحظ في أسفل الملف ستلاحظ المعلومات التالية: اسم الملفعدد أسطر الملفإحداثيات ومكان المؤشّر في الملف التّعامل مع الفقرات1. الأزرار a, o, s | A, O, S للانتقال إلى نمط الكتابةالزر a سيقوم بالانتقال إلى وضع الكتابة بعد موضع المؤشّر مباشرة. للانتقال إلى وضع الكتابة بعد جملة كاملة أو فقرة معيّنة (بـأكملها): Aالزر o (كما ذكرنا سابقا) ينتقل بك إلى نمط الكتابة في سطر جديد (تحت المؤشّر)، أما إذا كنت ترغب بالدّخول إلى نمط الكتابة في سطر جديد فوق المؤشّر فاستعمل: Oالزّرّ s سيقوم بحذف الحرف الذي يوجد فيه المؤشر وينتقل بك مباشر ة إلى وضع الكتابة، أي أن الزر s له دور التعديل. إذا أردت تعديل جملة كاملة أو فقرة معيّنة (بـأكملها): S2. الزرّان r و R للانتقال إلى وضع الاستبداليوجد وضع (نمط) آخر في vim ألا وهو وضع الاستبدال (Replace) يمكنك أن تحزر فائدته من اسمه فقط، ويمكنك أيضا ملاحظة أن الزرّان المسؤولان عن الولوج إليه هما أول حرف من كلمة Replace. النّمط بكل بساطة يُخوّلكَ لاستبدال ما تشاء سواء حرفا واحدا في كل مرّة أو مجموعة في آن واحد. بحيث : الزر r لاستبدال حرف واحد فقط.الزر R لاستبدال عدة حروف في آن واحد.3. المزيد عن الانتقال بين الجمل والفقراتلقد ذكرنا سابقا (الدرس السابق) أساسيّات التّنقل في ملفّ معيّن، سنغطّي المزيد في هذه الفقرة. الانتقال إلى الفقرة التالية، استعمل { . تريد عكس الأمر؟ Ctrl+o سيفي بالأمر. تحريك المؤشر بين الجمل:للانتقال بين الجمل ببساطة استعمل كلا من ( و ) حيث ) للانتقال إلى الجملة التالية و ( للرجوع إلى الجملة السابقة. استعمل الأرقام إذا كنت ترغب بالقفز وتجاوز الجمل، مثلا 3) للانتقال إلى الجملة الثالثة بعد المؤشر (يمكنك تغيير الرقم 3 بما تشاء). للانتقال إلى حرف معيّن:fxحيث x هو المكان الذي نرغب بوضع مؤشر الفأرة عليه. يمكنك استعمال الأرقام أيضا، مثلاً: 3fxفي هذا المثال نُخبِرُ vim بأن ينتقل إلى حرف x الثّالث (يعني تجاوز أوّل حرفين x وانتقل إلى الثّالث). 4. تعليم منطقة معيّنة في ملفكتخيل أنك كتبت كمّا كبيرا من الشيفرة في ملفّك، وأثناء كتابتك في لحظة معينة تذكّرت أنك تحتاج إلى إضافة شيء ما بالأعلى، لنقل بداية الملف، ستقول الأمر سهل كل ما عليّ فعله هو الضغط على gg للانتقال إلى الأعلى ثم أضيف ما أشاء، نعم الأمر يبدو جيّداً، لكن ماذا لو أردت العودة إلى المكان الأول الذي كنت فيه قبل الانتقال إلى الأعلى؟ هنا يأتي دور التعليم أي وضع علامة في مكان ما لتمييزه بزر معين. لاستخدام التعليم قم بالضغط على m (اختصارًا لـِ mark) ثم الزر الذي تريد التعليم به. بالمثال يتضح المقال: إذا كان مؤشر الفأرة مثلا في منطقة ما في وسط الملف (على حرف معيّن بالضبط) وتريد تعليمه بزر a : maالآن انتقل إلى أي مكان ترغبه في الملف وكلما أردت العودة إلى السطر المعلّم بزر a ستضغط على a'، أما إذا كنت ترغب في العودة إلى موضع المؤشّر بالتّحديد فاضغط على a`. يمكنك استعمال أي حرف من ( a-z A-Z ) بشرط أن يكون حرفاً واحداً فقط أي أنّك تملكُ ما مجموعه 52 زرا لتعليم مختلف مناطق الملف. 5. استعمال الأرقام لتكرار العمليّاتإلى الآن، تعرّفنا على استعمالات عديدة للأرقام لكن أهم ما يجب عليك معرفته بخصوص الأرقام هو أنك تستطيع أن تستعملها لتكرّر عملية ما بعدد لا نهائي من المرّات. مثلا لنقل أنّ لدينا جملة في ملفنا، ننسخ الجملة باستعمال yy (اُنظر الدرس الأول) ولكنّنا لا نريد لصقها مرة واحدة فقط بل العديد من المرات (أي تكرارها في الملف n مرّة). للقيام بذلك طبّق الأمر التالي: npبحيث n هو عدد المرات التي ترغب بلصق الجملة في الملف (بعد مؤشر الفأرة مباشرة). أقرب مثال أستحضره حاليا هو القوائم في لغة HTML، لنقل أنّك تحتاج إلى إضافة 10 قوائم في الملف. هل تعتقد أن كتابتها بشكل يدوي سيفي بالغرض؟ (إن كان جوابك نعم فاستعدّ للتضحية بحصة لا بأس بها من وقتك الثمين). بالطبع الجواب هو لا. لذلك كل ما عليك فعله هو كتابة السطر الأول: <li> Item in The List </li>ثم انسخ السطر باستعمال yy ثم ألصقه 10 مرّات باستعمال: 10p طبّقت الأمر 1000000p وحصلت على مليون سطر (نواة لينكس؟) وملف بحجم 28Mb ولا زال vim يستجيب في أجزاء من الثانية، لا تغيير في السرعة حتى عند الحفظ (لا أظن أن أي بيئة تطوير قادرة على فعل نفس الشّّيء خلال جزء من الثانية، وهذا سبب قويّ لاستخدام المحرر، أليس كذلك؟). ملاحظة: هذا مجرد مثال والتطبيقات تكاد تكون لا نهائية لذلك الدّور عليك لتستكشف تطبيقات الطريقة وهذا الأمر متروك لخيالك ومدى رغبتك في التّعلّم . 6. التّراجع وإلغاء التراجعلقد تحدّثتُ أيضاً عن أساسيّات هذه الخاصية في الدرس السابق (u للتراجع عن تعديل ما و Ctrl+r لإلغائِه)، وقد حان الوقت الآن لبعض العمليّات المتقدّمة. تراجع عن جميع التعديلات التي قمت بها قبل x دقائق من الآن: :earlier 2mهذا الأمر يقوم بالتراجع عن جميع التعديلات التي قُمت بها منذ دقيقتين، وبالطبع يمكنك استخدام الثواني كوحدة زمنية. :earlier 25sولعكس العمليّة استعمل later: :later 3mهذه الأوامر مفيدة إذا كنت تقوم بتعديلات عديدة في وقت قصير ولكنّك عادة لا تتذكّر الأوقات بالتّحديد، الرجوع بحسب عدد التّعديلات طريقة أفضل(نعم خاصيّة أخرى). للتّراجع بحسب عدد التّعديلات: :undo 5الأمر أعلاه يقوم بإلغاء آخر خمس تعديلات. عرض قائمة التراجعات: :undolistمحرك البحث في vimvim يمتلكُ محركَ بحث مدهش وقوي يمكنك إعداده وتخصيصه كيفما تشاء، حيث يمكنك إخبار المحرّر بأنك تُريد أن يتجاهل حالة الأحرف (مثلا a وA كلاهما سيوافقان نتائج البحث)، ويمكنك أيضا إعداده لعرض النتائج بشكل فوري (يعني أن يقوم بالبحث بمجرد المباشرة بالكتابة). إخبار المُحرّر بأننا نريد بحثا فوريا: :set incsearchتجاهل حالة الأحرف: :set ignorecaseمثلا إذا قمت بالبحث عن “hello” : /helloستكون النتائج متوافقة مع كل من : Hello , hello , HELLO هذه الإعدادات لن تُسجّل إذا أغلقت المحرّر، وقد ذكرت في الدّرس السّابق أنك تستطيع إضافة أسطر إلى ملف vimrc. لكي تُسجّلَ الإعدادات بشكل افتراضي، حيث يكون كل شيء معدّا مسبقاً فور فتح المحرّر، يمكنك فعل ذلك الآن إذا كنت ترغب في ذلك. فقط افتح الملف (ملف vimrc) وألصق الأسطر التالية في الأسفل: set incsearch set ignorecaseملاحظة: للتنقّل بين عمليات البحث استعمل كلا من n و N. النّصوص داخل الأقواس، علامات التّنصيص والمعقوفاتvim يُوفّر مساعدةً قيّمةً للمبرمجين، حيث يحتوي على كمّ كبيرٍ من الأوامِر التي تُساعدهم على التعامل مع كتلِ التّعليمات البرمجية (code blocks)، إذ يمكّنكَ المحرّر من تعديل، حذف و نسخ كل ما يوجد بداخل الرموز مثل : {} , “ “ , () , `` , <> أو حتى تضمينها كذلك. التعديل1. تعديل ما بداخل الرمزين {}:يمكنك تعديل ما بداخل الرمزين { و } ببساطة وذلك باستعمال الأمر التالي: ci{ أو ci}ملاحظة: يجب على المؤشّر أن يكون إما على أحد الرمزين أو داخلهما (الملاحظة تنطبق على جميع الأوامر أسفله). 2. تعديل ما بداخل الرمزين <>:يمكن ذلك بنفس الطريقة: ci< أو ci>بنفس الطريقة يمكن تعديل ما بداخل الأقواس (): ci( أو ci)3. تعديل ما بداخل علامات التنصيص " أو ' أو ` :ci'أو ci” أو ci`4. تعديل ما بداخل وسوم HTML:يمكن أيضاً تعديل ما بداخل وسوم HTML بالأمر التالي: citالحذفالحذف يكون بنفس طريقة التعديل، فقط استبدِل c ب d، مثلا لحذف ما بداخل الرمزين {}: di{ أو di}أما لحذف ما بداخل وسوم HTML: ditالنسخالنسخ كذلك يتّبع نفس المنطق فقط استعمل y عوضا عن c و d مثلا لنسخ ما بداخل الأقواس (): yi( أو yi)في جميع الأوامر السّابقة تعلّمنا كيف ننسخ ما بالداخل فقط، فماذا لو أردنا تعديل، حذف أو نسخ العلامة أيضا؟ لفعل ذلك فقط استبدل i بـِ a، إليك مثالاً على ذلك: لنقل أنّنا نملك ملفّا يحتوي على الآتي: if (x == 0)إذا طبّقنا الأمر(المؤشّر على أحد القوسين أو بداخلهما): di)سيقوم المحرر بحذف "x == 0". أمّا لو طبّقنا الأمر: da)فسيقوم المحرّر بحذف "(x == 0)". وقِسْ على ذلك بقيّة الأوامر(التّعديل والنّسخ). المسافة البادئة للنّصوص (text indent)المسافة البادئة للأسطر تعدّ من أهمّ ما يجبُ على المبرمج الاهتمام به، إذ أن الشيفرة النّقيّة تعتبر أساساً لتحديد مدى مهارة المُبرمج، وليتمكّن الآخرون من فهم ما كتبه خاصّة إذا كان يعملُ في مشروع مفتوح المصدر. مثال على استعمال المسافات البادئة: if ... // ... else // ... endفي المثال أعلاه كتبنا جملة شرطية بدون أي مسافات بادئة. if ... // ... else // ... endأما في هذا المثال فقد قمنا بوضع مسافات بادئة لمزيد من التنسيق ولك أن تلاحظ الفرق.كما أن هناك لغات تُجبرُك على التّنسيق باستخدام المسافات البادئة (مثل Python) وإلا فلن يعمل البرنامج. في vim هناك العديد من الخيارات للتحكّم بالمسافات البادئة، أولا عليك تفعيل خيار "المسافات البادئة الذكيّ" (Smart indent)، ومن المفضّل أن تضعه في ملفّ vimrc: :set smartindentضبط عرض المسافة البادئةأقصدُ بعرض المسافة البادئة، المسافة التي ستكون بين بداية السطر والكتابة (اُنظر المثال): هذا نص بمسافة بادئة تساوي 0 هذا نص بمسافة بادئة تساوي 1 هذا نص بمسافة بادئة تساوي 4 هذا نص بمسافة بادئة تساوي 10لِضبط المسافة البادئة في vim طبّق الأمر التالي: :set shiftwidth=xحيث x عرض المسافة البادئة، من المُفضّل أن يكون 4 فقط. :set shiftwidth=4لوضع مسافة بادئة لسطرٍ ما استخدم: >ولإلغاء المسافة البادئة: <لوضع مسافة بادئة لمجموعة من الأسطُر: vjjj>حيث v للولوج إلى الوضع المرئي وj للانتقال للأسفل. لوضع مسافة بادئة لما بداخل المعقوفات ({})، إذا كان لديك جملة شرطيّة مثلا في لغة جافاسكريبت: function foo(){ //... //... //... //... }قد ترغب في وضع مسافة بادئة لجميع الأسطر التي تتواجد داخل علامتي { ... } للقيام بذلك ضع المؤشّر على إحدى العلامتين وقم بالضغط على: >i}النتيجة ستكون كالتالي: function foo(){ //... //... //... //... }أمّا إذا أردت أن تنسّق الملف بكاملهِ في آن واحد فالأمر التالي سيُعطيكَ ما تريده: gg=Gحيثُ gg لتحريك المؤشّر إلى أعلى الملفّ و = لإضافة المسافة البادئة وG للانتقال إلى آخر الملفّ. تخصيص مظهر vimمحرّرvim يعتمِد مبدأ البساطة، لكن هذا لا يجعله غير قابل على تخصيص مظهره، بل تستطيع أن تجعل المحرّر فخماً وذا تصميمٍ مُبتكرٍ خاصّة مع الكمّ الكبير من السمات المتاحة له، إذ أن هناك مبرمجون من مختلف أنحاء العالم ينشُرونَ سماتٍ للمُحرّر، وسنكشف بعضاً منها في هذه الفقرة. 1. تنصيب السّماتتنصيب السّمات على محرّر vim سهلٌ جدّاً، ولكنّه يختلف من نِظام تشغيل إلى آخر. لمستخدمي Gnu/Linux أو Mac OSقُم بتحميل المِلفّات (ملفّ واحد في غالب الأحيان) ثمّ اُنقل الملفّات بامتداد vim (مثلا color.vim) إلى المسار التالي : ~/.vim/colors/ملاحظة: علامةُ ~ اختصار يُمثّل مُجلّد المنزل الخاصّ بك. إذا لم يكن مُجلّد colors داخل مجلّد vim. ( المجلّد مخفيّ افتراضياً في متصفّح الملفّات لإظهاره اضغط Ctrl+h) موجوداً فقم بإنشائه. أو طبّق الأمر التالي في الطرفية (Terminal): mkdir ~/.vim/colorsلمستخدمي Windowsهذا هو مسار مُجلّد vim. : %userprofile%\vimfilesكل ما عليك فعله هو الذهاب إلى قائمة" ابدأ" (start) ثمّ " تشغيل" (run) بعد ذلك ألصق الأمر التالي: %userprofile%ثمّ قم بإنشاء مجلد vimfiles، وبعد ذلك أنشئ مجلّداً باسم colors هذا هو المجلّد الذي سنقوم بنقل ملفات السمات داخله. 2. تفعيل السّمات والتبديل بينهاالآن أنت جاهز لتفعيل السمات التي قمت بتحميلها (لا تقلق أنت لم تحمّل شيئا بعد)، بعد إكمال عمليّة نقل الملفّات المناسبة (ذات امتداد vim) إلى مجلد .vim/colorsأو %userprofile%\vimfiles\colorsيمكنك مباشرة فتح vim وتجربة السّمة التي ثبّتها بالأمر: :colorscheme themeسيتغيّر المظهر لكنّ الأمر لن يُحفَظ لحفظه ولإبقاء المظهر في كل مرة تفتح ملفّا في vim عليك إضافة السطر التالي في vimrc. : colorscheme themeبالطبع مع تغيير theme إلى اسم السّمة. 3. السّمات الافتراضيّةلنتحدّث الآن عن سمات المحرّر، في vim هناك سمات افتراضية موجودة أصلاً ولا تحتاج إلى تحميل يمكنك معاينتها وانظُر أأعجبتكَ أم تريد شيئا أفضل: سمة desert سمة blue سمة darkblue سمة delek سمة elflord سمة morning سمة pablo سمة slate هناك المزيد والمزيد من السّمات التي يُوفّرها لك المحرّر يمكنك تصفحها عبر الأمر: :colorscheme <tab>تحميل السّماتإن لم يُعجبك أي مظهر من مظاهر المحرّر الموجودة أعلاه، لا تقلق لا يزال هناك أمل، سأسرد لك بعضا من السّمات الموجودة خارج المحرّر وعليك تحميلها إذا أردت تفعيلها. وكما قلت سابقا لتفعيل أيّ سمة يكفي أن تنقل الملفّ بامتداد vim إلى مجلّد colors ثم نفّذ الأمر: :colorscheme themeحيثُ theme هو اسم الملف، مثلا إذا كان اسم الملفّ color.vim فيكفي أن تغيّر theme إلى color، ولإبقاء السّمة، أضف السّطر إلى ملفّ vimrc.. سمة Guardianهذه أحد السمات التي يمكن تحميلها مثلا، ثم تنصيبها بالطريقة التي قمنا بشرحها أعلاه: سمة Github هذه سمةٌ أخرى يُمكن تحميلها شبيهة بسمة موقع Github. سمة Vividchalk لتحميل السمة. سمة Candy تحميل السّمة ختامالقد تعرّفنا في هذا الدرس على قدراتِ vim المتقدّمة في التّحرير والتّعامل مع مختلف أنواع النّصوص والجمل، وأيضاً على طرق لتخصيص المحرّر، ولكنّه يحوي أكثر من هذا كلّه خاصّة أنّه مليء بالمفاجآت، والإضافات التي تستطيع أن تجعله أكثر من مجرّد محرّر!