إخفاء جميع الخطوط المطابقة (غير) في Vim

StackOverflow https://stackoverflow.com/questions/862966

  •  21-08-2019
  •  | 
  •  

سؤال

هل من الممكن إظهار/إخفاء جميع الأسطر المطابقة في vi أو Vim؟لا تسليط الضوء ولكن فقط تظهر تلك الخطوط فقط.

على سبيل المثال لدي نص مع كلمة الكلمة ERROR.كيف أجعلها تظهر فقط الأسطر التي تحتوي على ERROR وكيفية إظهار الخطوط فقط بدون ERROR?

هل هناك حل دون حذف جميع الخطوط المطابقة ثم التراجع عنها؟

هل كانت مفيدة؟

المحلول

هل تعلم شيئا عن الأمر :global؟ هل هذا تفعل ما تريد؟

:g/ERROR

وعلى العكس:

:g!/Error

وأو مكافئ:

:v/Error

نصائح أخرى

هناك طريقة أخرى تعتمد على حالة الاستخدام الخاصة بك وهي الاستخدام vimgrep ونتائجه في إصلاح سريع.يمكنك القيام بما يلي:

:vimgrep pattern % سيبحث في الملف الحالي وينقلك إلى نتيجة البحث الأولى.والأهم من ذلك أنه يضع النتائج أيضًا في "قائمة الإصلاح السريع".

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

:colder سيسمح لك بالعودة إلى قوائم الإصلاح السريع الأقدم (نتائج vimgrep الأقدم).و :cnewer يتقدم إلى نتائج البحث الأحدث.

لاحظ أنه يتم أيضًا تحديث قائمة الإصلاحات السريعة عند التشغيل :make (ولهذا السبب يطلق عليه اسم الإصلاح السريع لإصلاح الأخطاء).وبسبب هذا، يوجد أيضًا بديل لقائمة الإصلاحات السريعة يسمى "قائمة المواقع".لاستخدامه بدلا من ذلك تستخدمه :lvimgrep, ، ثم استخدم الأوامر التي تبدأ بـ l بدلاً من الأوامر التي تبدأ بـ c - :lopen, :lolder, :lnewer.

هناك، بالطبع، الكثير الذي يمكنك القيام به.يرى :help quickfix لمزيد من المعلومات.

ملحوظة: لقد قلت أنك لا تريد اتباع نهج يقوم بحذف الأسطر ثم التراجع عنها.ولكن منذ أن قمت بوضع علامة g/ERRORكإجابة اعتقدت أنني سأشير إلى طريقة سريعة وقذرة وهي القيام بذلك g!/ERROR/d.يمكنك بعد ذلك التراجع عنه بسهولة باستخدام u.لمعلوماتك أيضًا، يمكنك القيام بذلك :set hlsearch لتسليط الضوء على الأنماط المتطابقة :g الأوامر.

ويمكنك استخدام

:g/ERROR/

وطباعة جميع الخطوط مع ERROR

وهناك أيضا البرنامج المساعد فيم الذي رأيته عدة مرات ولكن لم تستخدم: foldsearch: أضعاف بعيدا الأسطر التي لا تتطابق مع نمط معين

وأفضل طريقة للقيام بذلك هو ->

:vimgrep /something/g % | copen

وهذا سيفتح قائمة المباريات لكلمتك الرئيسية وأيضا سوف تظهر خطوط يضاهيه سوى في نافذة quickfix.

و:vimgrep /something/g % | copen يعمل رهيبة. أيضا :g/<pattern>/d يمكن استخدامها لحذف خطوط مع نمط

وربما كنت تعني القيادة في أقل السادس همة     و/ نمط / مما يدل على خطوط تحتوي على / نمط / (مثل البقرى).

في حالة استخدامك fzf يمكنك استخدام:

  • :Lines في كافة الملفات المفتوحة
  • :BLines فقط في المخزن المؤقت المفتوح
  • :Rg [pattern] استخدام ripgrep
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top