কোডের একটি বিভাগে ক্রিয়াকলাপ সীমাবদ্ধ


10

আমার প্রতিদিনের কাজের জীবনে অনেকবার এমন যে আমার একটি নির্দিষ্ট ফাংশন পরিচালনা করতে হবে, ভেরিয়েবলটি হাইলাইট করা বা সন্ধান করার মতো জিনিস তবে আমি সম্পাদনা / অনুসন্ধানের পরিধি সীমাবদ্ধ করতে সক্ষম হই নি।

নির্বাচিতভাবে বলতে $colorগেলে, এই ধনুর্বন্ধনীগুলির সেটগুলির মধ্যে বা এই ভাঁজ ইত্যাদির অভ্যন্তরে সমস্ত উল্লেখ খুঁজে বের করার কোনও উপায় আছে কি সম্ভব যদি এটি সম্ভব হয় তবে এটি তুলনামূলকভাবে জেনেরিক, যাতে এটি সম্পাদনা / পাঠ্য প্রতিস্থাপনের ক্ষেত্রে প্রয়োগ করা যেতে পারে।

উদাহরণ হিসাবে:

$color = "#fff";
function PickColor () {
  $color = "#bbb";
  $newColors = ["#000", "#fbf", $color];
  foreach ($newColors as $c) {
    if ($c == "#fff") {
       break;
    }
  }
}
$differentColor = $color;

এই কোডটি অপেক্ষাকৃত খারাপ উদাহরণ, তবে, যদি আমি all রঙের সমস্ত দৃষ্টান্ত প্রতিস্থাপন করতে পারি তবে পিককলার ফাংশনটির প্রসঙ্গে এটি কীভাবে এটি করতে পারে। অন্য উদাহরণ হিসাবে, ব্যবহার করে #এবং *আপনি সেই পাঠ্য অবজেক্টের পরবর্তী উদাহরণে যেতে পারেন, কীভাবে আপনি অনুসন্ধানের সুযোগটি কেবলমাত্র এই ফাংশনটিতে সীমাবদ্ধ করবেন (মূলত অনুসন্ধানটি মোড়ানো) পুরো ফাইলটির বিপরীতে যা কয়েক হাজার লাইনের বিস্তৃতি এবং হারাতে পারে আপনার জায়গা, বা অন্যটি ফাংশনে ভুলভাবে কিছু প্রতিস্থাপন করে যা আপনার থাকা উচিত নয়?

উত্তর:


15

এটি করার কয়েকটি উপায় এখানে রয়েছে।

1  | $color = "#fff";
2  | function PickColor () {
3  |     $color = "#bbb";
4  |     $newColors = ["#000", "#fbf", $color];
5  |     foreach ($newColors as $c) {
6  |         if ($c == "#fff") {
7  |             break;
8  |         }
9  |     }
10 | }
11 | $differentColor = $color;

লাইন নম্বর অন্তর্ভুক্ত করার জন্য আমি আপনার উদাহরণটি পরিবর্তন করেছি।

সুতরাং এখন আপনি উদাহরণগুলির সাথে $color, $newColorনিম্নলিখিত পদ্ধতিতে প্রতিস্থাপন করতে পারেন ।

লাইন সংখ্যা ব্যাপ্তি

:1,11s/\$color/$newColor/g

এটি প্রতিস্থাপনকে 1-11 সমেত লাইনগুলিতে পরিচালনা করে।

আপেক্ষিক লাইন রেঞ্জ

আপনার কার্সারটি 1 লাইনে রাখুন, ...

:.,11s/\$color/$newColor/g

এটি বলছে যে পরিসীমাটি বর্তমান লাইন দিয়ে শুরু হয় এবং 11 লাইনে শেষ হবে।

ভিজ্যুয়াল নির্বাচনের ব্যাপ্তি

লাইন 1 এ যান এবং Shift+Vতারপরে টিপুন G। এই দৃষ্টিভঙ্গিটি লাইন 1 নির্বাচন করে। তারপরে ...

:'<,'>:s/\$color/$newColor/g

এটি আপনার নির্বাচনের দ্বারা আচ্ছাদিত ব্যাপ্তিকে সীমাবদ্ধ করে। '<,'>যখন আপনি :একটি সক্রিয় নির্বাচন দিয়ে চাপেন তখন ভিম স্বয়ংক্রিয়ভাবে আপনার জন্য সীমাটি সন্নিবেশ করবে ।


