কীভাবে ভিমের ক্ষেত্রে সংবেদনশীল অনুসন্ধান করবেন


1649

আমি একটি বড় আকারের শব্দটি অনুসন্ধান করতে চাই, উদাহরণস্বরূপ কোনও ফাইলের কপিরাইট। আমি এর মতো একটি অনুসন্ধান করার চেষ্টা করেছি:

/copyright/i    # Doesn't work

কিন্তু এটি কাজ করে না। আমি জানি যে পার্লে, আমি যদি iপতাকাটিকে একটি রেজেক্সে পরিণত করি তবে এটি রেজেক্সকে কেস-সংবেদনশীল রেজেক্সে পরিণত করবে। দেখে মনে হচ্ছে কেস-সংবেদনশীল রেজেক্স নির্দেশ করার জন্য ভিমের নিজস্ব উপায় রয়েছে has

উত্তর:


2106

আপনি \cপ্যাটার্নে যে কোনও জায়গায় পালানোর ক্রমটি ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:

/\ccopyrightবা /copyright\cএমনকি/copyri\cght

বিপরীতমুখী করতে (কেস সংবেদনশীল মিল), \Cপরিবর্তে (মূলধন সি) ব্যবহার করুন।


516
এছাড়াও, \cপ্যাটার্নে যে কোনও জায়গায় উপস্থিত হতে পারে, সুতরাং আপনি যদি কোনও প্যাটার্ন টাইপ করেন এবং তারপরে সিদ্ধান্ত \cনেন যে আপনি কেস-সংবেদনশীল অনুসন্ধান চান, তবে শেষে একটি যুক্ত করুন ।
অলোক সিংহল

268
আমি set ignorecaseআমার ভিএমআরসি \C-তে কেস-সংবেদনশীল অনুসন্ধানের জন্য যুক্ত করতে চাই এবং আমি @ অলোকসিংহলের উল্লেখ অনুসারে কেস-সংবেদনশীল অনুসন্ধান করতে ব্যবহার করতে পারি।
নিক ম্যাককার্দি

163
এছাড়াও set smartcaseযদি আপনি কোনও মূল অক্ষর ব্যবহার করেন তবে স্বয়ংক্রিয়ভাবে কেস-সংবেদনশীল অনুসন্ধানে চলে যাবে।
জাজ

82
জাজের মন্তব্যে শুধু যুক্ত করতে চাই। ইতিমধ্যে সক্রিয় থাকলে set smartcaseকেবল তখনই প্রযোজ্য set ignorecase। আমি কিছুক্ষণ এই জন্য স্টাম্পড ছিল। ভিম টিপস দেখুন ।
টান ওয়াং

12
@ কোডারমি, এটি মূলধন, \cবনাম\C
অ্যারন ম্যাকডেইড

680

পাশাপাশি জন্য প্রস্তাবনা হিসাবে \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'

83
সমস্যাটি ignorecaseহ'ল এটি অনুসন্ধানের পাশাপাশি বিকল্পগুলিও প্রভাবিত করে। আমি দেখতে পেয়েছি যে ডিফল্টরূপে (স্মার্ট) কেস-সংবেদনশীল অনুসন্ধানগুলি কিন্তু কেস-সংবেদনশীল বিকল্পগুলি পাওয়া অর্থপূর্ণ। তবে এটি করার কোনও উপায় নেই যা আমি জানি।
হুইজ

150
smartcaseকাজের জন্য এটি লক্ষণীয় যে আপনারও প্রয়োজন set ignorecase। দুর্দান্ত টিপ, ধন্যবাদ!
স্কিলড্রিক

12
আমি বিশ্বাস করি আপনি শুধু বদল জন্য আপনার অনুসন্ধান অভিব্যক্তি একটি \ সি ব্যবহার করতে পারে, এরকম: :%s/lowercasesearch\C/replaceString/g। এটি আপনার পছন্দসই ডিফল্ট কার্যকারিতা তৈরি করে না, তবে অনুসন্ধানের সময় স্মার্টকেস থেকে উপকৃত হওয়ার পরে এটি প্রতিস্থাপনের ক্ষেত্রে কেস-সংবেদনশীলতা জোর করার অনুমতি দেয়।
অ্যান্টনি ডিসান্টি

23
প্যাটার্নটি কেস-সংবেদনশীল হতে বাধ্য করার জন্য আপনি বিকল্পটিকে Iপতাকাও সেট করতে পারেন । ভালো লেগেছে :%s/lowercasesearch/replaceString/gI
ররি ও'কেন

1
সহায়তা পৃষ্ঠা থেকে নোট (আপনি যদি আমার মতো "*" আসক্ত হন তবে দরকারী):After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>.
মেসেলা

290

আপনি icঅনুসন্ধানের আগে ভিমে অপশনটি সেট করতে পারেন :

:set ic

কেস-সংবেদনশীল অনুসন্ধানগুলিতে ফিরে যেতে ব্যবহার করুন:

:set noic

ic সংক্ষিপ্ত ignorecase


