> For the complete documentation index, see [llms.txt](https://sh.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sh.howtocode.dev/3.0.0.part3intro/3.2.0.0.texteditors/3.2.2.0.vim/3.2.2.3.vim-search-and-replace.md).

# ভিম: সার্চ এ্যান্ড রিপ্লেস

ভিমের সার্চ ও রিপ্লেসের ক্ষমতা প্রশংসনীয়। তারমধ্যে প্রয়োজনীয়টুকু আমরা দেখবো।

## লাইনের মধ্যে সার্চ করা

**f** চেপে আমরা কোনো লাইনের মধ্যে কোনো নির্দিষ্ট অক্ষর খুঁজতে পারি। যেমন `fa` লিখলে লাইনে কার্সরের পরে প্রথম যেখানে 'a' অক্ষরটি আছে সেখানে কার্সর নিয়ে যাবে। আমরা আবার '**;**' চেপে পরের 'a' এর কাছে কার্সর নিতে পারি।

## ফাইলের মধ্যে সার্চ করা

কোনো ফাইলে নির্দিষ্ট শব্দ বা শব্দগুচ্ছ খুঁজে নিতে '**/**' ব্যবহার করা হয়। '/' চাপলে নীচে '/' লেখা আসবে। তারপর যেটি খুঁজতে হবে সেটি লিখে এন্টার দিলে কার্সর সেখানে চলে যাবে। তারপরের সার্চ স্ট্রিংটির কাছে যেতে হলে আমরা 'n' চেপে সার্চের পুনরাবৃত্তি করা যেতে পারে।

## গ্লোবাল সার্চ এবং রিপ্লেস

সার্চ-রিপ্লেসকে ভিমের ভাষায় সাবস্টিটিউশন। একটা উদাহরণ দেখা যাক:

```
me@howtocode-pc:~$ vim vimfoo.rc
```

আমাদের আগের সেভ করা ফাইলটিতে লেখা ছিল:

```
Best of luck for Tigers in ICC World Cup 2015.
```

আমরা যদি 'Tigers' কে 'TIGERS' দ্বারা প্রতিস্থাপিত করতে চাই তাহলে কমান্ড মোডে প্রথমে কনসোল ওপেন করবো '**:**' চেপে। তখন নীচে ':' চিহ্ন আসবে। তারপর লিখবো:

```
:%s/Tigers/TIGERS/g
```

এবং এন্টার চাপবো। এবার কমান্ডটির বিভিন্ন অংশ দেখা যাক:

| অংশ             | অর্থ                                                                                                                                                                                  |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| :               | ':' চিহ্ন দিয়ে এক্স-কমান্ড কনসোল চালু করতে হয়।                                                                                                                                        |
| %               | এটা দিয়ে সাবস্টিটিউশন রেঞ্জ বোঝানো হয়। '%' চিহ্ন দিয়ে সম্পূর্ণ ফাইল বোঝানো হয়। 1,5 লিখলে প্রথমলাইন থেকে ৫ম লাইন পর্যন্ত বোঝাবে। আবার 10,$ লিখলে ১০ম লাইন থেকে শেষ লাইন পর্যন্ত বোঝাত। |
| s               | আমরা কী করতে চাইছি তা বলা। এখানে সাবস্টিটিউশন তাই s।                                                                                                                                  |
| /Tigers/TIGERS/ | লেখায় ৩টা '/' দিয়ে দুটো অংশকে আলাদা রাখা হয়েছে। প্রথম অংশে যেটা খুঁজতে হবে (এখানে Tigers) এবং শেষ অংশে তারবদলে যেটা বসাতে হবে (এখানে TIGERS)।                                         |
| g               | এই অংশটি অপশনাল। এটি লিখলে রেঞ্জের মধ্যে যতজায়গায় সার্চ-স্ট্রিংটি পাবে, রিপ্লেস করবে। এটি না দিলে শুধু প্রথমটি রিপ্লেস করত।                                                           |

এন্টার চাপলে এরকম কনফার্মেশন চাইবে:

```
replace with Line (y/n/a/q/l/^E/^Y)?
```

'y' চাপলে কাজটি সম্পন্ন হবে। আমরা অন্য কী-গুলোর অর্থ জেনে নিই:

| কী             | অর্থ                                                                         |
| -------------- | ---------------------------------------------------------------------------- |
| y              | সাবস্টিটিউশন করবে।                                                           |
| n              | সাবস্টিটিউশন এর জন্য বর্তমানে নির্ধারিত প্যাটার্নটি স্কিপ করে পরেরটিতে যাবে। |
| a              | সবগুলো সাবস্টিটিউশন সম্পন্ন করবে।                                            |
| q              | সাবস্টিটিউশন কনসোল বন্ধ করবে।                                                |
| l              | বর্তমান সাবস্টিটিউশটি করে বন্ধ করবে।                                         |
| Ctrl-e, Ctrl-y | নীচে ও উপরে স্ক্রল করবে।                                                     |
