ما هو Neovim؟
Neovim هو محرر نصوص قابل للتوسع بشكل كبير، يعتمد على Vim، ويهدف إلى تحديث وتحسين تجربة Vim الكلاسيكية. تم إطلاقه في عام 2014 كفرع من Vim، وقد تطور منذ ذلك الحين إلى مشروع مستقل له هويته الخاصة ومسار تطويره. مع الحفاظ على التوافق الكامل مع نموذج التحرير في Vim، يقدم Neovim قاعدة شفرة أكثر سهولة في الصيانة، وإعدادات افتراضية أفضل، وبنية مكونات قوية تستفيد من التنفيذ غير المتزامن.
في جوهره، يظل Neovim وفياً لفلسفة التحرير متعددة الأوضاع التي جعلت Vim أسطورياً بين المطورين ومستخدمي الطاقة. تفصل هذه الطريقة بين تحرير النصوص إلى أوضاع مختلفة - الوضع العادي للتنقل والأوامر، ووضع الإدراج لكتابة النصوص، والوضع المرئي لتحديد ومعالجة كتل النص. تمكن هذه التفريق من إجراء عمليات تعديل نصوص بكفاءة مذهلة بمجرد إتقانها، مما يسمح للمستخدمين بتحرير النصوص بسرعة تفكيرهم بدلاً من سرعة ضغط المفاتيح.
يميز Neovim نفسه عن محررات النصوص التقليدية من خلال قابليته للتوسع. يوفر دعمًا من الدرجة الأولى لخوادم اللغة من خلال بروتوكول خادم اللغة (LSP)، ومحاكاة طرفية مدمجة، وواجهة برمجة نصية بلغة Lua تتيح للمطورين إنشاء مكونات قوية بأقل قدر من الجهد. تضع هذه المميزات Neovim ليس مجرد محرر نصوص، بل بيئة تطوير قابلة للتخصيص يمكن تعديلها لتناسب سير العمل الفردية.
قبل الغوص في أوامر Neovim، أود أن أقدم لك Apidog - منصة شاملة لتطوير واجهات برمجة التطبيقات (API) التي أصبحت بسرعة البديل المفضل لـ Postman للعديد من المطورين.

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

