كيفية تعيين المفاتيح في Vim

Kyfyt T Yyn Almfatyh Fy Vim



في Vim، تعيين المفاتيح هو عملية تعيين مجموعة من المفاتيح أو الأوامر لمفتاح معين لتنفيذ مهمة معينة. على سبيل المثال، لتحديد كافة الأسطر في الملف الذي تستخدمه ggVG الأمر، وعليك الضغط على أربعة مفاتيح للقيام بذلك. ماذا عن القيام بذلك بضغطة زر واحدة فقط؟ هذا هو المكان الذي يكون فيه تعيين مفتاح Vim مفيدًا. يعد تعيين المفاتيح طريقة لأتمتة العديد من المهام التي يتم تنفيذها بشكل متكرر في Vim. ولا بد أنك سمعت عنها؛ إذا كنت تفعل شيئا أكثر من مرتين، قم بأتمتة ذلك!

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

بناء الجملة

لتعيين المفتاح في Vim، يتم استخدام بناء الجملة التالي:







خريطة



في بناء الجملة أعلاه:



<الوضع>خريطة nmap أو imap أو vmap أو xmap أو cmap أو omap
<الوسائط>* <صامت>، ،

*في بناء الجملة أعلاه، قسم اختياري.

فيم الحجج الخاصة

Vim Special Arguments هي علامات تُستخدم لتوفير وظائف إضافية لخرائط المفاتيح. تظهر هذه الوسيطات بعد الأمر:map، وقبل {rhs} و{lhs}.



على سبيل المثال، لجعل المخزن المؤقت للخريطة خاصًا، استخدم الوسيطة الخاصة بالطريقة التالية:

:خريطة < متعادل > < ج-أ > ggVG
<صامت> لمنع الرسائل المكررة من خريطة المفاتيح
<المخزن المؤقت> لجعل المخزن المؤقت للخريطة خاصًا (فريدًا للمخزن المؤقت الحالي)
<النص البرمجي> للإشارة إلى أن الخريطة جزء من برنامج نصي أو مكون إضافي
<خاص> *يتم استخدامه لتحديد المفاتيح الخاصة لرسم الخرائط باستخدام علامة <> (مفاتيح الوظائف، والتحكم، والتحويل، والمفاتيح الأخرى غير الأبجدية)
<إكسبر> يشير إلى أن الجانب الأيسر للرسم هو تعبير ويجب تقييمه للحصول على الجانب الأيمن
<فريد> أن تكون الخريطة فريدة من نوعها بين الخرائط المحلية والعالمية
<الآن> لتخطي انتظار حرف الأمر التالي في الخريطة

تم ذكر رموز Vim الرئيسية الخاصة في الصورة التالية.

على سبيل المثال، إذا كنت تريد استخدام مفتاح المسافة في تعيين المفاتيح، فسيتم استخدام الترميز .

إنشاء خريطة مفاتيح أساسية في Vim

دعونا نفهم تعيين مفتاح Vim بمثال أساسي. أريد تعيين أمر تحديد جميع الأسطر ( ggVG ) ل السيطرة + أ مفاتيح. لتعيين مفاتيح ctrl+a، سأقوم بتشغيل الأمر التالي في Vim.

:خريطة < ج-أ > ggVG

هنا، <ج-أ> يدل على كنترول و أ المفاتيح بينما ggVG هو أمر لتحديد كافة الأسطر في الملف. ال :خريطة الكلمة الأساسية مخصصة لتعيين الوضع العادي بشكل افتراضي، ومع ذلك، فإن :nmap يمكن أيضًا استخدامه بشكل صريح لـ طبيعي وضع.

وبالمثل، لتعيين وظيفة تبديل رقم السطر باستخدام F1 الاستخدام الرئيسي:

:خريطة < F1 > :عدد مجموعة !

الآن، عند الضغط على المفتاح F1، سيتم تمكين رقم السطر، والضغط عليه مرة أخرى يؤدي إلى تعطيله.

