আপনি কীভাবে ইম্যাক্সের সাথে 'পূর্বাবস্থায়' ফিরে যাওয়ার পরে 'পুনরায়' পরিবর্তন করবেন?


268

এই নিবন্ধটি বলেছে যে "ইমাক্সের পুনরায় কাজ হয়েছে কারণ আপনি পূর্বাবস্থায় ফিরার সময় দিকনির্দেশকে বিপরীত করতে পারেন, যার ফলে পূর্বাবস্থায় ফিরে আসা যায় না"।

এটার মানে কি? কোনও ব্যবহারকারী কীভাবে ইমাক্স দিয়ে 'পুনরায়' করতে পারেন?


3
উত্তর গৃহীত উত্তর তলদেশে আপনি বলে কিভাবে , যদি যে কেন আপনি এই উত্তর, যা যে, তা কিভাবে লেখা দেওয়া এ খুঁজছেন, আমি আশা অধিকাংশ লোক আসলে যে খুঁজছেন করা হবে।
অ্যারন হল

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

উত্তর:


294

সংক্ষিপ্ত সংস্করণ: পূর্বাবস্থায় ফিরুন। যদি আপনি পূর্বাবস্থায় ফিরে যান এবং তারপরে কোনও নন-সম্পাদনা কমান্ডটি করেন C-fতবে তারপরে পূর্ববর্তী পূর্বাবস্থায় ফিরে যাওয়া পূর্বাবস্থায় ফিরে আসবে, ফলস্বরূপ একটি পুনরায় করা হবে।

দীর্ঘ সংস্করণ:

আপনি অপারেশনটিকে একটি স্ট্যাক অপারেশনে অপারেটিং হিসাবে ভাবতে পারেন। যদি আপনি C-fপূর্বাবস্থায়িত ক্রিয়াকলাপগুলির পরে কিছু কমান্ড (এমনকি একটি নেভিগেশন কমান্ড ) সম্পাদন করেন তবে সমস্ত পূর্ববর্তীকে অপারেশন স্ট্যাকের দিকে ঠেলে দেওয়া হবে। সুতরাং পরের পূর্বাবস্থায় ফেরানো শেষ আদেশটি বাতিল করে। মনে করুন আপনার কাছে এমন কোনও অপারেশন সিকোয়েন্স রয়েছে যা দেখতে এরকম দেখাচ্ছে:

  1. "ফু" sertোকান
  2. "বার" sertোকান
  3. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ করুন

এখন, আপনি পূর্বাবস্থায় ফিরে যান। এটি সর্বশেষ ক্রিয়াটিকে পূর্বাবস্থায় ফিরে আসে, এর ফলে নিম্নলিখিত তালিকাটি তৈরি হয়:

  1. "ফু" sertোকান
  2. "বার" sertোকান

আপনি যদি এই মুহুর্তে পূর্বাবস্থায় ফেরা ব্যতীত অন্য কিছু করেন - বলুন, C-fঅপারেশন স্ট্যাকটি দেখতে এমন দেখাচ্ছে:

  1. "ফু" sertোকান
  2. "বার" sertোকান
  3. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ করুন
  4. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ পূর্বাবস্থায় ফিরুন

এখন, আপনি যখন পূর্বাবস্থায় ফেরাবেন, প্রথম জিনিসটি পূর্বাবস্থায় ফেরা হয়। আপনার মূল স্ট্যাকের ফলাফল (এবং দস্তাবেজ স্টেট):

  1. "ফু" sertোকান
  2. "বার" sertোকান
  3. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ করুন

