English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

vi/vim في لينكس

دروس أساسية Linux

دليل Linux

جميع أنظمة Unix Like تأتي مع محرر vi النصي، بينما ليست جميع محررات النصوص الأخرى موجودة.

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

مقالات مرتبطة:

أكبر خريطة الأوامر القصيرة Vim — من المبتدئ إلى المتقدم

ما هو Vim؟

ببساطة، vi هو معالج نصوص قديم، ولكن لديه وظائف شاملة، ولكن هناك مكان للتحسين. Vim يمكن أن يكون أداة مفيدة جدًا للبرمجة.http://www.vim.org) يقولون أيضًا أن Vim هو أداة تطوير برمجيات وليس برنامج معالجة النصوص.

شريحة Vim للنصوص:

استخدام vi/vim

في الأساس، vi/vim يتكون من ثلاثة أنماط، وهينمط الأمر (Command mode),نمط الإدخال (Insert mode)ونمط الأوامر الأساسية (Last line mode). هذه الأنماط الثلاثة لها دورات مختلفة:

نمط الأمر:

بعد بدء تشغيل vi/vim، سيتم الدخول إلى نمط الأمر.

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

هذه هي بعض الأوامر الشائعة:

  • i التحول إلى نمط الإدخال، لإدخال الحرف.

  • x حذف الحرف الحالي للشريط

  • : التحول إلى نمط الأوامر الأساسية، لإدخال الأوامر في السطر الأخير.

إذا كنت ترغب في تعديل النص: قم بفتح Vim، أدخل إلى نمط الأمر، اضغط على i للتحول إلى نمط الإدخال.

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

نمط الإدخال

في نمط الأمر، اضغط على i للدخول إلى نمط الإدخال.

في نمط الإدخال، يمكنك استخدام الأزرار التالية:

  • أزرار الحروف وكombination مع Shiftإدخال الحرف

  • ENTERالنقر على Enter، للانتقال إلى السطر التالي

  • BACK SPACEالنقر على Backspace، لإزالة الحرف السابق للشريط

  • DELالنقر على Delete، لإزالة الحرف التالي للشريط

  • أزرار الاتجاهالتحرك في النص باستخدام الماوس

  • HOME/ENDالتحرك إلى بداية النص/نهاية النص

  • Page Up/Page Downالصفحة السابقة/الصفحة التالية

  • إدراج، للتحويل إلى الوضع التحريري/التبديل، سيصبح المؤشر خطًا أو خطًا أسفل

  • ESC، للخروج من الوضع التحريري، الانتقال إلى الوضع الأساسي

الوضع الأساسي

عند الضغط على: (مثلث المسار) تدخل إلى الوضع الأساسي

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

في الوضع الأساسي، هناك أوامر أساسية (تم إلغاء التبويب):

  • q للخروج من البرنامج

  • w لتحديد الملف

يمكنك الخروج من الوضع الأساسي بالضغط على زر ESC في أي وقت

ببساطة، يمكننا رؤية هذه الثلاثة الأوضاع كإشارات تحت الصورة:

مثال على استخدام vi/vim

استخدام vi/vim للدخول إلى الوضع العادي

إذا كنت ترغب في استخدام vi لإنشاء ملف يُدعى w3codebox.txt، يمكنك القيام بذلك:

$ vim w3codebox.txt

إدخال مباشر اسم ملف vi يمكنك الدخول إلى الوضع العادي vi عن طريق هذا، تذكر أن vi يجب أن يتبعه اسم الملف، سواء كان موجودًا أم لا!

اضغط على i لدخول الوضع التحريري (يسمى أيضًا الوضع التحريري)، لبدء تحرير النص

في الوضع العادي، يمكنك الدخول إلى الوضع التحريري عن طريق الضغط على i، o، a وغيرها من الأحرف!

في الوضع التحريري، يمكنك ملاحظة أن هناك نص –INSERT- في شريط الحالة في الزاوية السفلى اليسرى، وهو دليل على أنك يمكن إدخال أي حرف.

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

اضغط على زر ESC للعودة إلى الوضع العادي

حسنًا، لنفترض أنني قد أنهيت التحرير وفقًا للنمط المذكور أعلاه، فكيف أخرج؟ نعم! لا بد من ذلك! قم باضغط Esc بهذا الزر فقط! ستجد بسرعة أن – INSERT – في الزاوية السفلى اليسرى قد اختفت!

اضغط على مفتاح السهم في الوضع العادي :wq الخروج من vi بعد التخزين

