لفرز الخطوط في Vim، يمكنك استخدام المدمج في نوع أمر يقوم بفرز الخطوط حسب نطاق محدد. عادةً، يتم فرز كافة الأسطر الموجودة في المستند إذا لم يتم تحديد نطاق.
على سبيل المثال، إذا كنت تريد فرز المستند بأكمله، فاستخدم الأمر :نوع الأمر في الوضع العادي. من ناحية أخرى، إذا كنت تريد فرز خطوط معينة فقط، فاستخدم الملف :x، ص النوع الأمر، أين س و و تحديد النطاق من رقم السطر س ل و .
يعد الفرز إحدى الوظائف الحاسمة المطلوبة أثناء تحرير المستندات. Vim لا يقل عن أي محرر متقدم عندما يتعلق الأمر بتوفير ميزات فريدة مثل الفرز. لذلك، في هذا الدليل، سأشرح ميزات Vim المدمجة نوع الأمر، وكيفية استخدامه بطرق مختلفة لفرز الخطوط.
ملحوظة: يتم تنفيذ التعليمات والأوامر المذكورة في هذا الدليل على نظام التشغيل Linux (Ubuntu 22.04). Vim هو محرر نصوص متعدد المنصات، وستعمل هذه الأوامر دون أي خطأ على نظامي التشغيل macOS وWindows أيضًا.
فرز كافة الخطوط
لفرز جميع الأسطر في المستند، قم بتنفيذ الأمر نوع الأمر في الوضع العادي.
:نوع
بشكل افتراضي، نوع سيقوم الأمر بفرز الأسطر بترتيب معجمي.
لاحظ أنه إذا كان ملفك يحتوي على أسطر فارغة، فإن أمر الفرز سيضع الأسطر الفارغة في أعلى فرز النص الفعلي.
فرز الخطوط المحددة
لفرز الخطوط المحددة، علينا أولاً تحديدها في وضع التحديد. ولتمكين وضع التحديد، اضغط على في ، وحدد الخطوط باستخدام ح , ي , ك، و ل المفاتيح أو أزرار الاتجاه.
لدى Vim أيضًا وضع اختيار خاص بالخط يسمى الخط المرئي وضع. يضعط الخامس (التحول + الخامس) لتمكين الخط المرئي وضع لتحديد الخطوط.
بعد اختيار الخطوط ستظهر لك <، ' > في سطر الأوامر، الذي يمثل نطاق التحديد. ال ' < أشار إلى السطر الأول من الاختيار البصري، في حين أن ' > يشير إلى الأخير.
الآن، فقط اكتب نوع الأمر، واضغط على مفتاح العودة لتطبيق الفرز على الأسطر المحددة كما هو موضح في صورة GIF التالية.
فرز خطوط المدى
يمكن تمرير نطاق الخط قبل نوع أمر لفرز الخطوط. ال :عدد مجموعة يمكن استخدام الأمر لتنشيط رقم السطر في Vim، مما يسهل التعرف على رقم السطر.
على سبيل المثال، لفرز الأسطر من السطر رقم 1 إلى السطر رقم 4، استخدم الأمر :1,4 فرز يأمر.
: 1 , 4 نوع
كما يتبين في الإخراج أعلاه أنه يتم فرز الخطوط المحددة فقط.
فرز في الاتجاه المعاكس
كما ذكرنا سابقًا، فإن السلوك الافتراضي لـ نوع الأمر هو فرز الأسطر بالترتيب المعجمي. لفرز السطور بطريقة غير معجمية، قم بإضافة علامة التعجب ( ! ) بعد نوع يأمر.
:نوع !
الترتيب حسب اللغة
يتم تشغيل أجهزة الكمبيوتر في جميع أنحاء العالم، ولها لغات مختلفة ومجموعات مختلفة من الأحرف والقواعد. عندما يتعلق الأمر بفرز الترتيب حسب المسائل المحلية. على سبيل المثال، إذا كنت تعيش في اليابان وتريد فرز الخطوط حسب تلك اللغة، فيجب عليك تحديدها. ال نوع يوفر الأمر أيضًا تعيين خيار اللغة باستخدام ملف ل علَم.
للتحقق من لغة الترتيب الحالية، استخدم :لغة يأمر.
:لغة
للفرز باستخدام اللغة المحلية الحالية:
: الحظ ل
ملحوظة: قد لا يعمل هذا الخيار بشكل صحيح على الأنظمة المستندة إلى macOS.
الترتيب حسب الرقم
لفرز الأسطر بناءً على الرقم العشري الأول في السطر، استخدم الأمر ن العلم مع نوع يأمر. سيتم متابعة الفرز بترتيب تصاعدي افتراضيًا.
:فرز ن
للفرز بترتيب تنازلي، استخدم ! الرمز بعد الأمر.
:نوع ! ن
الفرق بين نوع و فرز ن هو أن أمر الفرز يقوم بفرز الأسطر بشكل معجمي، متجاهلاً الأرقام الموجودة فيها. إذا كنت تريد الفرز فيما يتعلق بالأرقام، فقم بإلحاق ن وضع علامة مع أمر الفرز.
على سبيل المثال، تحتوي الأسطر الموجودة في الملف التالي على أحرف وأرقام أيضًا. عندما نقوم بفرزها عن طريق تطبيق نوع الأمر فقط، سيتم فرز هذه الأسطر أبجديًا. ومن ناحية أخرى، تطبيق فرز ن أمر فرز الأسطر حسب الرقم كما هو موضح في الصورة التالية.
بعض الخيارات الأخرى للفرز الرقمي مذكورة في الجدول التالي.
F | تعويم فرز الأرقام |
ب | فرز الأرقام الثنائية |
يا | فرز الأرقام الثمانية |
ح | فرز الأرقام السداسية العشرية |
الترتيب حسب العلامات
في Vim، تُستخدم العلامات لتعيين مواضع محددة في الملف لتسهيل التنقل في ملف يحتوي على مئات الأسطر. يمكن استخدام العلامات لإجراء عملية فرز باستخدام نوع يأمر.
لنفترض أنك قمت بتعيين علامتين أ و ب .
لذلك، لفرز كافة الخطوط من العلامة أ لتحديد ب ، استخدم الأمر التالي.
: 'أ،' ب نوع
الاقتباس المفرد ( ' ) يستخدم للوصول إلى العلامات.
فرز حسب التعبير العادي (RegEx)
يعد التعبير العادي (RegEx) إحدى الطرق الشائعة لفرز الخطوط عن طريق تحديد نمط باستخدام نوع يأمر.
على سبيل المثال، لفرز الأسطر فيما يتعلق بعمود يحتوي على حروف أبجدية وأرقام، استخدم الأمر /[أ-ي]*[0-9]+/ نمط مع نوع يأمر. ال ص العلم بعد نوع يتم استخدام الأمر لتوجيه الأمر للفرز بناءً على النمط المذكور.
:فرز ص / [ من الألف إلى الياء ] * [ 0 - 9 ] + /
كما ترون في الصورة أعلاه، تم ترتيب العمود الأخير أبجديًا. لفرز العمود عدديا، ما عليك سوى إدراج ن علَم.
ملحوظة: لقد تخطيت الأسطر الأولى من خلال تحديد النطاق من السطر 2،5.
ال ص تسمح لك العلامة بفرز الملف حسب الأنماط المحددة. بدون ال ص العلم، سيقوم أمر الفرز بفرز كافة الأسطر التي لا تتطابق مع النمط.
إزالة الخطوط المكررة
أسرع طريقة لإزالة الأسطر المكررة في الملف هي استخدام نوع الأمر مع في العلم الذي يمثل الفريد.
:متنوعة ش
لاحظ أن استخدام هذه الطريقة لإزالة الخطوط المكررة سيؤدي أيضًا إلى فرز الخطوط، والتي قد تكون غير مرغوب فيها في العديد من المواقف. استخدم طرقًا بديلة، مثل regex، لإزالة الأسطر المكررة في ملف دون الحاجة إلى الفرز.
فرز الخطوط على أساس عمود
هناك طريقتان لفرز الخطوط في Vim بناءً على العمود. تستخدم الطريقة الأولى أمر الفرز الخارجي لنظام Linux، بينما تستخدم الطريقة الثانية أمر الفرز المدمج.
من السهل تنفيذ الأمر الخارجي مقارنةً بأمر الفرز الافتراضي. لاحظ أن الأوامر الخارجية ليست الأوامر الافتراضية لـ Vim. يعني أي أمر يدعمه نظام التشغيل.
دعونا نفهم كيف يعمل في فيم.
لاستخدام أي أمر خارجي في Vim، ! يتم استخدام الرمز قبل هذا الأمر. افترض أن لدينا ملف مفصول بفواصل (CSV) ونريد فرز الملف بالنسبة إلى العمود الثالث. سيكون الأمر
: %! نوع -ر '،' -k3
ال % يشير إلى المخزن المؤقت بأكمله كتحديد. ال -ر تُستخدم العلامة لتحديد فاصل الحقل، والذي يمكن أن يكون فاصلة أو نقطتين أو حتى مسافة. ال -ك العلم هو المفتاح الذي يشير إلى الموضع في السطر، و k2 يعني الحقل الثاني بعد المحدد المحدد.
في المثال، لقد ذكرت النطاق بدلا من % لتخطي السطر الأول.
: 2 , 5 ! نوع -ر '،' -k3
الخارجي نوع يمكن أن يكون الأمر مفيدًا بعدة طرق أخرى أيضًا لأنه يوفر خيارات فرز متنوعة مثل الخلط والفرز العشوائي والدمج. لمعرفة المزيد حول أمر الفرز في Linux، استخدم ملف مساعدة الرجل يأمر.
من ناحية أخرى، لاستخدام Vim المدمج نوع الأمر، سيتم استخدام نمط التعبير العادي مع أمر الفرز.
:نوع / \الخامس^ ( . { - } , ) { 2 } /
في الأمر أعلاه:
- \في يمثل علامة التبويب العمودية
- ^ يشير إلى بداية السطر
- (.{-},) هي المجموعة التي سوف فيها .{-} هي نسخة غير الجشعة من .* و , هو مجال الانفصال
- {2} يمثل أول عمودين يجب تخطيهما
ويمكن ملاحظة أن ص لا يتم استخدام العلامة مع النمط، مما يعني أن النمط سيتخطى أي عمود مطابق ويفرز الأعمدة بعد النمط. في هذه الحالة، سيتم فرز الملف بناءً على العمود الثالث. مرة أخرى في المثال التالي، لتخطي السطر الأول، استخدمت النطاق 2،5.
التمييز الأساسي بين .* و .{-} هل هذا هو .{-} ستعالج الخوارزمية الأقصر تطابقًا أولاً، بينما .* سوف تتطابق قدر الإمكان. على سبيل المثال، في سلسلة wxyz س.*ص سوف تتطابق مع السلسلة بأكملها بينما س.{-}ص سيطابق xy فقط.
فرز الأسطر غير حساس لحالة الأحرف
إذا قمت بفرز الأسطر التي تبدأ بأحرف كبيرة وسفلية، فسيقوم أمر الفرز بفرز الأسطر بالأحرف الكبيرة أولاً. حسنًا، لتجاهل حساسية حالة الأحرف، استخدم أنا علَم.
كما ترون في الصورة التالية، الخطوط غير المصنفة والمرتبة مع كل من :نوع و :فرز ط الأوامر.
خاتمة
يمكن إجراء الفرز في Vim بسهولة باستخدام Vim المدمج نوع يأمر. بشكل افتراضي، يتم فرز الأسطر أبجديًا، ومع ذلك، إذا كنت تريد الفرز العكسي، فاستخدم الزر! التوقيع بعد الأمر. عادةً ما يقوم أمر الفرز بفرز المخزن المؤقت بأكمله؛ يمكن أيضًا تعريف النطاق باستخدام فاصلة. ال ن يتم استخدام العلم للفرز الرقمي، بينما يستخدم لإزالة الخطوط المكررة في يستخدم العلم. علاوة على ذلك، لتعزيز عملية الفرز الخارجية نوع يمكن أيضًا استخدام الأمر في Vim.
لمعرفة المزيد حول الفرز في Vim، قم بتشغيل :مساعدة الفرز يأمر.