لاحظ أن هذه الطريقة ستقوم فقط بتعيين المفاتيح الموجودة في المخزن المؤقت الحالي وستتم إزالتها عند إغلاق المخزن المؤقت.

سرد خرائط المفاتيح

لسرد جميع التعيينات الرئيسية للأوضاع العادية والمرئية والمعلقة للمشغل، استخدم الأمر :map.

:خريطة

لسرد التعيينات الرئيسية لـ إدراج و سطر الأوامر الأوضاع، استخدم :map! يأمر.

:خريطة !

لسرد تعيين المفاتيح لوضع معين، ما عليك سوى كتابة الحرف الأولي للوضع قبل الكلمة الأساسية للخريطة.

:nmap لعرض خرائط الوضع العادي
:imap لعرض خرائط وضع الإدراج
:vmap لعرض الخرائط المرئية وتحديد الوضع
:smap لعرض خرائط وضع التحديد
:xmap لعرض خرائط الوضع المرئي
:cmap لعرض خرائط وضع سطر الأوامر
:omap لعرض خرائط وضعية المشغل المعلقة

علاوة على ذلك، لسرد كافة الخرائط بما في ذلك خرائط البرنامج المساعد مع المسارات، استخدم :خريطة مطولة يأمر.

:خريطة مطولة

بالنسبة لمفتاح محدد، ما عليك سوى ذكر المفتاح في الأمر ( : خريطة مطولة <مفتاح> ).

جعل خرائط المفاتيح دائمة

ستقوم خرائط المفاتيح المذكورة في القسم أعلاه بتعيين المفاتيح الموجودة في المخزن المؤقت الحالي فقط. لجعل تعيينات مفاتيح Vim دائمة، يجب وضع الخرائط في ملف vimrc.

لاحظ أنه أثناء وضع خريطة المفاتيح في ملف vimrc الملف، لا تقم بإضافة نقطتين (:) قبل ملف خريطة يأمر.

بعد وضع خريطة المفاتيح في vimrc قم بحفظ الملف ثم قم بإنهائه باستخدام الأمر :wq أو باستخدام مفاتيح Shift+zz. خرائط المفاتيح الموضوعة في vimrc سيكون الملف عالميًا ويمكن استخدامه في جميع جلسات Vim. ومع ذلك، يمكن تعطيل بعض خرائط المفاتيح مؤقتًا إذا كانت تؤثر على العمل في الجلسة الحالية، راجع قسم كيفية إزالة خريطة المفاتيح في Vim أدناه.

ال vimrc هو ملف إعداد Vim الذي يحتوي على أوامر وإعدادات مختلفة. وهو موجود في /سر/مشاركة/فيم/ الدليل على macOS و /الخ/vim على لينكس. ومن المهم أن نلاحظ أن vimrc الملفات الموجودة في الدلائل المذكورة هي ملفات خاصة بالنظام. يمكنك تحرير هذه الملفات أيضًا لتعيين المفاتيح، لكنني أوصي بإنشاء ملف خاص بالمستخدم vimrc الملف في الدليل الرئيسي.

تجنب التكرار

قبل المضي قدمًا، من المهم التعرف على التكرار في تعيين مفتاح Vim. عيوبها وكيفية الوقاية منها. ويمكن فهم ذلك من خلال استخدام المثال.

:خريطة د 3jdd

في المثال أعلاه، قمت بتعيين د مفاتيح للتحرك لأسفل بمقدار 3 أسطر وحذف السطر الموجود أسفل المؤشر. الآن، عندما أضغط على د ، سيحاول تنفيذ الخريطة 3jdd . سوف يقوم Vim بتفسير د الأمر كخريطة وتنفيذ الخريطة بشكل متكرر، كما هو موضح في الصورة التالية.

ملحوظة : يمكن أن يؤدي العودية إلى تجميد محرر Vim. لإلغاء التجميد، اضغط على السيطرة + ج مفاتيح.