এছাড়াও আপনার একমাত্র বিকল্প যদি আপনি দুর্ভাগ্যজনক এখনও ভিমের পরিবর্তে ভী ব্যবহার করতে পারেন। \cvi তে কাজ করে না
bluppfisk

61

আপনি কমান্ড জারি করতে পারেন

:set ignorecase

এবং এর পরে আপনার অনুসন্ধানগুলি কেস-সংবেদনশীল হবে।


50

সংবেদনশীল এবং সংবেদনশীল অনুসন্ধানের মধ্যে স্যুইচ করতে আমি আমার .vimrc এ এই ম্যাপিংটি ব্যবহার করি

nmap <F9> :set ignorecase! ignorecase?


15
হ্যাঁ, তবে ignorecase?আপনাকে পতাকাটির বর্তমান অবস্থা দেখায়। (কমান্ড লাইনে)
বোরিস ব্রডস্কি

1
ধন্যবাদ! আমার কাছে, এটি পৃষ্ঠায় সর্বাধিক দরকারী উত্তর: আপনি সঠিক মুহুর্তে কী সন্ধান করছেন তার উপর নির্ভর করে দুটি পদ্ধতির মধ্যে দ্রুত টগল করার একটি উপায়।
বেন হিলিয়ার

30

আপনি আপনার vimrcসেই আদেশগুলি ব্যবহার করতে পারেন :

  • set ignorecase - আপনার সমস্ত অনুসন্ধান কেস সংবেদনশীল হবে
  • set smartcase - আপনার সন্ধান সংবেদনশীল হবে যদি এতে বড় হাতের অক্ষর থাকে

আপনি যা সরবরাহ করে ignorecaseতা ব্যবহার করতে চাইলে আপনাকে সেট করতে হবে smartcase

আমি সম্প্রতি Vim অনুসন্ধান কমান্ডগুলি সম্পর্কে একটি নিবন্ধ লিখেছি (কমান্ড এবং দক্ষতার সাথে অনুসন্ধানের জন্য সেরা প্লাগইন উভয়)।


1
দেখে মনে হচ্ছে যে set smartcaseআমি যদি বড় হাতের অক্ষর না ব্যবহার করি তবে সংবেদনশীল অনুসন্ধানগুলি করা যায় না ... এটি কি স্বাভাবিক?
canita

1
ঠিক আছে, কেবল নীচে পড়ুন যে এটির কাজ চালানোর জন্য আপনাকে উভয় উপেক্ষা এবং স্মার্টকেস সেট করতে হবে। এর জন্যে দুঃখিত!
caneta

24

অন্যরা যেমন পরামর্শ দিয়েছে:

:set ic

তবে দুর্দান্ত জিনিস হ'ল আপনি এ জাতীয় মোডগুলি সাথে টগল করতে পারেন:

:set ic!

18

এই কমান্ডটি আপনার ভিএমআরসি ফাইলে রাখুন

set ic 

সর্বদা ক্ষেত্রে সংবেদনশীল অনুসন্ধান করুন


4
আমি জানি না কেন তবে আমার ভিম এটির মোকাবেলায় ডিফল্টরূপে কেস-সংবেদনশীলতে সেট করা আছে। ব্যবহার set noic
ব্যবহারকারী 1510539

18

ভাল পুরানো vim[grep]কমান্ড ..

:vimgrep /example\c/ &
  • \c সংবেদনশীল ক্ষেত্রে
  • \C সংবেদনশীল ক্ষেত্রে
  • % বর্তমান বাফার অনুসন্ধান করা হয়

এখানে চিত্র বর্ণনা লিখুন



আমি অনুমান করি তার %পরিবর্তে তারা বোঝাতে চেয়েছিল %
ওরিফিশ

15

আমি \cঅনুসন্ধানের স্ট্রিংয়ের শেষে ব্যবহার করতে পছন্দ করি :

/copyright\c

10

@ হুইজ হিসাবে উল্লেখ করা হয়েছে মাঝে মাঝে কাঙ্ক্ষিত আচরণটি কেস-সংবেদনশীল অনুসন্ধানগুলি ব্যবহার করে তবে কেস-সংবেদনশীল বিকল্প ব্যবহার করে। এর জন্য আমার সমাধান:

nnoremap / /\c
nnoremap ? ?\c

আপনি যখন আঘাত করবেন /বা সর্বদা ?এটি \cকেস-সংবেদনশীল অনুসন্ধানের জন্য যুক্ত করবে তখনই With


1
কোনও খারাপ পরামর্শ নয়, তবে কী এটি আপনাকে smartcaseবিকল্পটি ব্যবহার করা থেকে বিরত রাখে ?
ট্রেবার রুড

দেখে মনে হচ্ছে এটি \ সি থেকে ওভাররাইড হওয়ার পরেsmartcase
ম্যাথু উ

4

ভিমে 2 টি মোড রয়েছে

1. সম্পাদনা মোড

  1. সাধারণ মোড (Esc)

অনুসন্ধান সাধারণ মোডের জন্য কাজ করবে

সংবেদনশীল ক্ষেত্রে / \ সি

/ \ সি অনুসন্ধান


ভিজ্যুয়াল মোডের কী হবে?
ব্যবহারকারী 202729

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.