إذا كنت تستخدم Vim، فيجب عليك استخدام سجلات Vim. في كل مرة تقوم فيها بنسخ/حذف نص، أو تنفيذ عملية أمر، يقوم Vim بتخزين هذه المعلومات في السجلات. عند لصقه، يحصل Vim على البيانات من السجل ويسحبها إلى المخزن المؤقت. بمعنى آخر، تعمل سجلات Vim كحافظة لتخزين النص وسجل الأوامر.
لدى Vim إجمالي 10 أنواع مختلفة من السجلات، كل منها يخدم غرضًا مميزًا. في هذا البرنامج التعليمي، سأستكشف سجلات Vim وأنواعها واستخدامها.
ملحوظة : في هذا البرنامج التعليمي، أقوم بتنفيذ الأوامر على نظام التشغيل macOS. Vim هو تطبيق متعدد المنصات، وبالتالي فإن الأوامر المذكورة في هذا الدليل ستنطبق على جميع إصدارات Vim بغض النظر عن نظام التشغيل.
- مشغلي تسجيل Vim
- سجلات القائمة
- العمل مع سجلات Vim
- أنواع سجلات Vim
- 1. تسجيل بدون اسم ('')
- 2. السجلات المرقمة (0-9)
- 3. سجل الحذف الصغير ('-)
- 4. السجلات المسماة (a-z أو A-Z)
- 5. سجلات القراءة فقط (., %, 🙂
- 6. سجل المخزن المؤقت البديل ('#)
- 7. سجل التعبير ('=)
- 8. اختيار وإسقاط السجلات ('*'، '+'، '~)
- 9. سجل الثقب الأسود (“_)
- 10. تسجيل نمط البحث الأخير (“/)
- السجلات ووحدات الماكرو
- مسح السجل
- خاتمة
مشغلي تسجيل Vim
يمكن استخدام السجلات في Vim باستخدام عمليات مثل النسخ أو الحذف أو التغيير. كل عملية لها عوامل تشغيل محددة، مثل سحب النص، يتم استخدام عامل التشغيل y بينما يتم استخدام عامل التشغيل d لحذف النص. فيما يلي قائمة بالمشغلين العاملين بشكل شائع:
yy | يانكز (نسخ) الخط |
د | يحذف السطر |
نسخة | يحذف السطر ويمكّن وضع INSERT |
س | يحذف الحرف ويبدأ وضع INSERT للاستبدال |
س | يحذف الحرف الموجود أسفل المؤشر |
ف<ريج> | دقيق؛ يخزن مجموعة الأوامر في سجل محدد |
لطباعة النص المخزن، ص أو ص يتم استخدام المشغلين:
ص | ضع (ألصق) النص بعد المؤشر |
ص | ضع النص قبل المؤشر |
تأخذ هذه الأوامر أيضًا العد. على سبيل المثال، لنسخ 10 أسطر، استخدم الأمر 10yy الأمر، وبالمثل للصق 10 نسخ من استخدام الخط المنتزع 10 ص .
سجلات القائمة
لسرد كافة السجلات استخدم :يسجل أو :ريج الأمر، ولإدراج السجل المحدد استخدم :ريج '
بنفس الطريقة، لسرد محتوى السجلات المتعددة، استخدم الملف :reg '
في قائمة التسجيل، سترى ثلاثة أعمدة، الاسم والنوع والمحتوى . هنا، النوع يعني نوع المحتوى، وليس نوع التسجيل. ثلاثة أنواع يمكن تعديل المحتوى باستخدام السجلات.
- ل : الخط الحكيم
- ج : من حيث الشخصية
- ب : كتلة الحكمة
على سبيل المثال، إذا تم نسخ المحتوى باستخدام عملية الخط (ص) ثم سيكون نوع المحتوى ل ، إذا كان من ناحية الشخصية (نعم) ثم سيكون النوع ج ، وإذا تم نسخ المحتوى بشكل محظور (ctrl+v وy) ثم سيتم عرض النوع كما ب .
العمل مع سجلات Vim
يمكن استخدام سجلات Vim لتخزين المحتوى باستخدام عوامل السحب والحذف والتغيير. يمكن الوصول إلى المحتوى المخزن باستخدام عوامل التشغيل.
حفظ النص في السجل
عندما تضغط على yy لنسخ سطر، سيتم حفظه في السجل الافتراضي المسمى السجل غير المسمى ('') . لتخزين السطر المنسوخ في سجل محدد، الاقتباس (') متبوعًا باسم السجل والمشغل يتم استخدامهما.
على سبيل المثال، لنسخ سطر إلى اسم السجل مع يستخدم ' zyy . وبالمثل، إذا قمت بتحديد عدة أسطر في الوضع المرئي، فاستخدم ' zy لتخزين الخطوط في سجل z.
الوصول إلى السجل
للوصول إلى سجل Vim، قم بالاقتباس (') يتم استخدام الرمز مع اسم السجل و ص / ف المشغل أو العامل.
على سبيل المثال، إذا كان اسم السجل هو z وللوصول إلى محتوى هذا السجل، استخدم ' zp في الوضع العادي. ومع ذلك، لإجراء نفس العملية في وضع INSERT، استخدم السيطرة + ص ض .
'<ريج><المشغل> | الوضع العادي | لتخزين المحتوى استخدم الاقتباس (') ، سجل الاسم (أ-ي) ، والمشغل (ص، yy، d، c، أو cc) |
' |
الوضع العادي | للصق محتوى تسجيل استخدام الاقتباس (') ، سجل الاسم (أ-ي) و ص / ف المشغل أو العامل |
السيطرة + ص <ريج> | وضع الإدخال | للصق محتوى السجل، استخدم السيطرة + ص وتسجيل الاسم (أ-ي) |
لديك الفكرة الأساسية لسجلات Vim. الآن، سأقوم بإجراء مناقشة متعمقة لكل نوع سجل واستخدامه.
أنواع سجلات Vim
يوجد في Vim 10 أنواع من السجلات، مصممة لأغراض محددة.
- تسجيل بدون اسم ('')
- السجلات المرقمة (0-9)
- تسجيل الحذف الصغير ('-)
- السجلات المسماة (a-z أو A-Z)
- قراءة السجلات فقط (“:، “.،”٪)”
- تسجيل الملف البديل ('#)
- سجل التعبير ('=)
- تحديد وإسقاط السجلات (“*، “+، +~)
- سجل الثقب الأسود (“_)
- آخر تسجيل لنمط البحث (“/)
1. تسجيل بدون اسم ('')
إنه السجل الافتراضي لـ Vim لتخزين النص المسحوب أو المحذوف باستخدامه ص، ص، د، ي ي، ق، أو س الأوامر.
ال :تسجيل '' يمكن استخدام الأمر لسرد المحتوى المخزن في السجل غير المسمى.
للصق محتوى التسجيل غير المسمى، استخدم الأمر put (ع أو ف) يأمر. بشكل افتراضي، ص يضع الأمر مخازن المحتوى في السجل غير المسمى. وبدلاً من ذلك، يمكن أيضًا لصق البيانات المخزنة في السجل غير المسمى باستخدام الأمر ''p.
في المثال التالي، قمت بنسخ سطر باستخدام yy الأمر ثم ضعه 5 مرات باستخدام العد 5 مع p (5p).
2. السجلات المرقمة (0-9)
تُستخدم السجلات المرقمة لتخزين آخر نص تم انتزاعه أو حذفه.
السجل 0 يختلف عن المسجلات 1-9 . السجل 0 سيتم دائمًا تخزين آخر نص تم انتزاعه. على سبيل المثال، إذا قمت بسحب خط باستخدام yy الأمر، سيتم تخزين الخط في كل من غير مسمى و ال 0 السجلات.
الآن، إذا قمت بحذف سطر باستخدام د ، سيتم تخزين السطر المحذوف في السجل غير المسمى والتسجيل 1 بينما سيظل آخر نص تم انتزاعه مسجلاً 0 . لذلك، يمكن الوصول إلى النص الأخير الذي تم انتزاعه في أي وقت من خلال التسجيل 0 .
المسجلات 1-9 تخزين آخر نص محذوف. على سبيل المثال، إذا قمت بحذف سطر باستخدام د الأمر، سيتم تخزين النص المحذوف في كل من الملف غير المسمى والتسجيل 1 . سيقوم السجل 1 بتخزين أحدث نص محذوف. إذا قمت بحذف سطر آخر، فسيتم نقل النص المحذوف مسبقًا للتسجيل 2 ، وسيتم تخزين الأحدث في ملف غير مسمى والتسجيل 1 . في الأساس، السجلات المرقمة (1-9) تخزين تاريخ النص المحذوف.
دعونا نفهم السجل المرقم بمثال. يتكون ملف Vim النصي التالي من 10 أسطر؛ دعونا ننتزع السطر 3 استخدام yy يأمر. الآن، دعونا نتحقق من حالة السجلات باستخدام الأمر :reg.
الخط المنتزع موجود حاليًا في غير مسمى و 0 السجلات. الآن، دعونا نحذف جميع الأسطر واحدًا تلو الآخر باستخدام الأمر د يأمر. أخيرًا السطر 10 سيكون في السجل غير المسمى والتسجيل 1. وفي الوقت نفسه، سيتم تخزين الخطوط المحذوفة الأخرى في السجلات 2-9 في ترتيب تصاعدي.
يمكن الوصول إلى هذه الخطوط باستخدام ص يأمر. على سبيل المثال، لوضع نص التسجيل 9 يستخدم “9 ص . وعلاوة على ذلك، إذا كنت تريد وضع قيمة التسجيل 9 5 مرات، استخدم “95p .
3. سجل الحذف الصغير ('-)
يقوم هذا السجل بتخزين النص المحذوف إذا كان أقل من سطر، باستخدام أوامر مثل x, daw, diw, dab, و مرة أخرى . علاوة على ذلك، إذا قمت بحذف بعض النص باستخدام مرئي وضع التحديد، وإذا كان أقل من سطر، فسيتم تخزينه في سجل الحذف الصغير. في Vim، السطر يعني جملة كاملة تنتهي بنقطة.
على سبيل المثال، في الملف التالي، قمت بتحديد 3 كلمات التعاون والدعم من السطر رقم 9 وحذفها باستخدام د المشغل أو العامل. سيتم استخدام سجل الحذف الصغير لحفظ هذا التحديد نظرًا لأنه لا يزيد طوله عن سطر واحد. استخدم ال :ريج '- أمر لسرد محتوى سجل الحذف الصغير.
4. السجلات المسماة (a-z أو A-Z)
يتم استخدام السجلات المسماة لتخزين النص الخاص بالمستخدم. لذلك، إذا كنت تريد تخزين النص في سجل مخصص، إذن 26 يسجل من أ ل مع ممكن استخدامه.
على سبيل المثال، أقوم بسحب سطر في الملف التالي باستخدام ' zyy ، سيتم تخزين النص في مع قم بالتسجيل كما هو موضح في الصورة التالية.
السجلات المسماة بالأحرف الصغيرة والكبيرة لها أغراض مختلفة. على سبيل المثال، إذا تم حفظ النص في السجل الصغير، فمن أجل استبدال نص هذا السجل سيتم استخدام السجل الصغير. ومع ذلك، لإلحاق النص بالسجل الصغير، سيتم استخدام السجل الكبير الذي يحمل نفس الاسم.
دعونا نفهم ذلك من خلال مثال. من الملف التالي، قمت بتخزين السطر 8 في التسجيل س استخدام ' xyy .
لإلحاق نص بعد هذا السطر، سأقوم أولاً بتحديد بضع كلمات في الوضع المرئي. لإلحاق النص المحدد، سأستخدم 'شي يأمر.
لاستبدال النص، سأستخدم مرة أخرى ' xyy .
5. سجلات القراءة فقط (., %, 🙂
يحتوي Vim على 3 سجلات للقراءة فقط تخزن الملفات المدرجة النص، اسم الملف، و تم تنفيذه مؤخرًا يأمر.
. | يخزن آخر نص تم إدراجه |
% | يخزن اسم الملف |
: | يخزن آخر أمر تم تنفيذه |
لا يمكن تعديل هذه السجلات كما هو مقترح، ولكن يمكن الوصول إليها بسهولة.
لوضع النص المدرج الأخير، استخدم “.ص يأمر.
لطباعة اسم الملف، استخدم “%ص يأمر.
لطباعة الأمر الأخير، استخدم “:ص.
ال @: يمكن استخدام الأمر لتكرار الأمر السابق في Vim. في المثال التالي، قمت بحذف الأسطر الثلاثة الأولى عند الضغط @: ، يتم حذف 3 أسطر أخرى، وبالتالي تكرار الأمر السابق.
6. سجل المخزن المؤقت البديل ('#)
المخزن المؤقت البديل هو ملف يتم فتحه في المخزن المؤقت الحالي. يقوم 'السجل #' بتخزين اسم الملف المخزن مؤقتًا في المخزن المؤقت الحالي. لنفتح ملفًا آخر في نفس المخزن المؤقت باستخدام ملف :e ~/.vimrc الأمر، لاحظ أن اسم الملف الحالي هو ملف.txt .
لإغلاق المخزن المؤقت المفتوح، استخدم :bdelete أو :bwipeout يأمر. الآن، من الممكن رؤية اسم الملف البديل المحفوظ في ملف “# يسجل.
7. سجل التعبير ('=)
سجل التعبير هو سجل فريد لا يُستخدم لتخزين النص، بل يقوم بدلاً من ذلك بتخزين التعبير. على سبيل المثال، إذا كان لديك بضعة أرقام في الملف، لتجميع هذه الأرقام، سيتم استخدام تعبيرات Vim.
يمكن الوصول إلى هذا السجل باستخدام '= في الوضع العادي، و السيطرة + ص = في وضع الإدراج.
على سبيل المثال، للعثور على الفرق بين رقمين، اضغط على “=، وستظهر علامة التساوي في شريط الحالة؛ الآن اكتب كلا الرقمين مع علامة الطرح (-) فيهما ثم اضغط على يدخل مفتاح. الآن، لطباعة الفرق، اضغط ص أو استخدم :يضع يأمر.
للوصول إلى قيمة تسجيل التعبير، استخدم :ريج '= يأمر.
وبالمثل، للحصول على القيمة المطلقة لعددين، استخدم = القيمة المطلقة (القيمة 1-القيمة 2) تعبير.
بنفس الطريقة، لتخزين مخرجات أمر النظام، يمكن استخدام هذا السجل (التعبير). على سبيل المثال، إذا أردت قراءة محتوى الملف فسوف أستخدمه = النظام ('القط <اسم الملف>') عند الضغط على مفتاح العودة، سيتم تخزين محتوى الإخراج. باستخدام ص أو :يضع الأمر، يمكن وضع محتوى الإخراج في المخزن المؤقت.
هناك مجموعة من التعبيرات التي يمكن استخدامها في Vim. لمعرفة المزيد حول تعبيرات Vim، استخدم :مساعدة التعبير و : مساعدة في بناء جملة التعبير الأوامر.
8. اختيار وإسقاط السجلات ('*'، '+'، '~)
Vim لديه اثنين من سجلات الاختيار '* ( الاقتباس ) و '+ (quoteplus) والتي تستخدم لتخزين النص من واجهة المستخدم الرسومية. تُستخدم هذه السجلات لنسخ النص من البرامج الخارجية مثل المتصفحات أو أي معالج نصوص آخر.
على سبيل المثال، إذا قمت بنسخ تحديد نص من المتصفح، باستخدام السيطرة + ج أو كمد + ج سيتم تخزينه في '* يسجل. ومع ذلك، لا يمكنك استخدام ص أو :يضع للصق هذا النص في محرر Vim. يستخدم “*ص لوضع النص في محرر Vim المنسوخ من التطبيقات الخارجية.
ومن المهم أن نلاحظ أن كليهما '+ و '* ترتبط السجلات إلى الحافظة، لذلك على حد سواء (“*ع،”+ع) يمكن استخدامه للصق النص في محرر Vim. وبالمثل، لوضع نص من Vim، استخدم '* ص ص لسحب خط ثم لصقه في أي تطبيق واجهة المستخدم الرسومية، استخدم ctrl+v أو cmd+v.
ومن الضروري أن نلاحظ أنه إذا تم تسجيل كلا (* & +) يفعلون نفس الشيء، فما الفائدة؟ Vim لديه اثنين من سجلات الاختيار '*،'+ القيام بنفس المهمة وذلك بسبب نظام النوافذ X11. يوفر X11 طريقتين لتخزين النص، إحداهما التحديدات والآخر هو قطع المخازن المؤقتة . التحديدات مملوكة للتطبيق ويتم فقدها عند إغلاق التطبيق، بينما تحتفظ المخازن المؤقتة المقطوعة بالنص المخزن في خادم X. بالنسبة لهذين النوعين من التخزين، يتم استخدام السجلات '*' و'+'. لمعرفة المزيد عنه، استخدم :مساعدة اختيار X11 يأمر.
التالي، إسقاط السجل '~ والذي يستخدم لتخزين النص من عملية السحب والإفلات الأخيرة. على سبيل المثال، إذا قمت بإسقاط تحديد نص من تطبيق خارجي، فسيتم تخزينه في سجل الإفلات.
إذا وجدت صعوبة في اللصق من التطبيق الخارجي باستخدام ثلاثة مفاتيح مختلفة، فيمكنك تعيين التحديد ليتم تخزينه في السجل غير المسمى.
افتح ال vimrc ملف، مكان مجموعة الحافظة = غير مسمى فيه، واحفظ الملف. الآن، كلما قمت بالنسخ من تطبيق خارجي، يمكن لصقه بسهولة باستخدام ملف :يضع مفتاح الأمر أو p.
ملحوظة : لن يكون سجل الإسقاط (~) متاحًا إلا إذا تم تجميع Vim باستخدام +dnd. حاليًا، هو متاح فقط لـ GTK GUI.
9. سجل الثقب الأسود (“_)
إذا قمت بإجراء عملية نسخ أو حذف في محرر Vim، فإنه يقوم افتراضيًا بتخزين النص في السجلات. إذا كنت تريد حذف النص دون تخزينه في سجل، فاستخدم سجل الثقب الأسود. لن يقوم هذا السجل بتعديل السجل غير المسمى ('') عند حذف النص.
على سبيل المثال، إذا كنت أرغب في حذف كافة الأسطر دون تخزينها في السجل غير المسمى، فسوف أقوم أولاً بتحديد جميع الأسطر باستخدام ggVG ومن ثم اضغط '_د مفاتيح لحذف كافة الخطوط. وبالمثل، لحذف خط واحد إلى ثقب أسود، استخدم “_dd .
10. تسجيل نمط البحث الأخير (“/)
كما يوحي الاسم، يقوم هذا السجل بحفظ نمط البحث الأخير باستخدام الملف / أو ؟ العاملين. على سبيل المثال، إذا بحثت /لينكس ، ثم استخدام '/ ص سيتم لصق كلمة Linux.
يستخدم Vim هذا السجل للتنقل باستخدام ملف ن و ن المفاتيح بعد البحث.
وهو سجل قابل للكتابة، ويمكن تغيير محتواه باستخدام :let. على سبيل المثال، لحفظ Linux في هذا السجل، استخدم :let @/='Linux'.
السجلات ووحدات الماكرو
في Vim، يتم أيضًا حفظ وحدات الماكرو في السجلات المسماة (a-z). إذا لم تكن على علم بوحدات الماكرو، فإن وحدات الماكرو هي أوامر تعيين مخزنة في السجل. يمكن تنفيذ هذه المجموعة من الأوامر ببساطة عن طريق استخدام العلامة @ متبوعة باسم تسجيل الماكرو. في الأساس، تلغي وحدات الماكرو الحاجة إلى كتابة أوامر متعددة بشكل متكرر.
على سبيل المثال، لتخزين ماكرو في السجل م ، سأستخدم كم<مجموعة الأوامر>س . أريد الانتقال إلى 5 خطوط أسفل باستخدام 5j وحذف السطر باستخدام د . يستخدم، كم لبدء تسجيل الماكرو، ثم اضغط على 5j و د . الآن، لإنهاء تسجيل الماكرو، اضغط على س . للتحقق مما إذا كان الماكرو مخزنًا أم لا، :reg 'م أو :reg m.
لتنفيذ هذه الأوامر باستخدام سجل ماكرو، استخدم الأمر :@م يأمر.
مسح السجل
لا يوجد نهج مباشر لمسح السجل لأن معظم السجلات لا تحتاج إلى مسح لأنه سيتم استبدالها في النهاية. ومع ذلك، هناك بعض التقنيات لمسح قيمة التسجيل في محرر Vim.
1. قم بتسجيل ماكرو فارغ لمسح السجل. على سبيل المثال، لمسح السجل m، استخدم com.qmq .
2. قم بتعيين نص فارغ باستخدام يترك . على سبيل المثال، لمسح السجل م، استخدم : دع @ م = '.
3. استخدم سيتريج () تعمل بسلسلة فارغة كوسيطة. على سبيل المثال، لمسح استخدام التسجيل م :استدعاء setreg('m', ').
خاتمة
هناك 10 سجلات مختلفة بوظائف مختلفة، مما يجعل تذكرها مستحيلًا تقريبًا. إذا كنت مبتدئًا، فإنني أوصي بأن تضع في اعتبارك ثلاثة سجلات فقط، سجل غير مسمى ('') ، سجلات مرقمة (0-9) ، والسجلات المسماة (أ-ي) .
لتخزين النص في السجل، استخدم الاقتباس (') قم بالتوقيع باسم السجل متبوعًا بأمر المشغل (ص، د، ج) . للصق النص من السجل، استخدم أوامر p أو P مسبوقة بعلامة اقتباس (') وتسجيل الاسم .
لا بد أنك سمعت عنها، إذا كنت تقوم بمهمة ما أكثر من مرتين، قم بأتمتتها. يمكن أن تكون سجلات Vim مفيدة للغاية لأتمتة المهام وتحسين التجربة في النهاية. لمعرفة المزيد حول سجلات Vim، استخدم :مساعدة السجلات يأمر.