search - كيف نفعل حالة البحث غير حساس في فيم




vim case-insensitive (9)

أرغب في البحث عن كلمة حالة عليا ، على سبيل المثال COPYRIGHT في ملف. حاولت إجراء بحث مثل:

/copyright/i    # Doesn't work

لكنها لا تعمل. أعلم أنه في Perl ، إذا أعطيت العلم i في تعبير عادي ، فسوف يحول التعبير العادي إلى تعبير منطقي غير حساس لحالة الأحرف. يبدو أن Vim لها طريقتها الخاصة للإشارة إلى regex غير حساس لحالة الأحرف.


حسن vim[grep] الأمر القديم ..

:vimgrep /example\c/ &
  • \ c لحالة الأحرف
  • \ C لحالة الأحرف
  • ٪ هو البحث في المخزن المؤقت الحالي


أفضل استخدام \c في نهاية سلسلة البحث:

/copyright\c

ضع هذا الأمر في ملف vimrc الخاص بك

set ic 

دائما تفعل البحث غير حساس


فضلا عن اقتراحات ل \c و ignorecase ، أجد أن smartcase مفيد للغاية. إذا كنت تبحث عن شيء يحتوي على أحرف كبيرة ، فستقوم بإجراء بحث حساس لحالة الأحرف ؛ إذا كنت تبحث عن شيء صغير بحت ، فستفعل بحثًا غير حساس لحالة الأحرف. يمكنك استخدام \c و \C لتجاوز هذا:

:set ignorecase
:set smartcase
/copyright      " Case insensitive
/Copyright      " Case sensitive
/copyright\C    " Case sensitive
/Copyright\c    " Case insensitive

نرى:

:help /\c
:help /\C
:help 'smartcase'

كما اقترح آخرون:

:set ic

لكن الأشياء الرائعة يمكنك تبديل هذه الأوضاع مع:

:set ic!

كما ذكرhuyz السلوك المرغوب في بعض الأحيان هو استخدام عمليات البحث حساسة لحالة الأحرف ولكن بدائل الحساسة لحالة الأحرف. الحل الخاص بي لذلك:

nnoremap / /\c
nnoremap ? ?\c

مع هذا دائما عند ضرب / أو ? سيضيف \c للبحث غير حساس لحالة الأحرف.


يمكنك إصدار الأمر

:set ignorecase

وبعد ذلك ستكون عمليات البحث الخاصة بك غير حساسة لحالة الأحرف.


يمكنك استخدامها في vimrc تلك الأوامر:

  • set ignorecase - set ignorecase جميع عمليات البحث الخاصة بك غير حساسة لحالة الأحرف
  • set smartcase - سيكون بحثك حساسًا لحالة الأحرف إذا احتوى على حرف كبير

لقد كتبت مؤخرًا مقالة عن أوامر البحث في فيم (كلاً من الأوامر المضمنة وأفضل المكونات الإضافية للبحث بكفاءة).


يمكنك ضبط خيار ic في Vim قبل البحث:

:set ic

للرجوع إلى عمليات البحث الحساسة لحالة الأحرف ، استخدم:

:set noic

ic اختزال لـ ignorecase





case-insensitive