يعاني كثير من المبرمجين من بطء أو تعقيد سير العمل داخل محررات الأكواد، حتى مع قوة الأدوات التي يستخدمونها يوميًا. ورغم أن Neovim يُعد من أكثر المحررات مرونة وقابلية للتخصيص، إلا أن الاستفادة الحقيقية منه لا تكتمل دون اختيار الإضافات المناسبة.

الإضافات الصحيحة يمكنها تحويل Neovim من محرر نصوص بسيط إلى بيئة تطوير متكاملة، تساعد على تقليل التشتت، وتسريع كتابة الشيفرة، وتحسين التنقل وإدارة المشاريع. المشكلة ليست في كثرة الإضافات، بل في معرفة ما يخدم العمل فعليًا.
في هذا المقال نسلّط الضوء على مجموعة إضافات أثبتت فعاليتها في تحسين سير عمل البرمجة، وساعدت على حل مشكلات عملية تواجه المبرمجين أثناء التطوير اليومي.
يُعدّ Neovim برنامجًا قويًا للغاية جاهزًا للاستخدام، ولكن الاستفادة القصوى منه لا تعتمد على تكديس الإضافات، بل على اختيار الإضافات المناسبة. الإضافات المذكورة أدناه ليست شائعة لمجرد أنها رائجة، بل لأنها تُعالج مشاكل مُحددة تظهر بعد قضاء وقت كافٍ داخل المُحرر (عادةً ما يكون أطول مما كنت تتوقع).
لا تُعدّ أيٌّ من هذه الإضافات ضرورية لاستخدام Neovim بشكلٍ صحيح. تكمن أهميتها في إتاحة الوصول إلى أجزاء من المُحرر لا تُصبح ضرورية إلا عند محاولة الاستفادة القصوى منه. تفترض خطوات التثبيت في الأقسام التالية استخدام Lazy (الذي يُخلط غالبًا مع LazyVim)، وهو مدير إضافات شائع الاستخدام لـ Neovim.
Atone
أولًا، كان اكتشافًا غير متوقع، إذ لم أكن أتوقع وجود برنامج كهذا بهذه البساطة وسهولة الاستخدام (مع الحفاظ على تماسكه). يعرض برنامج Atone سجل التراجع على شكل شجرة يمكنك استكشافها، بدلًا من التراجع المتكرر حتى الوصول إلى النتيجة المطلوبة.
لا شك أنك مررت بهذه التجربة، حيث تُجري سلسلة من التعديلات، وتستمر في العمل لفترة، ثم تدرك أن تعديلًا سابقًا كان أفضل أو على الأقل أقل خطأً. في هذه الحالة، لا يمكنك التراجع. يحل Atone هذه المشكلة تحديدًا من خلال عرض كل فرع من فروع التعديلات، مما يتيح لك التنقل بين سجلات مختلفة لنفس الملف واستعادته إلى الحالة التي تريدها بالضبط.
استخدامه سهل للغاية، ما عليك سوى تشغيل الأمر :Atone، وستُفتح نافذة جانبية تعرض شجرة التراجع. يمكنك التنقل بين الفروع باستخدام مفاتيح الأسهم، واستعادة الحالة باستخدام اختصار لوحة المفاتيح المُتاح.
التثبيت بسيط للغاية:
return {
"XXiaoA/atone.nvim",
cmd = "Atone",
opts = {},
}



