البدء مع فيم لينكس

تخيل نفسك عميقا في نظام Linux الخاص بك، تحاول بشدة تعديل ملف، وكل محاولة تشعرك بكونها فك شيفرة قديمة. إذا كان كلما قمت بالنقر حولك ، كلما تشعرت بالضياع، فلماذا لا تلجأ إلى Vim لنظام Linux؟

في هذا البرنامج التعليمي ، ستكتشف أسرار Vim ، وهو محرر نص مشهور ، وتتحول من متجول Linux إلى خبير في سطر الأوامر.

استعد سيفك المجازي (أي لوحة المفاتيح الخاصة بك) وانطلق إلى عالم Vim!

المتطلبات الأساسية

فيما يلي بعض المتطلبات الأساسية لإتقان Vim على نظام Linux الخاص بك:

  • A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.

إنشاء وتحرير الملفات باستخدام Vim على نظام Linux

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

لإنشاء وتحرير ملف باستخدام Vim ، اتبع هذه الخطوات:

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

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

Creating a new file via Vim for Linux

2. بعد ذلك، قم بنسخ النص أدناه إلى الحافظة الخاصة بك، والذي يحتوي على إعدادات خادم SSH عينة فقط للتوضيح ولا يعكس تكوينات الخادم الفعلية.

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

بمجرد دخولك إلى وضع الإدخال، سترى أن شريط الحالة يعرض — INSERT — مثل ما يلي.

Entering the insert mode on Vim

4. الآن، اضغط على Ctrl+Shift+V أو Shift+Insert للصق النص الذي قمت بنسخه في الخطوة الثانية إلى محرر Vim، واضغط على مفتاح Esc للخروج من وضع الإدخال (الانتقال إلى وضع الأوامر).

لاحظ أن الحالة — INSERT — تختفي، مما يعني أنك عائد إلى وضع الأوامر.

Inserting the copied text into Vim

5. أخيرًا، اكتب الأمر :w واضغط على Enter لحفظ التغييرات في الملف دون إغلاق المحرر.

عند الحاجة، يمكنك تنفيذ الأوامر الأخرى التالية:

Command Details
:q! Quit the editor without saving the changes.
:w! Write the current file changes forcefully.
:wq Save the changes and quit the editor (or :wq! to save and quit forcefully).
e! Revert to the last saved version of the file.
Saving the changes

تعرض السطر الحالة حجم البيانات المكتوبة إلى الملف، والتي في هذه الحالة هي 23 سطر (23L) و 624 بايت (624B).

Verifying the changes are saved

التنقل في النصوص في Vim

بعد فهم فن إنشاء وتحرير الملفات بـ Vim، ستغوص في مهارة حاسمة سترفع من قدرتك على تحرير النصوص – التنقل في Vim. التنقل الفعّال هو المفتاح لاستكشاف إمكانيات Vim، مثل استكشاف مناظر طبيعية شاسعة.

لمعرفة كيفية التنقل في النصوص في Vim، قم باتباع الخطوات التالية:

1. الآن، اكتب الأمر :set nu واضغط Enter لتفعيل أرقام الأسطر في Vim. ترقيم الأسطر ميزة مهمة في المحرر عند التعامل مع الشفرات أو المستندات الكبيرة.

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

Setting the line numbering

2. بعد ذلك، انتقل إلى وضع الأوامر (Esc) واضغط على الأمر gg للانتقال إلى بداية الملف.

Jumping to the beginning of the file

3. بعد ذلك، اضغط على أي من الأوامر التالية حتى تصل إلى بداية المعلمة MaxSessions، واضغط $ لنقل المؤشر إلى نهاية السطر.

Command Details
h Move the cursor to the left or the previous character.
j Move the cursor one line down.
k Move the cursor one line up.
l Move the cursor to the right or the next character.
Placing the cursor at the end of the MaxSessions line

4. الآن، قم بتبديل النص بالتالي:

  • اضغط i للتبديل إلى وضع الإدخال.
  • احذف القيمة (مسافة إلى الخلف أو حذف)، وهي 10، واستبدلها بـ 25.
  • انتقل إلى وضع الأوامر (Esc) واحفظ التغييرات (:w).
Editing a text in Vim

إدراج النصوص في نقاط معينة

