ইমাক্সে অ-সংযুক্ত অঞ্চলগুলি কীভাবে নির্বাচন করবেন?


31

মনে করুন আমি ইতিমধ্যে বর্তমান বাফারে কিছু পাঠ্য নির্বাচন করেছি। পূর্ববর্তী নির্বাচন (এবং এই জাতীয়) রাখার পরে কি পাঠ্যের আরও প্রসার নির্বাচন করা সম্ভব?

যুক্ত : এই কার্যকারিতাটির জন্য একটি অনুপ্রেরণা নিম্নরূপ: অনুমান করুন যে আমার কাছে এমন কিছু পাঠ্য রয়েছে যা দেখায়:

paragraph 1 ...

paragraph 2 ...

paragraph 3 ...

paragraph 4 ...

paragraph 5 ...

আমি কিছু অনুচ্ছেদ মুছে ফেলতে চাই (উদাহরণস্বরূপ 2, 4 এবং 6) এবং অনুচ্ছেদ 1 এর আগে সেগুলি sertোকাতে চাই।



2
একটি প্যাকেজ মাল্টিলেক্ট আছে: স্কাম্পাউসন.ডে / কেজি- বিন / এসকা / মাল্টিলেক্ট এটিকে কিছুটা দ্রুত হ্যাকের মতো দেখাচ্ছে।
টোবিয়াস

আপনি কী এবং কেন নির্বাচন করছেন তার আকারের উপর নির্ভর করে multiple-cursorsআপনাকে সমাধান দিতে পারে।
জর্ডন বিওনডো

@ ওয়াসামাসা আপনার দেওয়া লিঙ্কে প্রদত্ত নির্দেশনাটি আমি অনুসরণ করেছি। প্রথম নির্বাচনের পরে, আমি মেটা কীটি রেখে আমার দ্বিতীয় অঞ্চলটি নির্বাচন করেছি। এটি নির্বাচন করা হয়েছিল, তবে দুটি সমস্যা রয়েছে: (1) দ্বিতীয় নির্বাচনটি একটি আসল নির্বাচন বলে মনে হচ্ছে না, কারণ অনুলিপি করা বা মোছা কাজ করে না। (২) এভাবে তৃতীয় নির্বাচন নির্বাচন করা সম্ভব নয়।
নাম 13

1
Emacs উইকির মাধ্যমিক নির্বাচন সম্পর্কে একটি ভাল বিভাগ রয়েছে । বিভিন্ন বর্ধিতকরণ উদাহরণস্বরূপ কীবোর্ড থেকে এটি আরও ব্যবহারযোগ্য করে তোলে।
ড্র হয়েছে

উত্তর:


43

আপনি উপরে যে পাঠ্যটি সন্নিবেশ করতে চান তা সংগ্রহ করতে আপনি append-next-kill( C-M-wডিফল্টরূপে আবদ্ধ ) ব্যবহার করতে পারেন paragraph 1:

  1. paragraph 2আপনি সাধারণত হিসাবে হত্যা ।

  2. এটি হত্যা করার আগে চিহ্নিত করুন paragraph 4এবং টিপুন C-M-w। আপনি যে সমস্ত অনুচ্ছেদে আগে যেতে চান তার জন্য এই পদক্ষেপটি পুনরাবৃত্তি করুন paragraph 1

আপনার কাজ শেষ হয়ে গেলে আপনি আগে জমে থাকা পাঠটি ইঙ্ক করতে পারেন paragraph 1


5
এমনকি বেসিক স্টাফগুলি সহ, সবসময় শিখার জন্য কিছু নতুন জিনিস রয়েছে! এটি বেশ কার্যকর, কারণ যখন আমি এটি করার দরকার হয় তখন সাধারণত কিলিং রিংটি ভ্রমণ করে আমি প্রচুর কী চাপতে নষ্ট করি। আশা করি আমি এটিকে আরও কিছুটা উত্সাহিত করতে পারতাম ...
অর্থবহ ব্যবহারকারীর নাম

9

আপনি মার্ক রিংয়ের সাথে মিলিত রেজিস্টারগুলি ব্যবহার করতে পারেন। বর্তমান চিহ্নগুলি দিয়ে পুশ করুন C-<SPC> C-<SPC>, এগুলি পরে তাদের পুনরুদ্ধার করুন C-u C-<SPC>বা একটি নিবন্ধে সংরক্ষণ করুন, বলুন b, মাধ্যমে করুন C-x r <SPC> bএবং পরে ফিরে যান C-x r j b