حسنًا، سنقوم بالتحفظ، والتعامل مع التخزين والخروج بسيط، اكتب :wq يمكنك الآن حفظ الخروج!

حسنًا! لقد أنشأنا بنجاح ملف w3codebox.txt.

شرح الأزرار vi/vim

بالإضافة إلى المثال البسيط i, Esc, :wq، في الواقع vim يحتوي على العديد من الأزرار التي يمكن استخدامها.

الجزء الأول: الوظائف المتاحة في الوضع العادي مثل تحريك المؤشر، نسخ لصق، البحث والتبديل، إلخ

طرق تحريك المؤشر
h أو السهم الأيسر (←)تحرك السهم الأيسر لتحريك الحرف الواحد إلى اليسار
j أو السهم السفلي (↓)تحرك السهم السفلي لتحريك الحرف الواحد إلى الأسفل
k أو السهم العلوي (↑)تحرك السهم العلوي لتحريك الحرف الواحد لأعلى
l أو السهم الأيمن (→)تحرك السهم الأيمن لتحريك الحرف الواحد إلى اليمين
إذا وضعت يدك اليمنى على لوحة المفاتيح، ستجد أن hjkl مرتبة معًا، لذا يمكنك استخدام هذه الأربعة أزرار للتحرك بأسهم الماوس. إذا كنت ترغب في تحريك الماوس عدة مرات، مثل تحريك الماوس إلى الأسفل 30 خطًا، يمكنك استخدام مفتاحات "30j" أو "30↓" معًا. أيضًا، يمكنك إضافة الرقم المطلوب وتحريك الماوس،
[Ctrl] + [f]تحريك الشاشة "للأسفل" صفحة واحدة، مما يعادل مفتاح [Page Down] (مستخدم عادة)
[Ctrl] + [b]تحريك الشاشة "للأعلى" صفحة واحدة، مما يعادل مفتاح [Page Up] (مستخدم عادة)
[Ctrl] + [d]تحريك الشاشة "للأسفل" نصف صفحة
[Ctrl] + [u]تحريك الشاشة "للأعلى" نصف صفحة
+تحريك الماوس إلى السطر التالي الذي يحتوي على رمز غير فراغ
-تحريك الماوس إلى السطر السابق الذي يحتوي على رمز غير فراغ
n<space>هذا الرقم n يعني『رقم』، مثل 20. بعد الضغط على الرقم، ثم الضغط على زر المسافة، سيقوم الماوس بالتحرك إلى اليمين n حرفًا. على سبيل المثال، 20<space> سيقوم بتحريك الماوس إلى اليمين 20 حرفًا.
0 أو المفتاح الفعلي [Home]هذا هو الرقم الـ『0』: الانتقال إلى أول رمز في هذا السطر (مستخدم عادة)
$ أو المفتاح الفعلي [End]الانتقال إلى آخر رمز في هذا السطر (استخدام شائع)
Hتحريك الماوس إلى أول رمز في السطر الأعلى على هذا الشاشة
Mتحريك الماوس إلى أول رمز في السطر الوسط على هذا الشاشة
Lتحريك الماوس إلى أول رمز في السطر الأدنى على هذا الشاشة
Gالانتقال إلى السطر الأخير في هذا الملف (استخدام شائع)
nGn هو رقم. الانتقال إلى السطر رقم n في هذا الملف. على سبيل المثال، 20G سيقوم بالانتقال إلى السطر العشرين في هذا الملف السطر (يمكن استخدام :set nu معه)
ggالانتقال إلى السطر الأول في هذا الملف، مما يعادل 1G! (مستخدم عادة)
n<Enter>n هو رقم. تحريك الماوس إلى الأسفل n خطًا (استخدام شائع)
البحث والتبديل
/wordالبحث عن سلسلة تُدعى word أسفل من الماوس. على سبيل المثال، لالبحث عن vbird في ملف هذه السلسلة، يمكنك إدخال /vbird! (مستخدم عادة)
?wordالبحث عن سلسلة تُدعى word أعلى من الماوس.?
nN هذا هو المفتاح الإنجليزي. يمثل تكرار الإجراء البحثي السابق. على سبيل المثال، إذا كنا نقوم بـ /vbird للبحث "للأسفل" عن السلسلة vbird، فإن الضغط على n بعد ذلك سيواصل البحث "للأسفل" عن السلسلة التالية التي تُدعى vbird السلسلة. إذا كنت تنفذ ?vbird، فإن الضغط على n سيواصل البحث "للأعلى" عن السلسلة التي تُدعى vbird!
NN هذا هو المفتاح الإنجليزي. يتعارض مع n، ويقوم بـ "البحث بالعكس" للبحث السابق. على سبيل المثال /vbird بعد ذلك، عند الضغط على N يعني البحث "للأعلى" vbird .
استخدام /word مع n و N مفيد جدًا! يمكنه مساعدتك في العثور على الكلمات المفتاحية التي تبحث عنها مرارًا وتكرارًا!
:n1,n2s/word1/word2/gn1 و n2 هي الأرقام. البحث عن word1 هذا النص في النطاق من السطر n1 إلى n2، واستبدال هذا النص word2 ! على سبيل المثال، البحث عن vbird في النطاق من 100 إلى 200 السطور واستبدالها بVBIRD
『:100,200s/vbird/VBIRD/g』.(المستخدمة عادة)
:1,$s/word1/word2/g أو :%s/word1/word2/gالبحث عن word1 في كل السطور من البداية إلى النهاية، واستبدال هذا النص word2 !(المستخدمة عادة)
:1,$s/word1/word2/gc أو :%s/word1/word2/gcالبحث عن word1 في كل السطور من البداية إلى النهاية، واستبدال هذا النص word2 ! ويظهر رسالة التأكيد للمستخدم قبل الاستبدال (confirm) هل تحتاج إلى استبدال!(المستخدمة عادة)
حذف، نسخ ولصق
x, Xفي سطر من النص، x لحذف حرفًا واحدًا للخلف (يساوي [del] زر الحذف) X لحذف حرفًا واحدًا للأمام (يساوي [backspace] أي زر الحذف للخلف) (مستخدم عادة)
nxn هي الرقم، حذف n حرفًا متتاليًا. على سبيل المثال، إذا كنت أريد حذف 10 أحرف، 『10x』
ddحذف السطر الذي يوجد تحت المارك كله (المستخدمة عادة)
nddn هي الرقم. حذف السطر الذي يوجد تحت المارك إلى السطر السفلي n، على سبيل المثال 20dd هو حذف 20 (مستخدم عادة)
d1Gحذف المارك إلى السطر الأول
dGحذف المارك إلى السطر الأخير
d$حذف المارك إلى الحرف الأخير في السطر
d0هذا هو الرقم 0، حذف المارك إلى الحرف الأول في السطر
yyنسخ السطر الذي يوجد تحت المارك (المستخدمة عادة)
nyyn هي الرقم. نسخ السطر الذي يوجد تحت المارك إلى السطر السفلي n، على سبيل المثال 20yy هو نسخ 20 السطر (المستخدمة عادة)
y1Gنسخ السطر الذي يوجد تحت المارك إلى كل البيانات في السطر الأول
yGنسخ السطر الذي يوجد تحت المارك إلى كل البيانات في السطر الأخير
y0نسخ الحرف الذي يوجد تحت المارك إلى كل البيانات في بداية السطر
y$نسخ الحرف الذي يوجد تحت المارك إلى كل البيانات في نهاية السطر
p, Pp لصق البيانات المنسوخة في السطر التالي للسطر المارك، P لصق في السطر السابق للسطر المارك! للإيضاح، الحالي في السطر 20، وقد تم نسخ 10 سطور من البيانات. عند الضغط على p، تلك الـ10 سطور من البيانات ستتم إلصاقها بعد الـ20 سطرًا الأصلي، أي من البداية في السطر 21. ولكن ماذا إذا كان يتم الضغط على P؟ إذن سيتم سحب السطر 20 إلى السطر 30. (مستخدم عادة)
Jدمج النص في السطر الحالي مع النص في السطر التالي
cإزالة بيانات متعددة مرة واحدة، مثل حذف 10 سطور، [10cj]
uاستعادة الفعل السابق (مستخدمة بشكل شائع)
[Ctrl]+rإعادة الفعل السابق (مستخدمة بشكل شائع)
الـ u مع [Ctrl]+r هو أوامر مستخدمة بشكل شائع! واحد هو إعادة، والآخر هو إعادة تنفيذ مرة أخرى ~ بتسخير هاتين الوظائف، تعديلاتك، هههه! ممتعة جدًا!
٫لا تتردد! هذا هو النقطة! يعني تكرار الفعل السابق. إذا كنت ترغب في تكرار الحذف أو اللصق المتكرر وما إلى ذلك، اضغط على النقطة '٫'! (مستخدم عادة)