যদি আপনি পূর্বাবস্থায়িত ক্রমটি ভাঙ্গার জন্য কোনও পরিবর্তনকারী কমান্ড করেন তবে সেই কমান্ডটি পূর্বাবস্থার পরে যুক্ত করা হবে এবং এরপরে প্রথমে এটি পূর্বে বাতিল করা হবে। ধরা যাক আপনি আঘাতের পরিবর্তে "বার" এর পিছনে পিছনে গতিতে ব্যর্থ হয়েছেন C-f। তাহলে তুমি হত

  1. "ফু" sertোকান
  2. "বার" sertোকান
  3. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ করুন
  4. "আমি স্প্যাম পছন্দ করি" সন্নিবেশ পূর্বাবস্থায় ফিরুন
  5. "বার" মুছুন

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


117
যদি এটি বিরক্তিকর শোনায় তবে সবচেয়ে বড় সুবিধাটি হ'ল আপনি সর্বদা পূর্বের অবস্থা ফিরে পেতে পারেন। বেশিরভাগ সম্পাদকগুলিতে, বেশ কয়েকটি পরিবর্তন পূর্বাবস্থায় ফেলা এবং তারপরে দুর্ঘটনাক্রমে একটি চরিত্র টাইপ করা আপনাকে 'অচল' অবস্থায় ফেলে রাখে যেটি আপনি পূর্বাবস্থায় ফিরে করেছিলেন তার পুনরায় করার কোনও উপায় ছাড়াই। ইমাস এইটিকে তুচ্ছ করে তোলে।
ফিল্ডস

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

25
এটা বিরক্তিকর মনে হচ্ছে।
ফিলিপ

13
আমি জানি না কেন এই উত্তর গৃহীত হয় যখন এটি এমনকি আপনি বলুন না কি কেমন
অ্যারন হল

8
দুঃখের বিষয় এই উত্তরটি রেডো কমান্ড যা Cg C- / এর সম্পর্কে কিছুই বলে না।
বিষ্ণুপ্রসন্ত

211

পূর্বাবস্থা: C-_

পূর্বাবস্থায় ফিরে যাওয়ার পরে: C-g C-_

C-_ পুনরায় পূর্বাবস্থায় ফিরিয়ে আনতে একাধিকবার টাইপ করুন C-_ ইমাক্স কমান্ডটি একাধিকবার পুনরায় করতে, আপনার কমান্ডটি কার্যকর করুন C-xzএবং তারপরে কমান্ডটি পুনর্বার করতে অনেক বার টাইপ করুন z(আপনি যখন ম্যাক্রোতে একাধিকবার এক্সিকিউট করতে চান আকর্ষণীয়)


4
স্টাফ পুনরাবৃত্তি করতে আপনি C-uউদাহরণস্বরূপ C-u 8 *(আটটি * ক্যারেট যেখানে সন্নিবেশ করান) ব্যবহার করতে পারেন ) সুতরাং আপনি এক্স পদক্ষেপগুলি C-u x C-_পূর্বাবস্থায় ফেলার জন্য ব্যবহার করতে পারেন ।
প্যাট্রিক

10
এটির মূল প্রশ্নের সাথে কোনও সম্পর্ক নেই, তবে একটি কীবোর্ড ম্যাক্রো চালানোর পরে (এর সাথে C-x e), আপনি eযত তাড়াতাড়ি আবার এটি প্রয়োগ করতে হবে যতবার চাপতে পারেন ।
খ্রিস্টান বার্গ

7
এছাড়াও, C-/এবং C-x uবিকল্পগুলি পূর্বাবস্থায়িত করে কী-র বাইন্ডিংগুলি সমান C-_। আমি C-/এটি পছন্দ করি যেহেতু এটি আঘাত করা সহজ।
ররি ও'কেনে

8
সতর্কতা: যখন এই উত্তরটি বলবে যে C-g C-_"পূর্বাবস্থার পরে আবার হবে", এটি প্রথমবার আপনি সংমিশ্রণটি আঘাত করলে তা প্রয়োগ হয়। এর পরে, ছাড়া আপনার পূর্বাবস্থার কীটি পুনরাবৃত্তি করুন C-g। পূর্বাবস্থায় ফিরে আসার পরে তিনবার পুনরায় করতে টাইপ করুন C-g C-_ C-_ C-_। আপনি যদি টাইপ করেন তবে আপনি C-g C-_ C-g C-_ C-g C-_আবার পূর্বাবস্থায় ফিরে
ররি ও'কেনে