এখন অন্য একটি অঞ্চল চিহ্নিত করুন। C-u C-x r s aনিবন্ধটি নিবন্ধিত করতে aএবং মুছতে চিহ্নিত অঞ্চলটি অনুলিপি করবে । তারপরে পরবর্তী অঞ্চলটি চিহ্নিত করুন এবং সেই C-u C-x r + aনিবন্ধটিতে অন্য নির্বাচন যুক্ত করুন aএবং এটি মুছুন।

এরপরে আপনি সামগ্রীগুলি সন্নিবেশ করতে পারেন C-x r i a

ইমাস ম্যানুয়ালটির "রেজিস্টারগুলিতে সংরক্ষণের পাঠ্য" বিভাগটি দেখুন।


5

এ গিয়ে Emacs-24.4 নতুন আয়তক্ষেত্র-অঞ্চলের সমর্থন আসলে চালু পরিকাঠামো এই কার্যকারিতা জন্য প্রয়োজন (একটা বড় অংশ) [সব পরে, একটি আয়তক্ষেত্রাকার অঞ্চল হল একটি অ-সংলগ্ন অঞ্চল]।

সুতরাং, এখন "স্প্লিট-অঞ্চল" প্যাকেজটি প্রয়োগ করা সম্ভব হবে যা আপনি যে কার্যকারিতা চাইচ্ছেন তা সরবরাহ করে।

স্বীকার করা যায়, প্রচুর Emacs কমান্ড এখনও নতুন অবকাঠামো (যেমন আপাস-অঞ্চল, বা অঞ্চল-পূর্বে, ক্যোয়ারী-রিপ্লেস, ...) এর মতো কমান্ডগুলি ব্যবহার করার জন্য রূপান্তরিত হয়নি এবং তাই আয়তক্ষেত্রগুলিতে এখনও সঠিকভাবে কাজ করে না (সুতরাং তারা কোনও "বিভক্ত অঞ্চল" তে সঠিকভাবে কাজ করবে না) তবে এগুলি এমন বাগগুলি যা আশা করি সময়ের সাথে সাথে সংশোধন করা উচিত।


4

ব্রাউজ-কিল-রিং.এল ইনস্টল করুন

আগ্রহের সমস্ত অঞ্চল অনুলিপি করুন এবং হত্যা করুন।

পুনরায় সন্নিবেশ শুরু হওয়া উচিত যেখানে পয়েন্ট।

M-x browse-kill-ring RET এটি একটি বাফার খুলবে এবং এতে কার্সার রাখবে।

nভ্রমণের অংশগুলি টাইপ করুন ।

RET আসল / অন্যান্য বাফার পয়েন্টে অংশটি প্রবেশ করানো হবে।


3

আপনি যে লাইনগুলি ম্যানিপুলেট করতে চান তা যদি রেগেক্স ম্যাচের মাধ্যমে আলাদা করা যায় তবে আপনি নতুন উইন্ডোতে এগুলি দেখতে মোড-মোড ব্যবহার করতে পারেন । তারপরে আপনি এগুলি সম্পাদনা-মোড ব্যবহার করতে পারেন আসল বাফার দিয়ে আপনি সম্পাদিত বাফারে যে পরিবর্তনগুলি প্রতিবিম্বিত করেন তা দিয়ে edit

এটি আশ্চর্যজনকভাবে কাজ করে, উদাহরণস্বরূপ, একাধিক-কার্সার-মোডের সংমিশ্রণে : যেহেতু আপনি সংঘটিত বাফারটিতে উপস্থিত হওয়ার জন্য যে রেখাগুলি নির্বাচিত করেছেন সেগুলি মূল বাফারটিতে যতই দূরে থাকুক না কেন, স্বচ্ছতার সাথে প্রদর্শিত হয়, আপনি সেগুলি সমস্ত চিহ্নিত করতে পারেন বা একটি সাবসেট এবং তারপরে mc/edit-linesএগুলিকে সক্রিয় ও সম্পাদনা করুন। (হ্যাঁ, আমি জানি যে মাল্টিপল-কার্সারগুলি এগুলি দিয়ে নিজেই mc/mark-all-like-thisএটি করতে পারে তবে বিকল্পগুলি পাওয়া ভাল)

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


3

এটি আপনার সাধারণ প্রশ্নের প্রতিক্রিয়া জানায়, তবে বিশেষ করে আপনি উল্লিখিত ব্যবহারের ক্ষেত্রে (কোডের বিটের চারপাশে চলমান) বিশেষত নয় not

ইমাকসের এখন এটি একটি অ-সংযুক্ত অঞ্চল বলে , যা আপনি যে ধরণের নির্বাচনের বিষয়ে জিজ্ঞাসা করছেন calls ভ্যানিলা গিয়ে Emacs, একটি noncontiguous অঞ্চল তৈরি করতে যদি এটি একটি হল ব্যতীত কোনো বিশেষ সুবিধা প্রদান করে না আয়তক্ষেত্র । কিন্তু লাইব্রেরি জোনগুলি করে।

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

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

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

