عامه

  • :h[elp] keyword - إعرض المساعده باستخدام كلمه مفتاحيه
  • :sav[eas] file - حفظ الملف كا
  • :clo[se] - إغلق الجزءالحالي
  • :ter[minal] - إفتح نافذ طرفيه
  • K - إفتح كتيب التعليمات للكلمه تحت المؤشر
Tip Run vimtutor in a terminal to learn the first Vim commands.

تحريك المؤشر

  • h - تحريك المؤشر لليسار
  • j - تحريك المؤشر للأسفل
  • k - تحريك المؤشر للأعلى
  • l - تحريك المؤشر لليمين
  • gj - تحريك المؤشر لأسفل (أكثر من سطر)
  • gk - تحريك المؤشر للأعلى (أكثر من سطر)
  • H - تحريك لأعلى الشاشة
  • M - تحريك لوسط الشاشة
  • L - تحريك لأسفل الشاشة
  • w - اقفز للأمام إلى بداية كلمة
  • W - اقفز للأمام إلى بداية كلمة (يمكن للكلمات أن تشمل علامات الترقيم)
  • e - اقفز للأمام إلى نهاية الكلمة
  • E - اقفز للأمام إلى نهاية كلمة (يمكن للكلمات أن تشمل علامات الترقيم)
  • b - اقفز للوراء إلى بداية الكلمة
  • B - اقفز للوراء إلى بداية الكلمة (يمكن للكلمات أن تشمل علامات الترقيم)
  • ge - اقفز للوراء إلى نهاية الكلمة
  • gE - اقفز للوراء إلى نهاية الكلمة (يمكن للكلمات أن تشمل علامات الترقيم)
  • % - تحريك للخانة المطابقة (الأزواج الافتراضية المدعومة: '()', '{}', '[]' - استخدم :h matchpairs لمزيد من المعلومات)
  • 0 - اقفز إلى بداية السطر
  • ^ - اقفز إلى الخانة الأولى غير الفارغة في السطر
  • $ - اقفز إلى نهاية السطر
  • g_ - اقفز إلى الخانة الآخيرة غير الفارغة في السطر
  • gg - اذهب إلى السطر الأول في الملف
  • G - اذهب إلى السطر الآخير في الملف
  • 5gg or 5G - اذهب إلى السطر الخامس
  • gd - move to local declaration
  • gD - move to global declaration
  • fx - اقفز إلى الخانة بعد الحدوث التالي لحرف اكس
  • tx - اقفز إلى الخانة قبل الحدوث التالي لحرف اكس
  • Fx - اقفز الى الخانة بغد الحدوث السابق لحرف اكس
  • Tx - اقفز الى الخانة قبل الحدوث السابق لحرف اكس
  • ; - f, F, t or T اعاده الحركه للامام بواسطه
  • , - f, F, t or T اعاده الحركه للخلف بواسطه
  • } - (اقفز إلى القترة التالية (كود او الدالة
  • { - اقفز الي الفقره السابقه (كود او الداله)
  • zz - ضع المؤشر في منتصف الشاشة
  • zt - position cursor on top of the screen
  • zb - position cursor on bottom of the screen
  • Ctrl + e - حرك الشاشة سطر واحد لاسفل (بدون تحريك المؤشر)
  • Ctrl + y - حرك الشاشة سطر واحد للاعلي (بدون تحريك المؤشر)
  • Ctrl + b - تحرك شاشة كاملة للخلف
  • Ctrl + f - تحرك شاشة كاملة للأمام
  • Ctrl + d - تحرك نصف شاشه للامام
  • Ctrl + u - تحرك نصف شاشه للخلف
Tip Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.

وضع الإدراج (الإضافه) - إضافة الكلام

  • i - أضف قبل المؤشر
  • I - أضف من أول السطر
  • a - أضف بعد المؤشر
  • A - أضف الي نهاية السطر
  • o - اضف سطر جديد أسفل السطر الحالي
  • O - اضف سطر جديد اعلي السطر الحالي
  • ea - أضف الي نهاية الكلمه
  • Ctrl + h - إحذف الحرف ما قبل المؤشر اثناء وضع الإضافة
  • Ctrl + w - إحذف الكلمه ماقبل المؤشر اثناء وضع الإضافة
  • Ctrl + j - أضف سطر جديد اثناء وضع الإضافة
  • Ctrl + t - أضف الي السطر الأول مساحه بادئة اثناء وضع الإضافة
  • Ctrl + d - إحذف من السطر الأول مساحه بادئة اثناء وضع الإضافة
  • Ctrl + n - insert (auto-complete) next match before the cursor during insert mode
  • Ctrl + p - insert (auto-complete) previous match before the cursor during insert mode
  • Ctrl + rx - insert the contents of register x
  • Ctrl + ox - Temporarily enter normal mode to issue one normal-mode command x.
  • Esc or Ctrl + c - أخرج من وضع الإضافة

التحرير

  • r - إستبدل حرف واحد
  • R - إستبدل أكثر من حرف
  • J - ضم السطر التالي الي السطر الحالي
  • gJ - ضم السطر التالي الي السطر الحالي بدون مساحه بينهما
  • gwip - اعاده ترتيب الفقره
  • g~ - إجعل الحرف كبير (uppercase)
  • gu - إجعل الحروف صغير (lowercase)
  • gU - إجعل الحروف كبيره (uppercase)
  • cc - حرر سطر كامل
  • c$ or C - حرر من المؤشر الي اخر السطر
  • ciw - حرر كلمه كامله
  • cw or ce - حرر من اخر الكلمه
  • s - إحذف حرف
  • S - إحذف سطر كامل
  • xp - استبدل مكان حرفين ببعضيهما
  • u - إلغي
  • U - إلغي كل العمليات علي سطر
  • Ctrl + r - أعد العمليه مره اخري
  • . - أعد اخر امر

تحديد النص

  • v - إبدا وضع التحديد - يمكنك تحديد احرف او أسطر
  • V - إبدا وضع التحديد - سطر بسطر
  • o - حرك المؤشر للجهه الثانيه من الكلام المحدد
  • Ctrl + v - إبدا وضغ التحديد - بلوك
  • O - حرك المؤشر الي الجهه الثانيه من الكلام المحدد
  • aw - حدد كلمه
  • ab - () حدد الكلام المحدود ب
  • aB - {} حدد الكلام المحدود ب
  • at - <> حدد الكلام المحدود ب
  • ib - () حدد الكلام بداخل
  • iB - {} حدد الكلام بداخل
  • it - <> حدد الكلام بداخل
  • Esc or Ctrl + c - أخرج من وضع تحديد النص
Tip Instead of b or B one can also use ( or { respectively.

Visual commands

  • > - حرك الكلام الي اليمين
  • < - حرك الكلام الي اليسار
  • y - إنسخ الكلام المحدد
  • d - إمسح الكلام المحدد
  • ~ - إعكس الكلام المحدد من حروف كبيره الي صغير والعكس
  • u - غير الكلام المحدد الي احرف صغيره
  • U - غير الكلام المحدد الي احرف كبيره

التسجيلات

  • :reg[isters] - إعرض محتوي التسجيلات
  • "xy - X إنسخ الي التسجيل
  • "xp - X الصق المحتوي في التسجيل
  • "+y - clipboard انسخ الي الحافظه
  • "+p - الصق من الحافظه
Tip Registers are being stored in ~/.viminfo, and will be loaded again on next restart of vim.
Tip تسجيلات من نوع خاص

0 - اخر كلام منسوخ
" - تسجيل غير مسمي - يحتوي علي اخر نسخ او لصق
% - اسم الملف الحالي
# - تغير اسم الملف
* - clipboard contents (X11 primary)
+ - clipboard contents (X11 clipboard)
/ - اخر ماتم البحث عنه
: - CLI اخر امر من
. - اخر كلام تم إضافته
- - اخر ماتم مسحه (اقل من سطر)
= - سجل التعبيرات
_ - سجل الثقب الاسود (لا يحتفظ باي شيء)

العلامات

  • :marks - إعرض قائمة العلامات
  • ma - A عين علامة جديدة عن المؤشر الحالي
  • `a - A اقفز الي العلامه
  • y`a - A انسخ من المؤشر الحالي الي العلامه
  • `0 - اذهب الي اخر مكان تم الخروج منه
  • `" - اذهب الي المكان الذي تم فيه تعديل الملف
  • `. - اذهب الي المكان الذي تم فيه تغير الملف
  • `` - اذهب الي المكان الذي كان قبل اخر قفزه
  • :ju[mps] - اعرض قائمة القفزات
  • Ctrl + i - اذهب الي مكان جديد في قائمة القفزات
  • Ctrl + o - اذهب الي مكان قديم في قائمة القفزات
  • :changes - اعرض كل التغيرات
  • g, - اذهب الي مكان جديد في قائمة التغيرات
  • g; - اذهب الي مكان قديم في قائمة التغيرات
  • Ctrl + ] - اقفز إلى العلامة تحت المؤشر
Tip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.

ماكروس

  • qa - a تسجيل ماكرو
  • q - توقيف تسجيل الماكرو
  • @a - شغل الماكرو
  • @@ - إعادة الماكرو الآخير

النسخ والصق

  • yy - إنسخ سطر
  • 2yy - انسخ سطرين
  • yw - إنسخ كلمه
  • yiw - إنسخ الكلمه تحت المؤشر
  • yaw - إنسخ الكلمة تحت المؤشر و المساحه قبلها وبعدها
  • y$ or Y - إنسخ من المؤشر الي اخر السطر
  • p - إلصق من الحافظه الي مابعد المؤشر
  • P - الصق من الحافظه الي ماقبل المؤشر
  • gp - إلصق من الحافظه بعد المؤشر مع وضع المؤشر بعد الكلام الجديد
  • gP - إلصق من الحافظه قبل المؤشر مع وضع المؤشر قبل الكلام الجديد
  • dd - قص السطر الحالي
  • 2dd - قص سطرين
  • dw - قص كلمه
  • diw - قص الكلمه تحت المؤشر
  • daw - قص الكلمة تحت المؤشر والمساحه قبلها وبعدها
  • :3,5d - delete lines starting from 3 to 5
Tip You can also use the following characters to specify the range:
e.g.

:.,$d - From the current line to the end of the file
:.,1d - From the current line to the beginning of the file
:10,$d - From the 10th line to the beginning of the file

  • :g/{pattern}/d - delete all lines containing pattern
  • :g!/{pattern}/d - delete all lines not containing pattern
  • d$ or D - قص من المؤشر الي نهاية السطر
  • x - قص حرف واحد

المساحات البادئة

  • >> - أضف مساحه بادئة (حرك لليمن) للسطر الحاليي
  • << - إحذف مساحه بادئة (حرك لليسار) من السطر الحالي
  • >% - أضف مساحه بادئة لبلوك بين () او {} مع وضع المؤشر في الأول
  • <% - de-indent a block with () or {} (cursor on brace)
  • >ib - () أضف مساحه بادئة لبلوك محدوده ب
  • >at - <> أضف مساحه بادئة لبلوك محدوده ب
  • 3== - أعد إضافة مساحه بادئة لثلاثة سطرور
  • =% - أعد إضافة مساحه بادئة لبلوك محدوده ب () او {} مع وضع المؤشر في الأول
  • =iB - {} أعد إضافة مساحه بادئة للكلام المحدود ب
  • gg=G - أعد إضافة مساحه بادئة للملف بالكامل
  • ]p - إلصق وأضف مساحه بادئة للسطر الحالي

الخروج

  • :w - حفظ الملف بدون الخروج
  • :w !sudo tee % - حفظ الملف الحالي باستخدام حساب المستخدم الرئيسي
  • :wq or :x or ZZ - حفظ وخروج من الملف
  • :q - الخروج (يفشل في حالة عدم وجود اي تغير)
  • :q! or ZQ - الخروج مع عدم حفظ اي تغير
  • :wqa - خفظ والخروج من كل الملفات الحاليه

البحث والاستبدال

  • /pattern - البحث عن للامام عن نمط
  • ?pattern - البحث للخلف عن نمط
  • \vpattern - 'very magic' البحث عن أنماط بدون الحاجه الي اخذ الحوف الخاصه في الاعتبار
  • n - كرر البحث في نفس الاتجاه
  • N - كرر البحث في عكس الاتجاه
  • :%s/old/new/g - استبدل كلام قديم باخر جديد في جميع انحاء الملف
  • :%s/old/new/gc - استبدل كلام جديد باخر جديد في جميع انحاء الملف مع التاكيدات
  • :noh[lsearch] - إزالة التظليل

البحث في أكثر من ملف

  • :vim[grep] /pattern/ {`{file}`} - البحث عن نمط في اكثر من ملف
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - اقفز الي نتيجة البحث التاليه
  • :cp[revious] - اقفز الي نتيجة البحث السابقه
  • :cope[n] - افتح نافذه تحتوي علي نتائج البحث
  • :ccl[ose] - اغلق نافذة 'الاصلاح السريع' الحاليه

النوافذ

  • :tabnew or :tabnew {page.words.file} - افتح ملف في نافذة جديده
  • Ctrl + wT - حرك الجزء الحالي من النافذة في نافذة خاصه به
  • gt or :tabn[ext] - اقفز الي النافذة التاليه
  • gT or :tabp[revious] - اقفز الي النافذة السابقه
  • #gt - # تحرك الي النافذة رقم
  • :tabm[ove] # - حرك النافذة الحاليه الي الموضع # (بدا العد من الصفر)
  • :tabc[lose] - اغلق كل النوافذ
  • :tabo[nly] - اغلق كل النوافذ باستثاء الحاليه
  • :tabdo command - (:tabdo q - سوف يغلق كل النوافذ) نفذ الامر علي كل النوافذ

العمل مع أكثر من ملف

  • :e[dit] file - تعديل الملف في نافذة جديده
  • :bn[ext] - الذهاب الي الملف التالي
  • :bp[revious] - الذهاب الي الملف السابق
  • :bd[elete] - اغلق ملف
  • :b[uffer]# - # الذهاب الي الملف بواسطه
  • :b[uffer] file - الذهاب الي الملف
  • :ls or :buffers - اعرض كل الملفات في قائمة
  • :sp[lit] file - افتح ملفًا في مخزن مؤقت جديد واقسم النافذة
  • :vs[plit] file - افتح ملفًا في مخزن مؤقت واقسم النافذة بشكل راسي
  • :vert[ical] ba[ll] - عدل كل الملفات بشكل راسي
  • :tab ba[ll] - عدل كل الملفات علي شكل نوافذ
  • Ctrl + ws - اقسم النافذة
  • Ctrl + wv - اقسم النافذة بشكل راسي
  • Ctrl + ww - حول من النافذة الحاليه الي اخري
  • Ctrl + wq - اغلق نافذة
  • Ctrl + wx - استبدل النافذة الحاليه بنافذه اخري
  • Ctrl + w= - اجعل كل النوافذ متساويه في الوسع والارتفاع
  • Ctrl + wh - حرك المؤشر الي النافذة علي اليسار (مع الانقسام الرأسي)
  • Ctrl + wl - حرك المؤشر الي النافذة علي اليمين (مع الانقسام الراسي)
  • Ctrl + wj - حرك المؤشر الي النافذة السفلي (مع الانقسام الأفقي)
  • Ctrl + wk - حرك المؤشر الي النافذة الاعلي (مع الانقسام الأفقي)
  • Ctrl + wH - اجعل النافذة الحالية كاملة الارتفاع في أقصى اليسار (نافذة عمودية في أقصى اليسار)
  • Ctrl + wL - جعل النافذة الحالية كاملة الارتفاع في أقصى اليمين (نافذة عمودية في أقصى اليمين)
  • Ctrl + wJ - اجعل النافذة الحالية بعرض كامل في الأسفل (النافذة الأفقية السفلية)
  • Ctrl + wK - جعل النافذة الحالية كاملة العرض في الأعلى (أعلى نافذة أفقية)

الانطواء

  • zf - عرف انحناء باستخدام أحد الحركات
  • zd - احذف انحناء تحت المؤشر
  • za - بدل الانحناء تحت المؤشر (افتح/اغلق)
  • zo - افتح الانحناء تحت المؤشر
  • zc - اغلق الانحناء تحت المؤشر
  • zr - افتح كل الانحنات علي مستوي واحد
  • zm - عرف المزيد من الانحنات
  • zi - بدل وظيفة الانحنات
  • ]c - اقفز الي الاختلاف التالي
  • [c - اقفز الي الاختلاف السابق
  • do or :diffg[et] - احضر الاختلاف من ملف اخر الي الملف الحالي
  • dp or :diffpu[t] - ضع الاختلاف في الملف الحالي الي ملف اخر
  • :diffthis - اجعل النافذة الحاليه جزء من اختلاف جديد
  • :dif[fupdate] - حدث الاختلاف
  • :diffo[ff] - أغلق وضع الاختلاف للنافذة الحالية
Tip The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA).
Tip To view the differences of files, one can directly start Vim in diff mode by running vimdiff in a terminal. One can even set this as git difftool.