@ ররিও'কেন আমি ইম্যাক্স সম্পর্কে খুব বেশি কিছু জানি না, তাই দয়া করে আমি কোথায় ভুল করছি আমাকে সংশোধন করুন, তবে সিজি সি-_ এর পুনরায় করার পরে কোনও প্রভাব পড়বে না, কারণ এটি কেবল পরে কাজ করে একটি পূর্বাবস্থায় ফেরা (যেমন আপনার ডেসক্রিপশন "পূর্বাবস্থার পরে পুনরায় করুন" পরামর্শ দেয় So সুতরাং এটি এতটা নয় যে এটি পূর্বাবস্থায় ফিরানো বা পুনর্নির্মাণগুলি আবার চেনাশোনাগুলিতে চলছে it's এটি কিছুই করছে না কারণ একটি পূর্বাবস্থা কেবল আগে করা হয়নি was তাই সিজি সি- _ সিজি সি-_ প্রথমটির পরে কোনও বৃত্তে চলে না, এটি আক্ষরিক অর্থে কিছুই করে না
বারলপ

56
  • করতে পূর্বাবস্থা একবার:C-/
  • দু'বার পূর্বাবস্থায় ফেরাতে: C-/ C-/
  • পূর্বাবস্থায় ফিরে আসার পরে একবারে আবার করতে :C-g C-/
  • দুইবার পুনরায় করার, অবিলম্বে পূর্বাবস্থায় ফিরিয়ে আনার পর: C-g C-/ C-/। নোট যে C-gপুনরাবৃত্তি হয় না।
  • করতে পূর্বাবস্থা অবিলম্বে আবার , একবার:C-g C-/
  • তাত্ক্ষণিকভাবে আবার পূর্বাবস্থায় ফিরে আসতে, দু'বার: C-g C-/ C-/
  • করতে আবার পুনরায় একই ...

আপনি যদি আপনার শেষ পূর্বাবস্থার C-gপূর্বে পূর্বাবস্থার আদেশটি থেকে কোনও কী (যদি অক্ষরগুলি টাইপ করে বা কেবল কার্সারটি সরান) চাপেন তবে আপনার পরবর্তী পূর্ববর্তী / পূর্বাবস্থার পূর্বে টাইপ করার দরকার নেই । C-gহিট করার জন্য একটি নিরাপদ কী যা এটি নিজে থেকে কিছুই করে না, তবে আপনার পূর্বাবস্থায়িত ক্রমের সমাপ্তির সিগন্যাল করার জন্য একটি নন-পূর্বাবস্থায়িত কী হিসাবে গণ্য। অন্য কমান্ড টিপানো যেমন C-fকাজ করে; এটা ঠিক যে এটি আপনার যেখানে থেকে কার্সারটি সরিয়ে নিয়েছিল।

আপনি যদি হিট করেন C-gবা অন্য কোনও কমান্ড যখন আপনি বোঝাতে চেয়েছিলেন না, এবং আপনি এখন ভুল দিকে পূর্বাবস্থায় ফেরাচ্ছেন, কেবল C-gআপনার দিকটি আবার বিপরীত করতে আঘাত করুন । আপনি চাইলে পূর্বাবস্থায় ফিরে যাওয়ার আগে আপনার দুর্ঘটনাজনিত রেডো এবং পূর্বাবস্থায় ফিরে যেতে হবে তবে আপনি যদি কেবল আঘাত C-/করতে থাকেন তবে শেষ পর্যন্ত আপনি যে রাজ্যে চান সেখানে পৌঁছে যাবেন। বাস্তবে, বাফারটি যে কোনও রাজ্যে ছিল সেগুলি পৌঁছনীয়, যদি আপনি C-gএকবার আঘাত করেন এবং তারপরে C-/পর্যাপ্ত সময় টিপুন ।