يجمع Apidog بين توثيق واجهة برمجة التطبيقات، والاختبار الآلي، والخوادم الوهمية في أداة واحدة متكاملة، مما يجعله مثاليًا لكل من المطورين الأفراد والفرق. واجهته البديهية وميزاته القوية تسهل سير العمل الخاص بك بينما تحافظ على التوافق مع مجموعات Postman الحالية. خذ لحظة لتجربة Apidog بجانب إعداد Neovim الخاص بك - يمكن أن تحدث مجموعة هذه الأدوات القوية ثورة في عملية تطويرك.
الآن، لنغوص في تلك الأوامر الأساسية لـ Neovim!
لماذا يجب أن تستخدم Neovim
الأداء والكفاءة
تم تصميم هيكل Neovim للسرعة. بالاستفادة من الإدخال/الإخراج غير المتزامن، يبقى مستجيبًا حتى عند تشغيل مهام مكثفة مثل فهرسة الشفرات أو عمليات git. هذا يعني لا مزيد من التجميد أو التأخير أثناء العمل على ملفات كبيرة أو مشاريع معقدة. كما أن أسلوب التحرير متعدد الأوضاع يقلل أيضًا من حركة اليد، مما يقلل من خطر الإصابات الناتجة عن الإجهاد المتكرر الشائعة بين المطورين الذين يقضون ساعات في الترميز.
قابلية التخصيص والتوسع
بينما تقدم العديد من المحررات الحديثة خيارات تخصيص، فإن نهج Neovim فريد من نوعه. يمكن تكوين كل جانب من جوانب المحرر وفقًا لتفضيلاتك، بدءًا من تخصيص المفاتيح إلى المظهر. يسمح نظام المكونات القوي بتمديد الوظائف في أي اتجاه عمليًا - يمكنك تحويل Neovim إلى IDE للغة المفضلة لديك، أو بيئة كتابة للتوثيق، أو أي شيء بينهما.
مهارات مقاومة للمستقبل
تساعدك تعلم Neovim على تطوير مهارات التحرير التي تتجاوز أدوات أو بيئات معينة. يتاح تحرير نمط Vim كمكون إضافي أو وضع في كل محرر شائع تقريبًا وIDE، بما في ذلك VS Code وIntelliJ IDEA وحتى المتصفحات. إن إتقان هذه الأوامر يخلق مهارات قابلة للنقل وتحسن إنتاجيتك عبر منصات متعددة.
كفاءة الموارد
إن بصمة موارد Neovim المنخفضة تجعله خيارًا ممتازًا للعمل عن بُعد أو للأجهزة ذات القدرات المحدودة. يبدأ على الفور ويستهلك ذاكرة أقل بكثير من المحررات الرسومية، مما يترك المزيد من الموارد متاحة لمهام التطوير الفعلية الخاصة بك.
المجتمع والنظام البيئي
قام Neovim بتعزيز مجتمع نشط يساهم باستمرار في تحسينه. يتسم نظام المكونات بالتنوع والغنى، مع أدوات متاحة تقريبًا لكل حاجة تطوير. من البحث الضبابي وNavigation الملفات إلى دمج git وتظليل الصيغة، أنشأ المجتمع حلولاً تنافس أو تفوق تلك الموجودة في الـ IDE التجارية.
فلسفة المصدر المفتوح
من خلال اختيار Neovim، فإنك تتبنى أداة مفتوحة المصدر بالكامل تتسم بعملية تطوير شفافة. محررك ليس عرضة لمزاج مؤسسة أو لعمليات تغيير مفاجئة في نماذج الترخيص أو التسعير.
كيفية تثبيت Neovim على Windows وMac وLinux
تثبيت Windows
استخدام مدير حزم Windows (winget)
winget install Neovim.Neovim
استخدام Chocolatey
choco install neovim
استخدام Scoop
scoop install neovim
التثبيت اليدوي
- زيارة صفحة إصدارات Neovim على GitHub
- تنزيل أحدث أرشيف ZIP المستقر لنظام Windows
- استخراج المحتويات إلى مكان من اختيارك (على سبيل المثال،
C:\Program Files\Neovim) - إضافة دليل
binإلى متغير PATH لديك - التحقق من التثبيت بفتح موجه الأوامر وكتابة
nvim --version
تثبيت macOS
استخدام Homebrew
brew install neovim
استخدام MacPorts
sudo port install neovim
التثبيت اليدوي
- تنزيل أحدث أرشيف لنظام macOS من صفحة إصدارات Neovim على GitHub
- استخراج التطبيق إلى مجلد التطبيقات لديك
- اختياريًا، يمكنك إضافة اختصار إلى ملف تكوين shell الخاص بك:
alias nvim='/Applications/Neovim.app/Contents/MacOS/nvim'
تثبيت Linux
Ubuntu/Debian
sudo apt update
sudo apt install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Arch Linux
sudo pacman -S neovim
البناء من المصدر
للحصول على أحدث الميزات أو على التوزيعات التي لا تحتوي على حزم محدثة:
git clone https://github.com/neovim/neovim
cd neovim
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
التحقق من تثبيتك
بعد التثبيت، افتح طرفية أو موجه الأوامر واكتب:
nvim --version
يجب أن ترى مخرجات تعرض إصدار Neovim ومعلومات بناءه. لبدء Neovim، ما عليك سوى كتابة:
nvim
التكوين الأولي
يخزن Neovim تكوينه في مواقع مختلفة:
- Windows:
%LOCALAPPDATA%\nvim\ - macOS/Linux:
~/.config/nvim/
قم بإنشاء ملف init.vim في هذا الدليل لتكوين Vimscript أو init.lua لتكوين Lua. يبدأ العديد من المستخدمين بتكوين بسيط ويبنون المزيد أثناء تعلمهم:
مثال أساسي على init.vim:
" الإعدادات الأساسية
set number " إظهار أرقام الأسطر
set relativenumber " إظهار أرقام الأسطر النسبية
set expandtab " استخدام المسافات بدلاً من الجدولة
set tabstop=4 " تعيين عرض الجدولة إلى 4 مسافات
set shiftwidth=4 " تعيين عرض التحويل إلى 4 مسافات
set autoindent " تمكين التحويل التلقائي
set smartindent " تمكين التحويل الذكي
set termguicolors " تمكين دعم الألوان الحقيقية
أفضل 100 أمر Neovim للمبتدئين
أثبت Neovim نفسه كأداة قوية وقابلة للتوسع لتحرير النصوص للمطورين ومستخدمي الطاقة على حد سواء. بناءً على أساس Vim، يقدم Neovim أداءً محسنًا، وبنية مكونات أفضل، ومجتمعًا حيويًا يعمل باستمرار على تعزيز إمكانياته. سواء كنت محترفًا قديمًا في Vim أو مبتدئًا في التحرير المتعدد الأوضاع، فإن وجود مرجع شامل للأوامر في متناول يدك يمكن أن يحسن بشكل كبير من كفاءتك وسير عملك.
تجمع هذه الورقة العملية 100 أمر أساسي من Neovim ينبغي على كل مستخدم معرفتها، مرتبة حسب الفئة لسهولة الرجوع إليها. من التنقل الأساسي إلى معالجة النصوص المتقدمة، تمثل هذه الأوامر مجموعة الأدوات التي تجعل Neovim بيئة تحرير قوية. سيساعدك إتقان حتى مجموعة فرعية من هذه الأوامر على تعزيز إنتاجيتك بشكل كبير ومساعدتك على استغلال الإمكانات الكاملة لـ Neovim.
التنقل الأساسي
h,j,k,l- تحريك المؤشر إلى اليسار، للأسفل، للأعلى، لليمين (المفاتيح الأساسية للحركة في Neovim)w- الانتقال إلى بداية الكلمة التالية (تعتبر علامات الترقيم كلمات)W- الانتقال إلى بداية الكلمة التالية (الكلمات المفصولة بمسافات)b- الانتقال إلى بداية الكلمة السابقةB- الانتقال إلى بداية الكلمة السابقة (WORD)e- الانتقال إلى نهاية الكلمةE- الانتقال إلى نهاية الكلمة (WORD)0- الانتقال إلى بداية السطر (العمود الأول)^- الانتقال إلى أول حرف غير فارغ في السطر$- الانتقال إلى نهاية السطرgg- الانتقال إلى أول سطر في الوثيقةG- الانتقال إلى آخر سطر في الوثيقة{number}G- الانتقال إلى رقم سطر محدد{- الانتقال إلى الفقرة/كتلة الشيفرة السابقة}- الانتقال إلى الفقرة/كتلة الشيفرة التاليةCtrl-u- التحرك لأعلى نصف شاشةCtrl-d- التحرك لأسفل نصف شاشةCtrl-b- التحرك لأعلى شاشة كاملة واحدةCtrl-f- التحرك لأسفل شاشة كاملة واحدةzz- مركز المؤشر على الشاشة (يصبح السطر الحالي هو السطر الأوسط)zt- وضع المؤشر في أعلى الشاشةzb- وضع المؤشر في أسفل الشاشة
أوامر التحرير
i- دخول وضع الإدراج قبل المؤشر (لإدخال نص)I- دخول وضع الإدراج في بداية السطرa- دخول وضع الإدراج بعد المؤشر (إلحاق)A- دخول وضع الإدراج في نهاية السطرo- إدراج سطر جديد أسفل السطر الحالي والدخول وضع الإدراجO- إدراج سطر جديد فوق السطر الحالي والدخول وضع الإدراجr- استبدال حرف واحد تحت المؤشر (بدون الدخول إلى وضع الإدراج)R- دخول وضع الاستبدال (استبدال النص الحالي)x- حذف الحرف تحت المؤشرX- حذف الحرف قبل المؤشرdd- حذف السطر بالكامل (وتخزينه في السجل){number}dd- حذف عدة أسطرD- حذف من المؤشر إلى نهاية السطرyyأوY- نسخ السطر بالكامل{number}yy- نسخ عدة أسطرy$- نسخ من المؤشر إلى نهاية السطرp- لصق بعد المؤشرP- لصق قبل المؤشرu- التراجع عن آخر تغييرCtrl-r- إعادة (التراجع عن التراجع)~- تغيير حالة الحرف تحت المؤشر>>- زيادة تباعد السطر<<- تقليل تباعد السطر.- تكرار آخر أمر (قوي للغاية للتعديلات المتكررة)ccأوC- تغيير السطر بالكامل (حذف السطر والدخول إلى وضع الإدراج)cw- تغيير الكلمة (حذف الكلمة والدخول إلى وضع الإدراج)c$أوC- تغيير إلى نهاية السطرJ- دمج السطر الحالي مع السطر التالي
البحث والاستبدال
/pattern- البحث للأمام عن نمط معين?pattern- البحث للخلف عن نمط معينn- تكرار البحث في نفس الاتجاهN- تكرار البحث في الاتجاه المعاكس*- البحث للأمام عن الكلمة تحت المؤشر#- البحث للخلف عن الكلمة تحت المؤشر:%s/old/new/g- استبدال كلOccurrences من 'old' بـ 'new' في جميع أنحاء الملف:%s/old/new/gc- استبدال كلOccurrences مع تأكيدات:s/old/new/g- استبدال كلOccurrences في السطر الحالي:noh- مسح تمييز البحثgd- الانتقال إلى التعريف المحلي للكلمة تحت المؤشرgD- الانتقال إلى التعريف العالمي للكلمة تحت المؤشر
الوضع المرئي
v- دخول الوضع المرئي حرفياً (اختيار الأحرف)V- دخول الوضع المرئي سطرياً (اختيار الأسطر كاملة)Ctrl-v- دخول الوضع المرئي كتلة (اختيار كتل مستطيلة)gv- إعادة تحديد الاختيار المرئي السابقo- في الوضع المرئي: الانتقال إلى النهاية الأخرى للاختيارO- في وضع الكتل المرئية: الانتقال إلى الركن الآخر من الكتلةaw- اختيار كلمة (في الوضع المرئي)ab- اختيار كتلة باستخدام () (في الوضع المرئي)aB- اختيار كتلة باستخدام {} (في الوضع المرئي)at- اختيار كتلة باستخدام علامات HTML/XML (في الوضع المرئي)
عمليات الملفات
:e filename- تحرير ملف (إنشاء إذا لم يكن موجودًا):w- كتابة (حفظ) الملف:w filename- الكتابة إلى اسم الملف المحدد (حفظ باسم):q- الخروج (يفشل إذا كان هناك تغييرات غير محفوظة):q!- الخروج بدون حفظ (إلغاء التغييرات):wqأو:x- الكتابة والخروج:saveas filename- حفظ الملف باسم filename:r filename- إدراج محتويات الملف تحت المؤشر:r !command- إدراج مخرجات أمر shell تحت المؤشر
العمل مع النوافذ والعلامات
:splitأو:sp- تقسيم النافذة أفقيًا:vsplitأو:vs- تقسيم النافذة عموديًاCtrl-w h/j/k/l- التنقل بين النوافذ (يسار/أسفل/أعلى/يمين)Ctrl-w +/-- زيادة/تقليل ارتفاع النافذةCtrl-w </>- زيادة/تقليل عرض النافذةCtrl-w =- جعل جميع النوافذ بنفس الحجمCtrl-w o- جعل النافذة الحالية الوحيدة:tabnew- إنشاء علامة جديدةgt- الانتقال إلى العلامة التاليةgT- الانتقال إلى العلامة السابقة:tabclose- إغلاق العلامة الحالية:tabonly- إغلاق جميع العلامات الأخرى
إدارة الذاكرة المؤقتة
:ls- سرد جميع الذاكرة المؤقتة:b number- الانتقال إلى الذاكرة المؤقتة حسب الرقم:bn- الذاكرة المؤقتة التالية:bp- الذاكرة المؤقتة السابقة:bd- حذف الذاكرة المؤقتة (إغلاق الملف):bufdo command- تنفيذ الأمر على جميع الذاكرة المؤقتة:e #- تحرير الملف البديل (عادةً هو الملف الذي تم تحريره آخر مرة)
العلامات والقفزات
m{a-z}- تعيين علامة في الموقع الحالي (صيغة صغيرة للإشارة إلى محلي)m{A-Z}- تعيين علامة في الموقع الحالي (صيغة كبيرة للإشارة إلى عالمي)'{mark}- الانتقال إلى سطر العلامة`{mark}- الانتقال إلى موضع العلامةCtrl-o- الانتقال إلى موضع أقدم في قائمة القفزCtrl-i- الانتقال إلى موضع أحدث في قائمة القفز.- الانتقال إلى موضع آخر تغيير`.- الانتقال إلى الموضع الدقيق لآخر تغيير
كائنات النص والحركات
ci(- تغيير داخل الأقواسdi"- حذف داخل علامات الاقتباس المزدوجةyi]- نسخ داخل الأقواس المربعةva{- تحديد بصري حول الأقواس المتعرجة (بما في ذلك الأقواس)dap- حذف حول الفقرةcit- تغيير داخل علامة HTML/XMLdiw- حذف داخل الكلمةdaw- حذف حول الكلمة (بما في ذلك الفراغات)dab- حذف حول الكتلة (الأقواس)daB- حذف حول الكتلة (الأقواس المتعرجة)
أوامر الطي
zf- إنشاء طية (في الوضع المرئي)zo- فتح الطية تحت المؤشرzc- إغلاق الطية تحت المؤشرza- تبديل حالة الطية تحت المؤشرzR- فتح جميع الطياتzM- إغلاق جميع الطياتzj- الانتقال إلى الطية التاليةzk- الانتقال إلى الطية السابقة
ميزات مخصصة لـ Neovim
:terminalأو:term- فتح الطرفية المتكاملةCtrl-\ Ctrl-n- الخروج من وضع الطرفية إلى الوضع العادي:checkhealth- تشغيل أداة التشخيص لـ Neovim:lua require('telescope.builtin').find_files()- استخدام مكون Telescope للبحث عن الملفات:TSInstall language- تثبيت محلل treesitter للغة معينة:LspInfo- عرض حالة بروتوكول خادم اللغة:TSBufToggle highlight- تبديل تمييز treesitter:highlight- عرض مجموعات التمييز الحالية:Tutor- بدء البرنامج التعليمي المدمج لـ Neovim:help nvim-features- عرض ميزات Neovim المخصصة
ميزات متقدمة
q{a-z}- تسجيل ماكرو في السجل@{a-z}- تشغيل ماكرو من السجل@@- تكرار آخر ماكرو تم تشغيلهg&- تكرار آخر استبدال على جميع الأسطر:norm cmd- تنفيذ أمر في وضع الأوامر العادية على الأسطر المحددةgf- الانتقال إلى الملف تحت المؤشرCtrl-a- زيادة الرقم تحت المؤشرCtrl-x- تقليل الرقم تحت المؤشر:sort- فرز الأسطر المحددة!motion command- تصفية النص عبر أمر خارجي
الخاتمة
تتمثل قوة Neovim في مجموعة أوامره الواسعة، وسيساهم إتقان هذه الأوامر بشكل كبير في تحسين كفاءة التحرير لديك. تذكر أن الكفاءة تأتي مع الممارسة - ابدأ بإضافة بعض الأوامر الجديدة إلى سير عملك كل يوم، وسرعان ما ستصبح جزءًا من طبيعتك الثانية.
يساعدك أسلوب التحرير المتعدد الأوضاع في Neovim على إجراء عمليات تعديل دقيقة وفعالة بعد أن تتعلم استخدام هذه الأوامر. فكر في إنشاء تعيينات مفاتيح مخصصة للعمليات المتكررة لتعزيز إنتاجيتك بشكل أكبر.
مع زيادة كفاءتك، قد ترغب في استكشاف نظام المكونات لتوسيع إمكانيات Neovim. يمكن للمكونات الشائعة مثل Telescope للبحث الضبابي، وتكوينات LSP للذكاء البرمجي، وTreesitter لتحسين تظليل الصيغة أن تحول Neovim إلى بيئة تطوير متكاملة قويةtailored لتلبية احتياجاتك المحددة.
لأولئك الذين يعملون مع واجهات برمجة التطبيقات أثناء استخدام Neovim، لا تنسوا تجربة Apidog كبديل شامل لـ Postman. تكمل واجهته المبسطة وميزاته القوية نهج Neovim الذي يركز على الكفاءة لإنشاء بيئة تطوير مثالية.
سواء كنت تكتب الشفرات، أو توثق المشاريع، أو تعدل ملفات التكوين، توفر هذه الأوامر في Neovim الأساس لتجربة تحرير نصوص تتطور مع احتياجاتك وتتكيف مع سير عملك الشخصي. مع الوقت والممارسة، ستجد أن منحنى التعلم الأولي لـ Neovim يعود بفوائد كبيرة على الإنتاجية على المدى البعيد ومتعة التحرير.
تحرير سعيد!