لتجنب التكرار، استبدل خريطة الكلمة الرئيسية مع com.noremap ، أين ' نورا ' وسائل غير العودية . سوف أستبدل خريطة الكلمة الرئيسية مع com.noremap لإصلاح العودية في خريطة المفاتيح أعلاه.

:noremap د 3jdd

سأوصي باستخدام com.noremap بدلاً من خريطة لتجنب إنشاء خرائط متكررة عن طريق الخطأ.

إنشاء خرائط مفاتيح خاصة بالوضع

لقد جعل Vim تعيين المفاتيح متعدد الاستخدامات بحيث يمكن إنشاء خريطة مفاتيح لوضع معين بسهولة تامة. على سبيل المثال، إذا قمت بإنشاء خريطة مفاتيح لوضع الإدراج باستخدام F1 المفتاح، ثم يمكنك تعيين نفسه F1 المفتاح في وضع آخر لعملية جديدة تمامًا.

في المثال التالي، قمت بتعيين F1 مفتاح لحذف 3 أسطر في طبيعي الوضع واسحب 3 خطوط في إدراج وضع.

:nmap < F1 > 3dd
:imap < F1 > < ج-ر >

تحذف الخريطة الأولى ثلاثة أسطر في الوضع العادي عند الضغط على المفتاح F1، بينما تضيف الخريطة الثانية مسافة بادئة واحدة في السطر الحالي عندما تكون في وضع الإدراج باستخدام نفس المفتاح. الآن، دعونا نفهم رسم الخرائط في كل وضع.

تعيين الوضع العادي

لتطبيق الخريطة في الوضع العادي، استخدم فقط nmap الكلمة الرئيسية. على سبيل المثال، لنسخ كافة الأسطر في ملف باستخدام السيطرة + ج المفاتيح، سأستخدم الأمر التالي.

:nmap < نسخة > ggVGy

كما تمت مناقشته سابقًا، من أفضل الممارسات استخدام طريقة غير متكررة لتعيين مفتاح، لذلك سأستبدل nmap مع com.nnoremap الكلمة الرئيسية.

:nnoremap < نسخة > ggVGy

ضعه بدون نقطتين (:) في ملف vimrc ملف لجعله خريطة مفاتيح دائمة.

سأستخدم com.noremap بدلا من ال خريطة في المثال التالي.

تعيين وضع الإدراج

لتعيين المفاتيح لوضع الإدراج، استخدم فقط أنا بدلاً من ن . على سبيل المثال، في وضع الإدراج، السيطرة + ص و السيطرة + ن تُستخدم المفاتيح للإكمال التلقائي للكلمة بناءً على المطابقة الخلفية والأمامية على التوالي. لرسم خريطة السيطرة + ص المفاتيح باستخدام مفتاح tab، سأستخدم الأمر التالي.

:inoremap < فاتورة غير مدفوعة > < ج-ص >

والأهم من ذلك، إذا كنت تريد الخريطة الوضع المعلق للمشغل الأوامر في وضع الإدراج ، فأنت بحاجة إلى إدراج <خروج> اضغط على المفتاح الموجود على الجانب الأيمن للخروج من وضع الإدراج لتنفيذ تلك الأوامر. على سبيل المثال، في خريطة المفاتيح التالية، أريد حذف 3 أسطر باستخدام السيطرة + س المفاتيح وأعد الدخول في وضع الإدراج.

:inoremap < ج-س > 3ddi

الآن، عندما أضغط على السيطرة + س المفاتيح، فإنه سيتم طباعة 3ddi الأمر بدلاً من تنفيذه.

ولإصلاحه، سأقوم بإدخال <خروج> قبل 3ddi يأمر.

:inoremap < ج-س > < خروج > 3ddi

الآن، سيتم تنفيذ الأمر احتفظ بي في وضع الإدراج.

