@ মালাবারবা গ্রেপ wgrep
/ এসকে / এজি ফলাফল সম্পাদনা করার জন্য প্যাকেজ ব্যবহারের কথা উল্লেখ করেছেন ।
আমি কীভাবে প্যাকেজ ব্যবহার করে 'বর্ধিত ফলাফলগুলি সম্পাদনা করতে ag
প্যাকেজ এবং wgrep-ag
প্যাকেজগুলি ব্যবহার করি তার একটি বিশদ ওয়াক- থ্রো লিখতে চাই multiple-cursors
।
এই প্যাকেজগুলি মেলপা মাধ্যমে উপলব্ধ। আপনার সিস্টেমে আপনার ag
নাম_সিলভার_সন্ধানকারী ইনস্টল থাকাও দরকার ।
এই ওয়াক-থ্রুটি সেই ক্ষেত্রে প্রযোজ্য যেখানে আপনি যে সমস্ত / নির্বাচিত অবস্থান ag
খুঁজে পেয়েছেন তাতে একক লাইন সম্পাদনা করার উপায় খুঁজছেন ।
ag
আপনার সিস্টেমে এবং উপরে উল্লিখিত ইমাস প্যাকেজগুলি ইনস্টল করুন।
ag
আপনার নির্দিষ্ট রেজেক্সের সাথে মেলে এমন সামগ্রীগুলির সাথে অনুসন্ধানের ফাইলগুলিকে সমর্থন করে। ag
প্রকল্পের মূলটি খালি .git
ফোল্ডারটি সেখানে রাখার সবচেয়ে সহজ উপায় । তারপরে সন্ধানটি ব্যবহার করে করুন M-x ag-project-regexp
।
অগ্রণী অনুসন্ধানের ফলাফল বাফারটি ডিফল্টরূপে সম্পাদনাযোগ্য নয়। এটিকে সম্পাদনযোগ্য করে তোলার M-x wgrep-change-to-wgrep-mode
জন্য, wgrep
-ডিফল্ট বাঁধাই বা ব্যবহার করুন C-c C-p
।
এখন আপনি যদি আপনার সমস্ত ফাইলগুলিতে 'abcdef' পরিবর্তন করে 'ghijkl' এ পরিবর্তন করতে চান তবে আপনি 'abcdef' সন্ধান করতে পারেন এবং Ag ফলাফল বাফার সেই স্ট্রিং সহ সমস্ত লাইন প্রদর্শন করবে। তারপরে আপনি সেই বাফারটিকে সম্পাদনযোগ্য করে তুলুন এবং সেই স্ট্রিংগুলিকে ম্যানুয়ালি পরিবর্তন করুন এবং সেই পরিবর্তনগুলি M-x wgrep-finish-edit
ডিফল্ট বাইন্ডিং করার বা ব্যবহার করার ক্ষেত্রে প্রকৃত ফাইল বাফারগুলিতে প্রতিফলিত হবে C-c C-e
। আপনি query-replace-regexp
যে অনুসন্ধান প্রতিস্থাপন করতে ব্যবহার করতে পারেন।
আমি multiple-cursors
দ্রুত রিফ্যাক্টরিংয়ের জন্য ব্যবহার করতে পছন্দ করি যাতে আমার একাধিক সম্পাদনাগুলি একসাথে কোথায় ঘটছে তার সত্যিকারের প্রতিক্রিয়া দেখতে পাচ্ছি। সেই এজি ফলাফলের বাফারে এবং কলটিতে আপনি যে স্ট্রিংটি প্রতিস্থাপন করতে চান তা হাইলাইট করুন এবং আপনি M-x mc/mark-all-like-this
একই সাথে একাধিক পয়েন্টে স্টাফ সম্পাদনা করতে দেখলে বিস্মিত হবেন।
একবার আপনি সম্পাদনাগুলিতে খুশি হয়ে গেলে, যেমন আমি উপরে উল্লেখ করেছি, C-c C-e
আসল বাফারগুলির পরিবর্তনগুলি "প্রতিফলিত" করার জন্য করুন। বাফারগুলি এখনও সংরক্ষিত হয়নি।
সমস্ত বাফার সংরক্ষণ করতে, আমি সাধারণত একবারে এটি ইম্যাক্স ডিফল্ট C-x s !
বাইন্ডিং ব্যবহার করে করি ।
স্ক্রিনশট সহ ব্যবহারের একটি উদাহরণ এখানে দেওয়া হয়েছে:
এটা তোলে সমস্ত উদাহরণ প্রতিস্থাপন প্রক্রিয়া দেখায় bind-to-modi-map
করতে bind-to-my-map
আমার মধ্যে ~/.emacs.d/
।
আমি যখন আমার bind-to-modi-map
ইমাস সেটআপ ফোল্ডারে অনুসন্ধান করি তখন আমি নীচের 'অজানা ফলাফল:
এই বাফারটি কেবল পঠনযোগ্য।
এর পরে M-x wgrep-change-to-wgrep-mode
, আমি হাইলাইট করেছি -modi-map
, সেই নির্বাচনের সমস্ত উদাহরণ নির্বাচন করে M-x mc/mark-all-like-this
এবং সেগুলি থেকে নির্বাচনগুলি সম্পাদনা করার পরে -my-map
এটি নীচের মত দেখাচ্ছে:
নীল হাইলাইটটি দেখায় যে আমি টিপলে কোন রেখাগুলি সংশোধন করা হবে C-c C-e
।
আঘাত করার সময় C-c C-e
, আপনি এই স্ক্রিনশটের প্রকৃত ফাইলটিতে প্রতিবিম্বিত পরিবর্তনটি দেখতে পাবেন:
আমি তখন সমস্ত পরিবর্তিত ফাইল ব্যবহার করে সংরক্ষণ করব C-x s !
।