অঞ্চল প্রদত্ত পাঠ্য কীভাবে মোড়ানো যায়


11

আমার প্রায়শই এমন পরিস্থিতি হয় যেখানে কোনও অঞ্চলের চারপাশে আমাকে পাঠ্য প্রয়োগ করতে হবে। এইচটিএমএল এবং সাধারণ ক্ষেত্রে এর জন্য ইতিমধ্যে লাইব্রেরি রয়েছে। তবে সাধারণ মামলার কী হবে? আমি জিজ্ঞাসা করতে চাই যে আমি এই অঞ্চলের শুরু এবং শেষটি sertোকাচ্ছি।


আপনি একবারে স্বেচ্ছাচারী বিষয়বস্তু fulোকাতে বা বহুবার কয়েকবার জোড় জোড় ব্যবহার করতে চান? পরবর্তী ক্ষেত্রে, স্মার্টপ্যারেনের মতো লাইব্রেরিগুলি কার্যকর প্রমাণ করতে পারে এবং সেগুলি কাস্টম জোড়া দিয়ে বাড়ানো যেতে পারে। উদাহরণস্বরূপ, আপনি একটি জুড়ি যুক্ত করতে পারেন <?php... ?>এবং তারপরে আপনি যখন একটি অঞ্চল নির্বাচন করেন এবং টাইপ করুন <?php(বা কী-বাইন্ডিং), তখন এটি জোড়াটি জড়িয়ে রাখুন। তবে আফিকের কাছে এই লাইব্রেরিগুলি ব্যবহার করার সহজ উপায় নেই যদি আপনার অনেকগুলি শট জোড়া থাকে।
টি ভেরন

@ টি.ভেরন: আমি জানি যে এগুলি বিদ্যমান। কিন্তু সেই মুহুর্তগুলির জন্য যখন কোডের মধ্যে দিয়ে যাওয়ার এবং
স্টাফগুলিকে

উত্তর:


6

আমি চারপাশে গুগল করেছিলাম এবং জন ডি কুকের এই পোস্টটি পেয়েছি । তিনি এই অঞ্চল জুড়ে সহজেই এইচটিএমএল / এক্সএমএল ট্যাগগুলি পাওয়ার জন্য কীভাবে একটি সাধারণ ইন্টারেক্টিভ ফাংশন তৈরি করবেন তা তিনি দেখান। সে থেকে আমি দুটি বার জিজ্ঞাসা করার জন্য ফাংশনটি সংশোধন করেছি।

(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়তার সাথে কাজ করেছে?
nPress325681

4

আমি একটি ভিন্ন পদ্ধতির পরামর্শ দিতে হবে। যখন কোনও অঞ্চল থাকে, সংজ্ঞা অনুসারে অঞ্চলটির pointশুরুতে (বা শেষ) markহতে হবে এবং শেষে (বা শুরু) হবে। কোনটি আপনি টেক্সট আপনি সময়ে চান লিখতে পারেন, এবং তারপর ব্যবহার মানে exchange-point-and-markঅর্থাত, C-x C-xএ অঞ্চলের অন্য প্রান্তে ঝাঁপ চাপ দিতে থাকেন। আপনার মোড়কের দ্বিতীয়ার্ধটি প্রবেশ করুন এবং আপনার কাজ শেষ।

সন্নিবেশ পাঠ্যের জন্য আপনাকে পরিষ্কারভাবে জিজ্ঞাসা করা হবে না, তবে কম চেষ্টা করে একই জিনিসটি সম্পাদন করার উপায় থাকবে তা আমি ভাবতে পারি না।


শুরু এবং শেষ পাঠ্যটি যদি একই হয় তবে আমি অবাক হয়েছি যে multiple-cursorsসক্রিয় অঞ্চলের শুরু এবং শেষদিকে একইসাথে পাঠ্য সন্নিবেশ করানোর জন্য যদি এমন কোনও কিছু টুইট করা যায়।
গ্লুকাস

এটি ম্যানুয়াল পদ্ধতিটির মতো শোনাচ্ছে যে কম সম্পাদকের ব্যবহারকারীরা যেভাবেই করতে বাধ্য হয়। যাইহোক আমি আপনার উত্তর থেকে সাবটেক্সট হিসাবে ম্যাক্রোগুলির ব্যবহার পড়েছি, বলতে হবে। আমি আপনার স্টাইলটি পছন্দ করি
nPress325681

1
@ প্রোগো - ধন্যবাদ :) এটি আরও ম্যানুয়াল পদ্ধতির মতো মনে হলেও এটি আপনার বিকল্পের চেয়ে কম কীস্ট্রোক ব্যবহার করে uses মোড়ানো পাঠ্য ব্যতীত এই পদ্ধতির সাথে আপনার কেবল প্রয়োজন C-x C-x। আপনার উত্তর সহ, আপনাকে আপনার ফাংশন ( C-c something) কল করতে হবে এবং returnপ্রতিটি প্রবেশের পরে আপনাকে আঘাত করতে হবে । সুতরাং আপনি যাই করেন না কেন, আপনি আরও দুটি কীস্ট্রোক পেয়েছেন। এটি বলেছিল, আপনি এলিসপ থেকে কিছু কল করতে চাইলে তাতে কোনও লাভ হয় না।
টাইলার

3

শুধু বিভিন্ন ধরণের জন্য:

আরেকটি উপায় কিছু অবাধ শুরু এবং শেষের পাঠ্য সহ এই কাজ করতে ব্যবহার করতে হবে replace-regexpউপর অঞ্চল: ম্যাচ .+এবং প্রতিস্থাপন before \& afterকরুন, অথবা আপনার জন্য ব্যবহার করতে চান যাই হোক না কেন টেক্সট beforeএবং after

আপনি এটি করতে একটি কমান্ড লিখতে পারেন, তবে আমি এমন একটি ক্ষেত্রে ভাবছি যেখানে কোনও প্রদত্ত ফাইলে আপনি একাধিক জায়গায় একই প্রারম্ভিক / শেষ পাঠ্য প্রয়োগ করতে চান। আপনি কোনও ম্যাক্রো রেকর্ড করতে পারেন বা অন্য অঞ্চলে পুনরাবৃত্তি করতে কেবল মিনিবুফার ইতিহাস ব্যবহার করতে পারেন।

অবশ্যই আপনি যে পাঠ্যটি মোড়তে চান তা যদি নিয়মিত প্রকাশ হিসাবে প্রকাশ করা যায় তবে আপনাকে এমনকি একটি অঞ্চল নির্বাচন করার প্রয়োজন হবে না এবং query-replace-regexpবাফারে একটি করতেও হবে না , তবে সম্ভবত আপনি যে পাঠ্যটি মোড়তে চান তা সেই সামঞ্জস্যপূর্ণ নয়।

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