أعتقد أن الاسم يعني أننا سنتحدث اليوم عن Vim! ما هذا لماذا هذا مطلوب؟ كيفية استخدامه؟
كثير من الذين قرأوا مقالتي السابقة يمكن أن يصرخوا

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

يطرح سؤال عادل: "لماذا استخدام البرنامج القديم في عام 2018 ، وحتى بدون واجهة رسومية؟" الجواب بسيط - إنه مريح. أوافق ، لذلك يمكنك أن تقول على الإطلاق عن أي محرر ، ولكن لا تزال هذه الحالة غير عادية للغاية.
بادئ ذي بدء ، لا ، فيم ليس عمره - يبلغ من العمر 27 عامًا فقط. وهو وريث محرر السادس الكلاسيكي. تتكيف بشكل أفضل مع الأنظمة الحديثة ولديها مجموعة واسعة من القدرات. وبعبارة أخرى ، فإن اسمها (Vi Improved) له ما يبرره تمامًا. أريد أيضًا أن أشير إلى أن هناك تطبيقًا أحدث للأفكار نفسها - neovim.
ما الفرق؟

إذا نظرت إلى مقاطع فيديو مختلفة على Youtube حول هذا الموضوع ، فعندئذٍ يتحدثون في الغالب عن المكون الميتافيزيقي للمسألة. أي حول الاختلاف في الأيديولوجيات ، وطرق تطوير المشاريع ، وما شابه. لا توجد اختلافات جوهرية للمستخدم النهائي. ومع ذلك ، يمكن توضيح نقطتين: بعض المكونات الإضافية أسهل في التثبيت في neovim ، بالإضافة إلى فصل واجهة المستخدم عن جوهر البرنامج. سأشرح بمزيد من التفصيل عن الثاني.
أعتقد أنه بينكم سيكون هناك أشخاص (وقطط) يستجيبون دائمًا للعرض للتبديل إلى محرر آخر مثل هذا:

حسنا ، يسرع neovim للإنقاذ! بفضله ، يوجد الآن في العديد من أجهزة IDE الحديثة و "أجهزة الكمبيوتر المحمولة المبرمجة" محاكي لوظائف Vim. وبالتالي ، يمكنك الاستمرار في استخدام نص Sublime المفضل لديك أو CLion مع جميع المكونات الإضافية الخاصة بك ، وفي الوقت نفسه زيادة إنتاجيتك بشكل ملحوظ من حيث كتابة التعليمات البرمجية ، والبدء في الحصول على المزيد من المتعة منه (المزيد عن هذا لاحقًا). إنها أيضًا طريقة جيدة لزيادة الأسئلة الشائعة ، لأن "المتسللين الحقيقيين يستخدمون إما Vim أو Emacs".
"حسنًا ، قررت أن أحاول دراسة بعض المحررين التقليديين ، ولكن لماذا فيم وليس على الأقل نفس إيماكس؟" حسنًا ، هذه قضية مثيرة للجدل. Emacs هو حل أكثر قوة يمكنه القيام بأي شيء (يمكنك حتى لعب ثعبان فيه). ومع ذلك ، قوته هي أيضا ضعفه. إنها واسعة النطاق ومعقدة للغاية ، مما يترجم إلى تعقيد أعلى للتطور والالتزام بالحديد. قد تبدو الحجة الأخيرة سخيفة الآن ، لأنها أيضًا محرر وحدة تحكم ، ولكن في عدد من المهام (مثل الاتصال عن بعد عبر SSH) ، قد تتحول هذه النقطة إلى أهمية حاسمة.
(مستخدمو إيماك بعد هذه السطور)حسنًا ، اكتشفنا ما هو Vim ، ولكن يبقى فهم سبب وكيفية استخدامه.
"لماذا أحب الجميع فيم كثيرًا لدرجة أنهم أضافوه كلما كان ذلك ممكنًا وحتى في أي مكان مستحيل؟" (بالمناسبة ، لدى Emacs أيضًا. يبدو لي أكثر فأكثر أنه من الأسهل سرد الأشياء غير الموجودة ، ولكن هذا خارج الموضوع). الإجابة على هذا السؤال ليست صعبة - فلسفته.
لا يمكنك فقط بدء وكتابة النص في VIM. هناك وضع منفصل لهذا - "وضع إدراج". عند بدء تشغيل البرنامج ، ستجد نفسك في الوضع العادي ، حيث يتم منحك الفرصة لكتابة أوامر لتحرير النص والتبديل بين الأوضاع المختلفة لهذا المحرر. "لكن هذا غير مريح! أريد فقط كتابة النص! " من الناحية التقنية البحتة ، فإن الآلة الكاتبة مناسبة أيضًا لهذه المهمة ، لكنني سأستمر في الإجابة دون سخرية. إذا ركز معظم المحررين على كتابة التعليمات البرمجية ، فإن Vim تحولها إلى تحرير النص وتقوم بذلك بطريقتها الخاصة.
(في الواقع ، تحتوي هذه الصورة على نص فرعي عميق. إذا كانت هناك دقيقة ، فاقرأ عن سلسلة Persona من ألعاب تقمص الأدوار اليابانية.)أهم شيء يجب فهمه عند تعلم أوامر Vim هو أنها غير معزولة في الغالب. هذا ، ضع في اعتبارك اللغة بأكملها ، حيث يتم تقسيمها إلى أفعال وأسماء وصفات (معدلات). في الواقع ، على الرغم من حقيقة أن كل فريق هو شخصية واحدة ، فإن كل منهم لديه نظير للكلمة في اللغة الإنجليزية ، ويمكن ترجمة تسلسلهم إلى جملة كاملة!