জোন তৈরির বিভিন্ন উপায় রয়েছে। অন্যতম সহজ ব্যবহার হ'ল C-x n a: এটি সক্রিয় অঞ্চল থেকে একটি অঞ্চল নির্ধারণ করে এবং এটি বর্তমান জোন সেটে যুক্ত করে। ( C-x n n( narrow-to-region) সংকীর্ণ করার পাশাপাশি এটিও করে)

এই অঞ্চলগুলির একটি সেট (তালিকা) দিয়ে আপনি করতে পারেন এমন কিছু জিনিস:

  • তাদের বাছাই করুন।
  • সংলগ্ন বা ওভারল্যাপিং অঞ্চলগুলিকে (কোলেসেস) একত্রিত করুন (যার মধ্যে তাদের বাছাই অন্তর্ভুক্ত রয়েছে)।
  • তাদের ছেদ করুন।
  • তালিকার একটি জোনে বাফারকে সঙ্কুচিত করুন। সংকীর্ণতার মধ্যে চক্র। একাধিক সংকীর্ণতা দেখুন ।
  • সক্রিয় অঞ্চল হিসাবে তালিকার একটি অঞ্চল নির্বাচন করুন। অঞ্চলগুলির মধ্যে চক্র।
  • তাদের অনুসন্ধান করুন (তারা স্বয়ংক্রিয়ভাবে প্রথমে সংযুক্ত)। এর জন্য আপনার Isearch + লাইব্রেরি দরকার ।
  • তাদের উপর প্রশ্ন-প্রতিস্থাপন করুন।
  • এগুলিকে হাইলাইট এবং আনহাইটলাইট করুন। (এর জন্য আপনার লাইব্রেরি হাইলাইট বা লাইব্রেরি দরকার facemenu+.el

আরও দেখুন পরোক্ষ সঙ্কীর্ণ , যা আপনি তৈরি করতে দেয় পরোক্ষ বাফার যে একটি প্রদত্ত বাফার ক্লোনস এবং এটি বিভিন্ন অংশ থেকে narrowed হয়।


2

অন্য বিকল্প: অনুচ্ছেদগুলি স্থানান্তর করা

সম্পূর্ণতার জন্য, আপনি চিহ্নিত অঞ্চলগুলির সাথে অনুচ্ছেদে (ক্রমানুসারে) পুনরায় ক্রমানুসারে অর্জন করতে পারেন এবং M-0 M-x transpose-paragraph(শূন্য যুক্তিটি tra-parঅনুচ্ছেদে যেখানে পয়েন্ট এবং চিহ্ন রয়েছে সেগুলি পরিবর্তন করে, অর্থাৎ অঞ্চলটি শুরু হয় এবং শেষ হয়)!

যাইহোক এটি সমস্ত transpose-.*কমান্ডের জন্য কাজ করে (-वर्डস, -সেক্সপ, -তাহা, ...) এবং অনেক পরিস্থিতিতে অত্যন্ত কার্যকর।


2

আরেকটি উপায় হ'ল আপত্তিযুক্ত প্যাকেজটি ব্যবহার করা (আমি লেখক)। আপনি mবিন্দু দিয়ে যে কোনও পাঠ্য বস্তু চিহ্নিত করতে পারেন স্বয়ংক্রিয়ভাবে বর্তমান ধরণের পরবর্তী বস্তুতে সরানো হয়। এটিতে নেভিগেট করে যে কোনও বস্তুটি চিহ্নচিহ্নবদ্ধ করুন এবং আবার এম টিপুন। এখানে একটি উদাহরণ স্ক্রীনকাস্ট (লাইনগুলি চিহ্নিতকরণগুলি দেখায় তবে অনুচ্ছেদের, ডিফুনগুলি ... পাশাপাশি অন্যান্য বস্তুর জন্য কাজ করে):

এখানে চিত্র বর্ণনা লিখুন


আমি যখন মেলপা থেকে এই প্যাকেজটি ইনস্টল করার চেষ্টা করি তখন ত্রুটিটি পাই package-install-from-archive: http://melpa.milkbox.net/packages/objed-20181201.1346.tar: Not found
নাম 16

@ নাম যা মনে হচ্ছে আপনার প্যাকেজ তালিকা আপডেট করা দরকার। M-x package-refresh-contentsতারপর চেষ্টা করুন M-x package-install
ক্লেমের

@ নাম এখন এটি কাজ করে? যদি আপনার আরও প্রশ্ন থাকে তাহলে আমার সাথে জেনে নেয়া যাক।
ক্লেমেরা

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