تفتقر العديد من أجهزة الكمبيوتر المحمولة الصغيرة إلى خروج المفتاح، وهو أمر مهم للخروج من الوضع الحالي. لذلك، لرسم خريطة خروج للخروج من وضع الإدراج، يمكن استخدام تعيين المفاتيح. في المثال التالي أستخدم السابق مفاتيح للخروج إلى الوضع العادي.

:inoremap على سبيل المثال < خروج >

عندما تضغط بسرعة على السابق مفاتيح سيتم الخروج من وضع الإدراج، وبالتالي الدخول في الوضع العادي.

رسم خرائط الوضع المرئي

يعد الوضع المرئي وضعًا مهمًا للغاية لتحديد النص في محرر Vim. بصرف النظر عن التحديد الأساسي، يحتوي الوضع المرئي على أوضاع أخرى مختلفة مثل الخط المرئي وأوضاع الكتلة المرئية.

في الوضع المرئي، التلدة (~) يستخدم لتبديل هذه القضية. لاستخدام التلدة (~)، عليك الضغط على المفتاحين (التحول+~) . في المثال التالي، أقوم بتعيين المفتاح c في الوضع البصري لتحديد كلمة تحت المؤشر وتغيير حالتها.

:vnoremap ج iw~

الآن، اضغط على v للدخول إلى الوضع المرئي واضغط على المفتاح c لتبديل الكلمة أسفل المؤشر كما هو موضح في صورة GIF التالية.

تعيين وضع سطر الأوامر

تعمل العديد من أوامر Vim الأساسية في وضع سطر الأوامر فقط. مثل حفظ الملف :في يتم استخدام الأمر، بالمثل، للحفظ والإنهاء :wq يتم استخدام الأمر. تتم أيضًا جميع علامات التبويب وعمليات التقسيم في وضع سطر الأوامر. على سبيل المثال، من أجل إنشاء علامة تبويب جديدة، يجب : المرؤوس يتم استخدام الأمر. حسنًا، لإنشاء علامة تبويب بسرعة، السيطرة + ر المفاتيح كافية.

:cnormap < ج-ر > موضوع < سجل تجاري >

الآن، اضغط على النقطتين (:) للدخول إلى وضع سطر الأوامر ثم السيطرة + ر لفتح علامة تبويب جديدة؛ إنه أسرع بكثير من كتابة الكل موضوع أمر و يعود مفتاح.

إنشاء أوامر Vim المخصصة
يبدو الدخول في وضع الأوامر لتنفيذ الخريطة أقل فائدة. ولكن يمكنك إنشاء أوامرك المخصصة في Vim باستخدام ملف :يأمر خيار. تشبه هذه الميزة تمامًا تعيين مفتاح Vim. على سبيل المثال، لإنشاء أمر سريع لتعيين رقم السطر وعرض النص إلى 80، استخدم الأمر التالي.

: الأمر Mycmd : رقم المجموعة عرض النص = 80

الآن، أدخل في وضع الأوامر وقم بتنفيذ الأمر :Mycmd يأمر.

رسم خرائط الوضع المعلق للمشغل

وضع المشغل المعلق هو الوضع الذي ينتظر فيه Vim أمر الحركة بعد الضغط على مفتاح المشغل. العوامل المشتركة هي y وd وc. على سبيل المثال، لحذف السطر الحالي والأسطر الثلاثة التالية، ستستخدم عامل التشغيل d مع 3j الحركة (d3j). لا يمكنك الضغط على هذه المفاتيح في وقت واحد لتحقيق العملية المطلوبة.

يُستخدم الوضع عمومًا لرسم خريطة للحركات. دعونا نرسم حركة من شأنها تحديد الخط الحالي والخطوط الثلاثة المتبوعة به.

:onoremap < F2 > 3j

الآن، لسحب السطر الحالي والخطوط الثلاثة المتبوعة به، استخدم الأمر theF2 المفاتيح، بنفس الطريقة، د يمكن أيضًا تطبيق عامل التشغيل.