আমি ভীমকে ভালবাসি, জীবনকে আরও সহজ এবং দৈনন্দিন ভিত্তিতে তৈরি করার জন্য শিখতে ও আবিষ্কার করার জন্য সবসময়ই কিছু আছে :)
কাইল ম্যাকগিল

6

আপনি আরামদায়ক প্লাগইন রুট গ্রহণ হন, তাহলে সেখানে NrrwRgn

আপনি দৃশ্যত একটি ব্লক নির্বাচন করুন, তারপরে :NRকমান্ডটি চালান , যা নির্বাচিত পাঠ্য সহ একটি নতুন বাফার (একটি বিভক্তিতে) খুলবে। আপনি এই বাফারে পরিবর্তন করতে পারেন এবং আপনি যখন এটি সংরক্ষণ করেন তখন এটি মূল ফাইলেও সংরক্ষণ হয়ে যায়।

আমার মতে, এই প্লাগইনটি সমস্যাটিকে খুব ভালভাবে সমাধান করে, কীভাবে একটি নির্দিষ্ট পরিসরে কীভাবে প্রয়োগ করা যায় সে সম্পর্কে পুনরায় চিন্তা না করেই আপনি যা করতে চান তার উপর দৃষ্টি নিবদ্ধ করে।


এটি যে প্লাগইনগুলির আমি শপথ করছি তার মধ্যে এটি একটি .. এটির মতো একটি সামান্য স্ক্র্যাচ বাফার রয়েছে যা আপনি আপনার স্বাভাবিক কোড ফাইলটিতে ফিরিয়ে আনতে পারেন।
ক্রেজিট করুন

3

আপনি ভিজ্যুয়াল লাইন মোডে আগ্রহী ব্লকটি নির্বাচন করুন (শিফট + ভি) এবং তারপরে আপনি টাইপ করুন :এবং আপনার আদেশটি যা এখন ব্লকের জন্য প্রযোজ্য হবে।

সুতরাং আপনি যদি নির্বাচনটি প্রতিস্থাপন করতে চান, আপনি চালাতে পারেন :s/string/replacement_string


ডান; যেমন,VaB:s/\$color/replaced/g
wchargin


0

ধনুর্বন্ধনী টেক্সট অবজেক্ট '}' ব্যবহার করুন এবং 'i}' দিয়ে বন্ধনীগুলির মধ্যে নির্বাচন করুন

ফাংশনের উদ্বোধনী কোঁকড়ানো ধনুর্বন্ধনী সঙ্গে লাইনে:

$<C-V>i}:s/\$color/$newColor/g

প্রথমে লাইনটির শেষ প্রান্তে যান (যা প্রারম্ভিক বন্ধনীটির অভ্যন্তরে বা তার অভ্যন্তরে থাকবে) তারপরে ভিজ্যুয়াল নির্বাচন করতে যেতে হবে, তারপরে বন্ধনীগুলির পাঠ্য বস্তুটি ব্যবহার করে নির্বাচন করুন। 'আমি}' বন্ধনীগুলির ভিতরে রয়েছে 'এ}' বন্ধনীগুলির চারপাশে।

ধনুর্বন্ধকের অভাব রয়েছে এমন ভাষাগুলির জন্য, টেক্সট অবজেক্ট ভিম করুন: সংজ্ঞায়িত গাইড কিছু প্লাগইনগুলির পরামর্শ দেয়:

  • পাইথন এবং কফিস্ক্রিপ্টের মতো ভাষার জন্য, ইনডেন্ট অবজেক্টটি ইনডেন্টেশন স্তরের উপর ভিত্তি করে পাঠ্য সামগ্রী সরবরাহ করে: aiবর্তমান ইনডেন্টেশন স্তর এবং উপরের রেখাটি অন্তর্ভুক্ত করে; iiউপরের লাইনটি বাদ দিয়ে বর্তমান ইন্ডেন্টেশন স্তর অন্তর্ভুক্ত।
  • রুবি ব্লক টেক্সট অবজেক্টের জন্য সমর্থন যোগ করা arএবং irউপস্থিতি উপর ভিত্তি করে, endশব্দ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.