এর জন্য বিকল্প শর্টকাট undo, ব্যতীত অন্য C-/হয় C-_, C-x uএবং M-x undo

ইমাক্সের পূর্বাবস্থায় ফিরে আসা সিস্টেম সম্পর্কে আরও তথ্যের জন্য ইমাস ম্যানুয়ালটিতে পূর্বাবস্থা দেখুন See


38

যারা আরও সাধারণ পূর্বাবস্থায় / পুনরায় কার্যকারিতা পেতে চান তাদের জন্য কেউ লিখেছেন undo-tree.el। এটি নন-ইম্যাকসকে পূর্বাবস্থায় ফিরিয়ে আনার চেহারা সরবরাহ করে তবে পূর্বাবস্থায় ফিরিয়ে আনা ইতিহাসের পুরো 'ট্রি'তে অ্যাক্সেস সরবরাহ করে।

আমি ইমাক্সের অন্তর্নির্মিত পূর্বাবস্থায় থাকা সিস্টেমগুলি পছন্দ করি তবে এই প্যাকেজটি খুব স্বজ্ঞাত বলে মনে করি।

ফাইলটি নিজে থেকেই মন্তব্যটি এখানে:

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

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


3
ফ্যান্টাস্টিক! কে বলেছিল যে ইমাক্স পূর্বাবস্থায় আনহীন ছিল? :-)
পিটার.ও

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

1
এই সমস্যার আরেকটি পদ্ধতির যা প্রয়োগ করা অনেক সহজ এবং ভিজ্যুয়ালাইজারের প্রয়োজন হয় না তা হ'ল কেবলমাত্র শেষ শাখা পয়েন্টটি রাখা এবং 3 টি কমান্ড সরবরাহ করা: পূর্বাবস্থায় ফেরানো, স্যুইচ-শাখা। পূর্বাবস্থায় / পুনরায় করা সতর্ক করবে যখন যখন শাখাটি আঘাত পাবে, এবং অন্য কোনও শাখায় কেবল 'শাখায় নয় "বার্তা জারি করলে স্যুইচ-শাখাটি স্যুইচ করবে। যদি শাখা প্রশাখাগুলি কোনও সময়ে ঘটে তবে পূর্বের শাখা পয়েন্টটি নষ্ট হয়ে যায়। এটি রাষ্ট্রীয় ক্ষতির সমস্যাটি যুক্তিসঙ্গতভাবে এবং ন্যূনতম জটিলতায় সমাধান করবে।
বাসেল শিশানী

1
রেডোতে এটির দীর্ঘকালীন বাগ রয়েছে যা এলোমেলোভাবে ব্যর্থ হতে পারে: github.com/syl20bnr/spacemacs/issues/9903 - ২০১৪ সাল থেকে সম্পর্কে জানা
نظرমান 42

@ ধারণাগুলি 42 স্পষ্টত এটি একটি "নন-বাগ": dr-qubit.org/
লস্ট_উন্ডো- ত্রি_হিসটরি

19

পুনরায় করার জন্য একটি পূর্বাবস্থায় ফিরে যাওয়া গাছ থেকে বিরত থাকুন !

অনেক জনপ্রিয় "স্টার্টার কিটস" (উপস্থাপিকা, পুরসেল, স্পেসম্যাকস) পূর্বাবস্থায় গাছের সাথে বান্ডিল হয়ে আসে। সর্বাধিক (সমস্ত?) এমনকি এটি স্বতঃ-সক্ষম করে। উল্লিখিত হিসাবে, পূর্বাবস্থায় ফেরা গাছ পূর্বাবস্থায়িত / পুনরায় গাছটি কল্পনা এবং অনুসরণ করার একটি সহজ উপায়। প্রিলিওড এটিকে কী-জ্যাকেট ( uu) দেয় এবং তাও দেয় C-x u