شيء آخر مهم يجب أخذه في الاعتبار هو أنه إذا قمت بإضافة عدد إلى الحركة المعينة المذكورة أعلاه، فلنفترض 2 ، ستعتبره الخريطة 23j وليس 6j. لإصلاح ذلك، يمكن استخدام التعبير تسجيل “=. يمكن تعديل الخريطة أعلاه كما @=’3j’ .

:onoremap < F2 > @ =’3j’ < سجل تجاري >

كيفية تعيين أحداث الماوس

على الرغم من أن Vim هو محرر نصوص يتمحور حول لوحة المفاتيح وقابل للتخصيص بالكامل، إلا أن توفر وظائف الماوس يجعله أفضل. وبصرف النظر عن مفاتيح لوحة المفاتيح العادية، يمكن أيضًا تعيين جميع أحداث الماوس في Vim. على سبيل المثال، إذا كنت تريد تعيين النقر المزدوج بزر الماوس الأيمن والنقر المزدوج الأيسر للانتقال السريع بين العلامات للأمام والخلف على التوالي، فاستخدم التعيين التالي.

:noremap < 2 -الفأرة اليمنى > ] `
:noremap < 2 -زر الفأرة الأيسر > [ `

يتم عرض أحداث الماوس الأخرى التي يمكن تعيينها في الجدول التالي.

<الماوس الأيسر> <الإصدار الأيسر> <السحب الأيسر> <2-الماوس الأيسر>
<الفأرة اليمنى> <الإفراج عن الحقوق> <السحب الأيمن> <2-الفأرة اليمنى>
<الماوس الأوسط> <الإصدار الأوسط> <ميدل دراج> <3-الماوس الأيسر>
<3-الفأرة اليمنى>
<4-الماوس الأيسر>
<4-الفأرة اليمنى>

كيفية التعيين باستخدام مفتاح القائد في Vim

تعيين Vim غير مكتمل بدون مفتاح القائد. المفتاح الرئيسي هو المفتاح الافتراضي الذي يمكن استخدامه لتعيين المفاتيح، حتى لو تم تعيينها للقيام ببعض المهام الأخرى. على سبيل المثال، إذا قمت بتعيين د مفتاح لحذف جميع الخطوط، ثم يمكننا تعيين نفس المفتاح لحذف 5 خطوط فقط باستخدام مفتاح القائد.

بالنسبة لأولئك الذين ليس لديهم معرفة، مع مفتاح زعيم Vim. إنه مفتاح مسبوق بمفتاح آخر أو مجموعة مفاتيح لتعيين الأوامر أو العمليات. المفتاح الرئيسي الافتراضي لـ Vim هو شرطة مائلة عكسية (\)، ولكنه قابل للتخصيص.

على سبيل المثال، د يتم استخدام الأمر لحذف السطر الموجود أسفل المؤشر. إذا كنت تريد رسم خريطة د الأمر لحذف جميع الأسطر في الملفات، ثم يمكنك استخدام مفتاح القائد.

:noremap < قائد > د ggVGd

الآن، كلما قمت بالضغط على المفتاح، سيتم حذف كافة الأسطر الموجودة في الملف. يمكنك إسناد مفتاح Vim القائد باعتباره مفتاح التحكم في نظام التشغيل Windows أو مفتاح الأمر في نظام التشغيل macOS.

كيفية تعيين وظيفة Vimscript

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

وظيفة اعداداتي ( )
تعيين رقم
تعيين الفأر
تعيين عرض النص = 80
endfunction

ضع هذه الوظيفة في ملف vimrc.

لنقم بتعيين هذه الوظيفة باستخدام القائد ومفاتيح s. سأستخدم

:noremap < قائد > ق: اتصل بالإعدادات الخاصة بي ( ) < سجل تجاري >

الآن، كلما قمت بالضغط على المفاتيح، سيتم استدعاء الوظيفة وسيتم تنفيذ أي وظيفة داخل الوظيفة.