الجزء الثاني: توضيح الأزرار المتاحة للتحول من الوضع العادي إلى الوضع التحريري

دخول الوضع التحريري أو الاستبدال
i, Iدخول الوضع الإدخال (Insert mode):
i هي 'البداية من الموضع الحالي'، I هي 'البداية من الحرف الأول غير الفارغ في السطر الحالي'. (مستخدم عادة)
a, Aدخول الوضع الإدخال (Insert mode):
a هي 'البداية من الحرف التالي للماوس'، A بالنسبة لـ 'البداية من النهاية الحالية للسطر الحالي' (مستخدمة بشكل شائع)
o, Oدخول الوضع الإدخال (Insert mode):
o هي الحرف الأصغر في الحروف الإنجليزية الكبيرة والصغيرة. o لإدخال سطر جديد تحت السطر الحالي للماوس؛ O لإدخال سطر جديد في السطر السابق للماوس (مستخدمة بشكل شائع)
r, Rدخول الوضع الاستبدال (Replace mode):
r سيقوم بتغيير الحرف الموجود في الماوس فقط مرة واحدة؛ R سيقوم بتغيير النص الموجود في الماوس حتى يتم الضغط :q!
في هذه الأزرار، ستجد '--INSERT--' أو '--REPLACE--' في الزاوية السفلى اليسرى من واجهة vi. من الاسم نفسه يمكن معرفة هذا الفعل!! يجب الانتباه إلى أننا ذكرنا ذلك أيضًا، إذا كنت ترغب في إدخال حروف في الملف، يجب أن ترى INSERT أو REPLACE في الزاوية السفلى اليسرى للإدخال!
[Esc]الخروج من الوضع التحريري، العودة إلى الوضع العادي (مستخدمة بشكل شائع)

