اذهب إلى المحتوى

محرّرُ 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!

1.thumb.png.047ea7cfbb3e013ed4d98c6525a5

إلى حين كتابة هذا الدّرس هناك أكثر من 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 أي جميعها في حالتنا.

خاتمة

تعرّفنا في هذا الدّرس على كيفيّة إدارة الإضافات ولم يبق لنا إلا شرح أهم الإضافات التي من شأنها أن تزيد من إنتاجيتك، وتُحسّن بها أداءك. الدرس القادم سيكون عن الإضافات التي يحتاج إليها كل مبرمج بغضّ النظر عن اللغة التي يتعامل بها مع برامجه وتطبيقاته.


تفاعل الأعضاء

أفضل التعليقات

شكراً على الشرح المفصل.

من يريد توفير العتاد والموارد في أجهزته أنصحه باستخدام VimPlug بدلاً من Vundle، لها صيغة مشابهة كثيراً لـ Vundle لكنها أقل استهلاكاً للموارد وأسرع بنفس الوقت.

 

 



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...