كيف سرق فيم قلبي

أعتقد أن الاسم يعني أننا سنتحدث اليوم عن 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

Source: https://habr.com/ru/post/ar426255/


All Articles