دعنا نلقي نظرة على مثالين ، ولكن أولاً نحمل صورة أخرى (هذه المرة مع شيء مفيد):

1).
d2w
==> حذف كلمتين.

2).
AMew<Esc>
==> إلحاق نهاية السطر "Mew" والعودة إلى الوضع العادي.

3).
f(ci(Pakahontas<Esc>
==> ابحث عن زوج من الأقواس وقم بتغيير محتواها الداخلي إلى "Pakahontas" والعودة إلى الوضع العادي.

ترى؟ لا يوجد شيء معقد على الإطلاق! بالطبع ، يتطلب هذا النهج التعود والممارسة المستمرة ، حيث لا يمكنك فقط تعلم جميع المجموعات - تحتاج إلى الشعور بها. لا أقوم بكتابة رمز في فيم ليس لأنه أسرع في الكتابة (أنا بالفعل اكتب ببطء ، كما قد لاحظت ، ولا أعرف كيف أعمى) ، ولكن لأنه أكثر طبيعية. بدلاً من كومة من ctrl أو shift أو alt (هناك أوامر معهم ، ولكن هناك القليل منها) ، وهي لغة تحرير مفهومة للغاية ، والأهم من ذلك ، لغة تحرير إنسانية.
(بشكل غير متوقع ، أليس كذلك؟)ولكن قبل أن ننتهي ، أريد إدراج بعض التعليقات:
1. على الرغم من حقيقة أنه في Vim يمكنك استخدام الأسهم والماوس (يتم تكوين الثاني في ملف "~ / .vimrc") ، لا ينصح بذلك تمامًا. يحتوي على بحر من الأوامر الأكثر إثارة لتحريك المؤشر فوق النص (والشاشة) ، فقط لم تعد بديهية مثل أوامر التحرير وعليك أن تحشرها.
(حان وقت القرصنة!)II. في Vim ، كما هو الحال في العديد من المحررين الآخرين ، هناك وضع أوامر يتم استدعاؤه عند الضغط على مفتاح ":". الرمز "!" له معنى مزدوج فيه:
أ) إذا كان يقف بعد ":" مباشرة ، فقد يتبعه أمر كامل للمحطة. على الرغم من تكرار بعضها كأوامر من المحرر نفسه ، فقد يكون من المفيد ، على سبيل المثال ، استدعاء المترجم.
ب) إذا كان يقف بعد الأمر Vim ، فسيقوم بتنفيذه دون حفظ التغييرات على الملف. بالمناسبة ، هذا مرتبط بخلل واحد (أو ، إذا كنت تريد ، ميزة) - إذا فعلت شيئًا مع النص ، حتى إذا قمت بإعادته إلى حالته الأصلية ، فلن يتم إغلاق المحرر إذا لم تقم بحفظه أو تحديده "!".
(هل شعرت بالفعل كيف تهتم Vim ببياناتك؟)ثالثًا. يمكن تغيير إعدادات المحرر والمكونات الإضافية المختلفة أعلاه "~ / .vimrc" أعلاه. هناك إعدادات لكل ذوق ولون ، إلا أنها ليست في الملف نفسه. بشكل افتراضي ، يكون فارغًا. للعثور على المعلمات التي تحتاج إليها ، استخدم الأمر ": help". بعد ذلك ، يمكنك إضافة اسم مكون معين أو مكون إضافي للانتقال مباشرة إلى المعلومات التي تهتم بها. ولكن ، بالطبع ، ستكون الإنترنت أكثر راحة في هذا الصدد.
IV. هناك عدة أوامر في Vim (على سبيل المثال ، "q") تم تصميمها ليتم تعريفها بواسطة المستخدم (في "~ / .vimrc"). ومع ذلك ، إذا حاولت تعيين قيمة لهم مباشرة ، فسيتم تشغيلها بتأخير ، حيث يتوقعون أمرًا ثانيًا بعدهم (يجب تحديدهم). إذا كنت بحاجة إلى أمر بزر واحد ، أوصي باستخدام 's' لأنه وظيفتها هي عمليا نفس 'ج'. يمكن استبدال البديل ، إذا جاز التعبير.
V. فريق "." يمتلك قوة لا تصدق في هذا المحرر. إنها تعرف كيف تكرر الأمر السابق (أو جملة كاملة منهم). من حيث المبدأ ، إذا كنت لا ترغب في تسجيل ماكرو ، فهي أداة ممتازة لملء الكود بـ "فطائر اللحم":
سادسا. يذكرني Vim ببعض أجهزة الكمبيوتر القديمة 48K ZX Spectrum. لديهم أيضا أوامر زر واحد ، لكنها كانت للغة البرمجة الأساسية. وبالتالي ، حاول المطورون تقليل كمية ذاكرة الوصول العشوائي المطلوبة للبرنامج.