الجزء الثالث: توضيح الأزرار المتاحة للتحول من الوضع العادي إلى الوضع الأوامر

تعليمات السطر، مثل الحفظ والخروج
:wكتابة البيانات المعدلة في ملف الصلباء (مستخدمة بشكل شائع)
:w!إذا كان属性 الملف 'قابل للقراءة فقط'، اكتب الملف بشكل إلزامي. ولكن، ما إذا كان يمكنك الكتابة، أو يرجع ذلك إلى صلاحيات الملف للملف نفسه!
:qالخروج من vi (مستخدمة بشكل شائع)
:q!إذا قمت بتعديل الملف ولا تريد حفظه، استخدم ! لإلزام الخروج بدون حفظ الملف.
لحظة، علامة التعجب (!) في vi، غالبًا تعني 'إلزامي' ~
:wqالخروج بعد التخزين، إذا كان :wq! فإنه يكون إجباريًا بعد التخزين والخروج (مستخدم عادة)
ZZهذا هو Z الكبير! إذا قمت بتعديل، قم بحفظ الملف الحالي ثم الخروج. يعادله (حفظ وخرج)
ZQلا ت حفظ، قم بالخروج الإجباري. يعادله :q!
:w [filename]حفظ البيانات المعدة للتحرير في ملف آخر (مثل حفظ ملف آخر)
:r [filename]قراءة بيانات ملف آخر إلى البيانات المعدة للتحرير. أي أنك تريد إضافة محتوى هذا الملف إلى السطر التالي للcursor
:n1,n2 w [filename]حفظ محتوى من السطر n1 إلى n2 في ملف filename.
:! commandلإبقاء vi في وضع سطر الأوامر لعرض نتائج أمر command، على سبيل المثال
يمكنك استخدام『:! ls /home』للتحقق من معلومات ملفات المجلد /home باستخدام أمر ls في vi!
تغيير بيئة vim
:set nuعرض الأرقام، بعد الإعداد، سيتم عرض رقم السطر ك前置 لكل سطر
:set nonuعلى عكس set nu، لإلغاء عرض الأرقام!

تنبيه خاص، في vi/vim، الرقم له معنى! عادة ما يمثل الرقم تكرار العملية عدة مرات، أو قد يمثل الذهاب إلى السطر رقم معين.

على سبيل المثال، لإزالة 50 سطرًا، يمكنك استخدام『50dd』، أليس كذلك؟ يوضع الرقم قبل العملية، مثل إذا كنت أريد التحرك إلى أسفل 20 سطرًا؟ فإن ذلك يكون『20j』أو『20↓』.