تقدم Vim مجموعة من الأوامر التي تسمح بالتحكم الدقيق في مكان وكيفية إدراج النصوص الجديدة (بالضبط حيث تحتاج إليها). تعمل هذه الوظيفة سواء كنت ترغب في إدراجها في بداية السطر، فورًا بعد موضع المؤشر الحالي، أو في نهاية السطر.

لرؤية كيفية عمل إدراج النصوص في نقاط محددة، قم باتباع الخطوات التالية:

1. اضغط على I (Shift+I) أثناء وجود المؤشر في نهاية السطر للدخول في وضع الإدراج وفي نفس الوقت وضع المؤشر في بداية السطر.

Inserting at the beginning of the line

2. انتقل إلى وضع الأوامر (Esc)، حرك المؤشر إلى أي حرف آخر في السطر الحالي (أي في البداية)، واضغط على الأمر a.

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

Inserting at the current cursor point

3. أدخل ‘y’ لتغيير المفتاح MaxSession إلى MyaxSession، كما هو موضح أدناه، وعود إلى وضع الأوامر (Esc).

سوف تلاحظ أن الحرف الجديد ‘y’ يظهر فورًا بعد الحرف الأول.

Inserting a character within a line of text

4. الآن، قم بتعديل السطر النصي على النحو التالي:

  • اضغط على Shift+A لتنفيذ الأمر A، الذي يسمح لـ Vim بدخول وضع الإدراج وتحريك المؤشر إلى نهاية السطر. هذا السلوك مثالي لإضافة محتوى مثل فاصلة منقوطة أو إنهاء جملة.
  • أضف 0 في نهاية السطر، مما يغير القيمة إلى 250.
  • العودة إلى وضع الأمر (Esc)، وحفظ التغييرات (:w)
Appending text to the end of the line

فتح أسطر جديدة

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

لفتح أسطر جديدة، أعلى أو أسفل، أكمل الخطوات التالية:

1. أثناء وجودك في وضع الأمر، اضغط o لفتح سطر جديد أسفل السطر الحالي من النص وأضف التعليق التالي حول MyaxSessions.

# ملاحظة: قم بضبط maxSessions حسب حمل الخادم
Adding a new line below the current line of text

2. انتقل إلى وضع الأمر (Esc)، ثم حدد المؤشر على سطر آخر من النص، واضغط على O (Shift+O) لإضافة سطر جديد أعلاه للسطر الحالي من النص.

Adding a new line above the current line of text

3. الآن، أضف الأمر التالي إلى الملف واحفظ التغييرات (:w).

# كن حذراً مع مستويات السجل لتجنب مشكلات الأداء
Populating the new line of text

حذف الكلمات والأسطر من النصوص

يوفر Vim أوامر فعالة لحذف واستبدال النصوص ما بعد مفاتيح الحذف الأساسية أو المسافة البيضاء. هذه الأوامر متاحة من وضع الأمر، مما يتيح لك إجراء تعديلات وتصحيحات بسرعة، مما يتيح لك حذف أو استبدال الأحرف أو الكلمات أو الأسطر بأكملها.

لحذف واستبدال النصوص في Vim لنظام التشغيل Linux، قم بتنفيذ ما يلي:

1. حرّك المؤشر إلى المعلمة MyaxSessions، تحديدًا عند الحرف ‘y‘.

Placing the cursor at a specific character

2. بعد ذلك، اضغط على x لإزالة الحرف تحت المؤشر على الفور، والذي في هذه الحالة هو ‘y‘.

ستعود المعلمة إلى نصها الأصلي كـ MaxSessions، كما هو موضّح أدناه.

Deleting a character under the cursor

3. حرّك المؤشر إلى السطر PermitRootLogin no:.

Positioning the cursor

4. الآن، اضغط "_dd لحذف السطر بأكمله، بغض النظر عن موضع المؤشر.

الجزء "_ في الأمر يحدد السجل الفراغ، الذي يُلقي بالنص المحذوف (لن يتم تخزينه في أي سجل).

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

إذا نجح الأمر، ستلاحظ أن السطر PermitRootLogin no: قد اختفى.

Deleting an entire line of text

5. وأنت في وضع الأمر، ضع المؤشر في بداية الكلمة Specifies في السطر # Specifies whether root can log in using ssh.

Placing the cursor at the beginning of a word

6. في النهاية، قم بتنفيذ الأمر "_dw، الذي يزيل الكلمة Specifies كما هو موضّح أدناه:

Deleting a word

اختيارياً، يمكنك الاختيار مع الأوامر التالية لعمليات حذف إضافية:

Command Details
"_d$ Delete texts from the cursor position to the end of the line.
"_D Deletes from the cursor position to the end of the line.
"_d^ Deletes from the cursor position to the first non-whitespace character of the line
"_dgg Deletes from the cursor position to the beginning of the file.
"_dG Deletes from the cursor position to the end of the file.

استبدال الأحرف والأسطر من النص.

Translated text:
من خلال حذف الاستراتيجيات في Vim، حول انتباهك إلى الجانب الآخر من العملة — استبدال الأحرف والأسطر النصية. الاستبدال هو السكينة التي تتيح لك تنقية وإعادة تعريف نصك بدقة. الخبر الجيد هو أن Vim يتيح لك أداء استبدال لحظي للأحرف أو أسطر كاملة من النص.

لاستبدال الأحرف والأسطر النصية، تابع هذه المهام:

1. قم بتحديد موقع المؤشر على السطر AuthorizedKeysFile .ssh/authorized_keys، على وجه التحديد الحرف ‘z‘ في authorized، كما هو موضح أدناه:

Positioning the cursor

2. بمجرد التحديد، اضغط على r، الذي يخبر Vim بأنك على وشك استبدال الحرف تحت المؤشر وإدخال الحرف ‘s‘. يتيح لك أمر r استبدال حرف دون دخول وضع الإدراج (i) أولاً.

لاحظ أن الحرف ‘z‘ في authorized قد تم استبداله بالحرف ‘s‘، مغيرًا الكلمة إلى authorised.

Replacing a character within a line of text

3. فيما بعد، ضع مؤشرك على الحرف ‘ z‘ في AuthorizeKeysFile.

Placing the cursor on another character

4. اضغط على R (Shift+R) لدخول وضع الاستبدال، اكتب ‘s‘ لاستبدال الحرف، ولكن لا تخرج من وضع الاستبدال بعد.

على عكس أمر r، الذي يسمح لك فقط بتبديل حرف واحد، يسمح لك أمر R بالكتابة فوق النصوص الحالية أثناء كتابتك بشكل مستمر.

Entering replace mode

5. في النهاية، انسخ النص التالي إلى الحافظة، ثم انقل المؤشر إلى بداية الملف، والصق النص الذي نسخته (Ctrl+Shift+V أو Shift+Insert).

نظرًا لأنك لا تزال في وضع الاستبدال، فإن لصق النص يستبدل السطر الأول في الملف.

Overwriting an entire line of text via the replace mode

البحث في النصوص داخل ملف

عند إعادة أو تراجع الإجراءات، تكون مهارة البحث في النصوص داخل ملف مفيدة. تتيح لك Vim البحث عن كلمات محددة أو عبارات أو أنماط معينة في ملفك.

تخيل الارتفاع الكبير في الإنتاجية عندما يمكنك بسرعة تحديد وتلاعب بأقسام نصية معينة دون التمرير بدون هدف.

للبحث عن النصوص داخل ملف، قم باتباع هذه الخطوات:

1. انقل المؤشر إلى بداية الملف (باستخدام الأمر gg)، ثم اضغط / (شرطة مائلة للأمام) لبدء وضع البحث، ثم اكتب مصطلح البحث log، واضغط على Enter.

يقوم هذا الأمر بالبحث عن المصطلح الذي حددته (log)، وينقل المؤشر إلى الحدوث التالي للمصطلح.

Searching for the term “log”

2. بعد ذلك، اضغط على n للانتقال إلى الحدوث التالي للمصطلح.

Moving to the next occurrence of the term “log”

3. الآن، اضغط على N (Shift+N) للعودة إلى الحدوث السابق.

Moving back to the previous occurrence of the term “log”

بالإضافة إلى ذلك، يوفر Vim اختصارات بحث أخرى مثل ما يلي لمزيد من مرونة البحث:

Command Details
? Initiates a reverse search of a term.
* Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance.
# Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance.

الجمع بين البحث مع أوامر أخرى على Vim

أثناء تصفح المناظر الطبيعية المعقدة لـ Vim، لماذا لا تضيف طبقة أخرى إلى مهارتك في تحرير النصوص — بجمع البحث مع أوامر أخرى؟

يسمح Vim لك بتنفيذ إجراءات تتراوح بين استبدال الحالات المحددة إلى حذف الأسطر التي تطابق نمطًا.

لشهادة التكامل بين البحث والإجراء في Vim ، قم بتنفيذ ما يلي:

1. أثناء وجودك في وضع الأمر ، ضع المؤشر في نقطة البدء التي ترغب في بدء الحذف منها (أي أول حدوث لمصطلح البحث log).

Positioning the cursor at the first occurrence of the term “log”

2. بعد ذلك ، اكتب d/log واضغط على مفتاح Enter لحذف كل شيء من موضع المؤشر إلى الحدوث التالي لمصطلح log ، كما هو موضح أدناه.

Deleting everything from the cursor up to the next occurrence of “log”

3. تراجع عن الإجراء السابق (باستخدام الأمر u) ، وضع المؤشر عند أول حدوث لمصطلح البحث log.

Placing the cursor at the first instance of the search term “log”

4. الآن ، قم بتنفيذ الأمر التالي للبحث واستبدال النصوص في نطاق محدد ، حيث:

  • :. – يدخل وضع الأمر (:) في السطر الحالي (.).
  • ,$ – يحدد النطاق للاستبدال.
  • s/log/logs/g – Substitute all occurrences of the old word (log) with new (logs) globally (g) within the specified range.
Replacing all occurrences of the term “log” with “logs” within a specified rage

تحديد النصوص أثناء وجودك في وضع الرؤية في Vim

بالإضافة إلى دمج فن البحث مع أوامر أخرى في Vim ، يجب أن تكتشف ميزة تحوّل تجربة تحرير النص الخاصة بك. يتيح وضع Vim الرؤية لك تعديل النص بشكل أكثر تفاعلية وبصرياً. يوفر وضع الرؤية طريقة مرنة وفعالة لتمييز النص والعمل على جزء من النص الخاص بك.

لتحديد وتحرير النص ، يمكنك اختيار تحديد وتحرير الأحرف الفردية أو تحديد وتحرير كتل من النص ، على النحو التالي:

١. حرّك المؤشر إلى بداية الملف (باستخدام أمر gg)، واضغط على v لتفعيل وضع الرؤية، كما هو موضح أدناه.

Entering visual mode

٢. اضغط على $ لنقل المؤشر إلى نهاية السطر. نظرًا لأنك في وضع الرؤية، يبرز الأمر السطر النصي.

Highlighting a line of text

٣. الآن، قم بإجراء عملية نسخ ولصق على النحو التالي:

  • اضغط على y لنسخ النص المحدد إلى سجل Vim.
  • اضغط على G$ لتحريك المؤشر إلى نهاية السطر الأخير في الملف.
  • اضغط على p للصق النص الذي قمت بنسخه (بشكل خاص بعد المؤشر).
    يرجى ملاحظة أن أمر p يختلف عن مفاتيح الاختصار في لصق النصوص (Ctrl+Shift+V أو Shift+Insert). أثناء نسخ النص بأمر y، يتم تخزين النص في سجل Vim، وأمر p يلصق النص من السجل.
Copying and pasting a line of text after the cursor
Copying and pasting a line of text at the cursor’s position

٤. تراجع (u) عن الإجراء السابق، حرّك المؤشر إلى بداية الملف (باستخدام gg)، واضغط على V (Ctrl+V) للدخول إلى وضع السطر الرئيسي البصري.

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

Entering visual line mode

٥. استخدم مفتاح الأسهم لأسفل لتحديد الأحرف من بداية الملف حتى سطر Protocol 2.

Selecting multiple lines of text via visual line mode

٦. اضغط على d لقطع الأسطر المتعددة المحددة من النص.

Cutting multiple lines of text

٧. في الختام، الصق النص الذي قطعته في الخطوة السادسة على النحو التالي:

  • انتقل إلى آخر سطر في الملف (G)، وأنشئ سطرًا جديدًا أدناه (o).
  • عودة إلى وضع الأوامر (Esc)، والصق النص (p).
Pasting multiple lines of text

الاستنتاج

تهانينا! لقد تنقلت في عوالم فيم المعقدة لنظام Linux، مفتحًا كنزًا من حكمة تحرير النص على طول الطريق. من إنشاء وتحرير الملفات إلى احتراف فن الوضع البصري، لقد ارتديت قبعة فنان فيم.

ولكن مغامراتك في سطر الأوامر بدأت للتو. لماذا لا تستكشف الميزات المتقدمة مثل الماكروهات و الإضافات لتكييف فيم حسب احتياجاتك؟

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

Source:
https://adamtheautomator.com/vim-for-linux/