আমার প্রায়শই এমন পরিস্থিতি হয় যেখানে কোনও অঞ্চলের চারপাশে আমাকে পাঠ্য প্রয়োগ করতে হবে। এইচটিএমএল এবং সাধারণ ক্ষেত্রে এর জন্য ইতিমধ্যে লাইব্রেরি রয়েছে। তবে সাধারণ মামলার কী হবে? আমি জিজ্ঞাসা করতে চাই যে আমি এই অঞ্চলের শুরু এবং শেষটি sertোকাচ্ছি।
আমার প্রায়শই এমন পরিস্থিতি হয় যেখানে কোনও অঞ্চলের চারপাশে আমাকে পাঠ্য প্রয়োগ করতে হবে। এইচটিএমএল এবং সাধারণ ক্ষেত্রে এর জন্য ইতিমধ্যে লাইব্রেরি রয়েছে। তবে সাধারণ মামলার কী হবে? আমি জিজ্ঞাসা করতে চাই যে আমি এই অঞ্চলের শুরু এবং শেষটি sertোকাচ্ছি।
উত্তর:
আমি চারপাশে গুগল করেছিলাম এবং জন ডি কুকের এই পোস্টটি পেয়েছি । তিনি এই অঞ্চল জুড়ে সহজেই এইচটিএমএল / এক্সএমএল ট্যাগগুলি পাওয়ার জন্য কীভাবে একটি সাধারণ ইন্টারেক্টিভ ফাংশন তৈরি করবেন তা তিনি দেখান। সে থেকে আমি দুটি বার জিজ্ঞাসা করার জন্য ফাংশনটি সংশোধন করেছি।
(defun tag-word-or-region (text-begin text-end)
"Surround current word or region with given text."
(interactive "sStart tag: \nsEnd tag: ")
(let (pos1 pos2 bds)
(if (and transient-mark-mode mark-active)
(progn
(goto-char (region-end))
(insert text-end)
(goto-char (region-beginning))
(insert text-begin))
(progn
(setq bds (bounds-of-thing-at-point 'symbol))
(goto-char (cdr bds))
(insert text-end)
(goto-char (car bds))
(insert text-begin)))))
আরও গুরুত্বপূর্ণ, এই ফাংশনটি সহায়ক সরঞ্জাম হিসাবেও ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ যখন আপনি কিছু নির্দিষ্ট পাঠ্যের নির্দিষ্ট বিট মানচিত্রের জন্য কীগুলি আবদ্ধ করতে চান।
(defun tag-php ()
(interactive)
(tag-word-or-region "<?php " "?>"))
evil
যে আমি এখানে হস্তক্ষেপ করি। সম্ভবত কোনও ধরণের কোনও interactive "r"
কাজ আরও দৃ more়তার সাথে কাজ করেছে?
আমি একটি ভিন্ন পদ্ধতির পরামর্শ দিতে হবে। যখন কোনও অঞ্চল থাকে, সংজ্ঞা অনুসারে অঞ্চলটির point
শুরুতে (বা শেষ) mark
হতে হবে এবং শেষে (বা শুরু) হবে। কোনটি আপনি টেক্সট আপনি সময়ে চান লিখতে পারেন, এবং তারপর ব্যবহার মানে exchange-point-and-mark
অর্থাত, C-x C-x
এ অঞ্চলের অন্য প্রান্তে ঝাঁপ চাপ দিতে থাকেন। আপনার মোড়কের দ্বিতীয়ার্ধটি প্রবেশ করুন এবং আপনার কাজ শেষ।
সন্নিবেশ পাঠ্যের জন্য আপনাকে পরিষ্কারভাবে জিজ্ঞাসা করা হবে না, তবে কম চেষ্টা করে একই জিনিসটি সম্পাদন করার উপায় থাকবে তা আমি ভাবতে পারি না।
multiple-cursors
সক্রিয় অঞ্চলের শুরু এবং শেষদিকে একইসাথে পাঠ্য সন্নিবেশ করানোর জন্য যদি এমন কোনও কিছু টুইট করা যায়।
C-x C-x
। আপনার উত্তর সহ, আপনাকে আপনার ফাংশন ( C-c something
) কল করতে হবে এবং return
প্রতিটি প্রবেশের পরে আপনাকে আঘাত করতে হবে । সুতরাং আপনি যাই করেন না কেন, আপনি আরও দুটি কীস্ট্রোক পেয়েছেন। এটি বলেছিল, আপনি এলিসপ থেকে কিছু কল করতে চাইলে তাতে কোনও লাভ হয় না।
শুধু বিভিন্ন ধরণের জন্য:
আরেকটি উপায় কিছু অবাধ শুরু এবং শেষের পাঠ্য সহ এই কাজ করতে ব্যবহার করতে হবে replace-regexp
উপর অঞ্চল: ম্যাচ .+
এবং প্রতিস্থাপন before \& after
করুন, অথবা আপনার জন্য ব্যবহার করতে চান যাই হোক না কেন টেক্সট before
এবং after
।
আপনি এটি করতে একটি কমান্ড লিখতে পারেন, তবে আমি এমন একটি ক্ষেত্রে ভাবছি যেখানে কোনও প্রদত্ত ফাইলে আপনি একাধিক জায়গায় একই প্রারম্ভিক / শেষ পাঠ্য প্রয়োগ করতে চান। আপনি কোনও ম্যাক্রো রেকর্ড করতে পারেন বা অন্য অঞ্চলে পুনরাবৃত্তি করতে কেবল মিনিবুফার ইতিহাস ব্যবহার করতে পারেন।
অবশ্যই আপনি যে পাঠ্যটি মোড়তে চান তা যদি নিয়মিত প্রকাশ হিসাবে প্রকাশ করা যায় তবে আপনাকে এমনকি একটি অঞ্চল নির্বাচন করার প্রয়োজন হবে না এবং query-replace-regexp
বাফারে একটি করতেও হবে না , তবে সম্ভবত আপনি যে পাঠ্যটি মোড়তে চান তা সেই সামঞ্জস্যপূর্ণ নয়।
<?php
...?>
এবং তারপরে আপনি যখন একটি অঞ্চল নির্বাচন করেন এবং টাইপ করুন<?php
(বা কী-বাইন্ডিং), তখন এটি জোড়াটি জড়িয়ে রাখুন। তবে আফিকের কাছে এই লাইব্রেরিগুলি ব্যবহার করার সহজ উপায় নেই যদি আপনার অনেকগুলি শট জোড়া থাকে।