ملحوظة : يجب دائمًا كتابة الحرف الأول من اسم الوظيفة بأحرف كبيرة أثناء إنشاء وظيفة مخصصة في Vim.

كيفية تعيين الأوامر الخارجية في Vim

يمكن أيضًا تعيين الأوامر الخارجية في Vim. تشير الأوامر الخارجية إلى أوامر Linux أو Unix. على سبيل المثال، إذا كنت تريد رسم خريطة للخارج نوع أمر لفرز جميع الأسطر الموجودة في المخزن المؤقت الحالي إلى F1 المفتاح، استخدم الأمر التالي.

:noremap < F1 > : %! نوع < سجل تجاري >

بنفس الطريقة، إذا كنت تكتب ملف نصي وتجعله قابلاً للتنفيذ دون مغادرة جلسة Vim، فيمكنك استخدام الأمر chmod الأمر داخليا. على سبيل المثال، لجعل الملف الحالي قابلاً للتنفيذ، يمكنك تنفيذ الأمر :!chmod +x % في فيم. إذا كنت تقوم بهذه المهمة بشكل متكرر، فما عليك سوى تعيين مفتاح لها.

:noremap < F1 > : ! chmod %

في Vim، يمكن استخدام أي أمر خارجي مع علامة التعجب (!).

كيفية إزالة خريطة المفاتيح في Vim

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

إذا تم إجراء التعيين في المخزن المؤقت الحالي، فيمكن إزالتها باستخدام :إلغاء الخريطة أو :إلغاء الخريطة! الأوامر.

  • :إلغاء الخريطة لمسح خرائط المفاتيح للأوضاع العادية أو المرئية أو المحددة أو المعلقة للمشغل
  • :إلغاء الخريطة! لمسح خرائط المفاتيح لأوضاع الإدراج وسطر الأوامر

على سبيل المثال، لإزالة المفتاح، استخدم :unmap . علاوة على ذلك، يمكن أن تكون إزالة المفاتيح خاصة بالوضع. إذا كنت تريد إزالة خريطة الوضع العادي، فاستخدم :nunmap <مفتاح> . الأوامر الأخرى الخاصة بالوضع لإزالة خريطة المفاتيح مذكورة أدناه:

:nunmap لإزالة خرائط طبيعي وضع
:iunmap لإزالة خرائط إدراج وضع
:vunmap لإزالة خرائط مرئي و يختار وضع
:sunmap لإزالة خرائط يختار وضع
:xunmap لإزالة خرائط مرئي وضع
:cunmap لإزالة خرائط سطر الأوامر وضع
:unmap لإزالة خرائط المشغل معلق وضع

لإزالة كافة الخرائط الموجودة في المخزن المؤقت الحالي، استخدم الأمر :mapclear يأمر.

:mapclear

سيقوم الأمر أعلاه بمسح جميع خرائط المفاتيح الخاصة بالوضع العادي أو المرئي أو المحدد أو المشغل المعلق.

لمسح جميع خرائط المفاتيح الخاصة بوضعي الإدراج وسطر الأوامر، استخدم:

:mapclear !

لاحظ أن أوامر Vim الافتراضية لا يمكن أن تكون واضحة، ومع ذلك، يمكن تعطيلها باستخدام الأمر :إلغاء الخريطة أمر مع <لا> . على سبيل المثال، إذا كنت تريد تعطيل وظيفة dd التي تحذف السطر الموجود أسفل المؤشر، فاستخدم :unmap dd .

:إلغاء الخريطة د < لا >

لن يعد dd فعالاً في المخزن المؤقت الحالي. باستخدام هذه الطريقة، يمكن تعطيل أي خريطة مفاتيح للجلسة الحالية.

ورقة الغش لرسم خرائط Vim الرئيسية

توفر الصورة التالية قائمة بجميع الأوامر وأوضاعها المحددة كمرجع.

خاتمة

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