সমস্যা হল: পূর্বাবস্থা-ট্রি টিপে, Emacs 'ডিফল্ট এবং সুপরিচিত জন্য বাঁধাই ধ্বংস বলে মনে হয় পুনরায় :C-g C-/

পরিবর্তে, আপনি পূর্বাবস্থা / পুনরায় করার জন্য এই প্রতিসম কী ব্যবহার করতে পারেন :

C-/     undo
C-S-/   redo

এগুলি দরকারী যেহেতু কখনও কখনও আপনি ভিজুয়ালাইজারটি না খুলে দ্রুত আবার করতে চান ।


এই. আমি স্পেসম্যাকস ব্যবহার করছি এবং এটি কেন আমার পক্ষে কাজ করছে না তা বুঝতে পারি না। ধন্যবাদ!
মিগাঃই

11

আমি খুঁজে redo.elextremly কুশলী বেঁধে এটা CSz থেকে "স্বাভাবিক" পূর্বাবস্থা / পুনরায় করুন করছেন জন্য, এবং আমি সাধারণত এবং এই মত Cz করার পূর্বাবস্থা:

(when (require 'redo nil 'noerror)
    (global-set-key (kbd "C-S-z") 'redo))

(global-set-key (kbd "C-z") 'undo)

কেবল ফাইলটি ডাউনলোড করুন, এটি আপনার লিস্প-পাথে রাখুন এবং উপরেরটি আপনারটিতে পেস্ট করুন .emacs


Redo.el এর শিরোনামে থাকা মন্তব্যগুলিতে বলা হয়েছে যে এটি এক্সইম্যাক্সের জন্য তৈরি। এটি জিএনইউ ইম্যাকস এবং অন্যান্য সম্পর্কিত ইমাসসেনে ব্যবহার করতে কোনও সমস্যা আছে?
এ লেভি

আমার এখনও কোনও সমস্যা হয়নি, এবং আমি এটি কমপক্ষে months মাস ধরে ব্যবহার করছি :)
মনোোটাক্স

4
Emacswiki.org/emacs/RedoMode থেকে : তবে, redo.el পুরানো and redo.el একটি কাঁটাচামচ এবং সঠিকভাবে গিয়ে Emacs এর নতুন সংস্করণ কাজ করে আপনি এখানে RedoPlus পেতে পারেন:। emacswiki.org/emacs/redo+.el
rofrol

2

Emacs 28 একটি redo কমান্ড যোগ করেছে (ডাকা undo-redo)।

আপনি যদি আরও সাধারণ পূর্বাবস্থায় ফিরে যেতে চান তবে নীচের কমান্ডগুলি ব্যবহার করা যেতে পারে।

(global-set-key (kbd "C-z") 'undo-only)
(global-set-key (kbd "C-S-z") 'undo-redo)

1

আপনি যদি শেষ অপারেশনটি আবার করতে চান তবে নিম্নলিখিতটি করুন।

  1. ESC
  2. আরেকটি পূর্বাবস্থায় ফিরে করুন ( C + /)

0

ডিফল্টরূপে, ইমাসগুলিতে পুনরায় করতে Cg টিপতে হবে, তারপরে পূর্বাবস্থায় ফিরে আসুন।

তবে এটি পুনরায় কমান্ড বাস্তবায়নের জন্য অন্তর্নির্মিত পূর্বাবস্থায় ফিরে আসা সম্ভব।

প্যাকেজ পূর্বাবস্থা-Fu , ব্যবহার গিয়ে Emacs বিল্ট-ইন পূর্বাবস্থা কার্যকারিতা উভয় পূর্বাবস্থা এবং পুনরায় করুন এক্সপোজ করতে।

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