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

لوحة المتصدرين

  1. عبدالهادي الديوري

    • نقاط

      1

    • المساهمات

      368


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 05/02/15 في كل الموقع

  1. لقد تعرّفنا معا في الدرس السابق على أساسيّات التّعامل مع النّصوص والملفّات في محرر 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 المتقدّمة في التّحرير والتّعامل مع مختلف أنواع النّصوص والجمل، وأيضاً على طرق لتخصيص المحرّر، ولكنّه يحوي أكثر من هذا كلّه خاصّة أنّه مليء بالمفاجآت، والإضافات التي تستطيع أن تجعله أكثر من مجرّد محرّر!
    1 نقطة
×
×
  • أضف...