كمواد تدريبية ، أوصي برنامج vimtutor. من الناحية التقنية البحتة ، يفتح ببساطة ملفًا يحتوي على برنامج تعليمي قصير في Vim ، لكن هذا النهج يسمح لك بالتدريب بالتوازي مع دراسة الجزء النظري. ثم تدرب ، تدرب ، ومرة أخرى ، تدرب!
حسنًا ، في الواقع ، كل ما أردت قوله عن فيم. بصراحة ، أنا مسرور تمامًا بهذا المحرر. فلسفته معدية للغاية ومماثلة لنظام يونكس ككل (كل شيء بسيط وواضح ومنطقي ، لكنه يتطلب التعود والتذكر). لذلك ، إذا كنت تبحث عن محرر نص جيد أو ترغب في الحصول على تجربة تحرير نص جديدة ، فلن تجد مكانًا أفضل.
أتمنى لك السعادة والصحة والكيدي ألا تسقط!
مصادر1) حول الموضوع:
أ) في الواقع ، vimtutor
ب) تم التقاط الصورة بلوحة المفاتيح من موقع
viemuج) قرأت أيضًا
ويكيبوك حول هذا الموضوع.
2) خارج الموضوع:
أ) حول سلسلة بيرسونا على يوتيوب ، هناك العديد من مقاطع الفيديو مع تحليلها التفصيلي. ربما تكون الأكثر قيمة هي مقاطع الفيديو من
مكان Filinov's kakala ، لكن المؤلف توقف حتى الآن في الجزء الثاني (هذا ليس خطأ مطبعي).
ب) حول الطيف سجلت مؤخرًا فيديو جيدًا
ديمتري مويسيفج) مؤلف الصورة من صورة ملفي الشخصي - Fluff-Kevlar