আমি এনভিআই এবং / অথবা মূল vi এ একাধিকবার পূর্বাবস্থায় ফিরে যেতে পারি?


13

কখনও কখনও আমি ভিমে বিহীন সিস্টেমে থাকি এবং ডিফল্ট nvi(বিএসডি সিস্টেম) বা মূল vi(আর্চ লিনাক্স) ব্যবহার করি।

বেশ কয়েকটি পার্থক্য রয়েছে তবে সবচেয়ে বড় বিরক্তি হ'ল আমি কেবল আমার শেষ অপারেশনটিকে পূর্বাবস্থায় ফিরিয়ে আনতে পারি। টিপলে uদ্বিতীয় সময় কাজ একটি "পুনরায়" হয়।

এই কাজ করার কিছু উপায় আছে?

উত্তর:


16

থেকে nvi(1):

 u       Undo the last change made to the file.  If repeated, the u command
         alternates between these two states.  The . command, when used
         immediately after u, causes the change log to be rolled forward or
         backward, depending on the action of the u command.

তাই টিপুন u, এবং তারপরে .আরও পূর্বাবস্থার জন্য চাপতে থাকুন ; আপনি যদি uআবার টিপেন , এটি 'বিপরীতমুখী' দিকনির্দেশ .করবে এবং টিপুন আবার করা হবে ।

আমি গতকাল পর্যন্ত এই সম্পর্কে জানতাম না; এবং ভেবেছিল এটি কোনওভাবে একটি নতুন বৈশিষ্ট্য, তবে মনে হচ্ছে এটি 1996 এর থেকে কমপক্ষে এনভিআই 1.79 থেকে এটির মতো কাজ করেছে ।

এটি আসল vi তে কাজ করে না ; পূর্বাবস্থায় ফিরে আসা হিসাবে নথিভুক্ত করা হয়:

   u      Undoes the last change made to the current buffer.  If repeated,
          will alternate  between  these  two  states,  thus  is  its  own
          inverse.  When  used after an insert which inserted text on more
          than one line, the lines are saved in the numeric named  buffers
          (3.5).

যা সত্যিই বলা জটিল উপায় যে uআবার টিপলে আপনার পরিবর্তনগুলি আবার হয়ে যাবে।

যা ভিমের বক্তব্যগুলি :help undo(এবং কেন আমি ধরে নিয়েছি এটিতেও কাজ করবে না nvi):

 u                       Undo [count] changes.  {Vi: only one level}

1

আসলটির নিকটতম জিনিসটি viএকাধিক পূর্বাবস্থায় ফেরাতে (একপাশে Uএকক লাইনের মধ্যে একাধিক পরিবর্তন ফিরিয়ে আনতে পারে) বাদে নাম্বারযুক্ত নিবন্ধগুলি রয়েছে, যা সর্বশেষ নয়টি সাম্প্রতিক পরিবর্তন বা মুছে ফেলা ধারণ করে।

যদি আপনি একটি নম্বরযুক্ত রেজিস্টার থেকে রাখেন, পরবর্তী ডট কমান্ডগুলি কমান্ডটি পুনরায় পুনঃস্থাপন করার পরে রেজিস্টার বৃদ্ধি করবে।

উদাহরণস্বরূপ, নিম্নলিখিত পাঠ্য সহ কার্সার লাইনটি সহ নির্দেশিত >,

  aaaa
> bbbb
  cccc
  dddd
  eeee

কমান্ডের dd..ফলাফল হবে:

  aaaa
> eeee

আপনি যদি টাইপ করেন "1P, vi রেজিস্টার থেকে সর্বাধিক সাম্প্রতিক মুছে ফেলা হবে "1:

  aaaa
> dddd
  eeee

হিট .করা পরবর্তী সাম্প্রতিকতম নিবন্ধের বিষয়বস্তু রেখে দিবে "2Pএবং .আবার আঘাত করলে নিবন্ধের বিষয়বস্তু স্থাপন করা হবে "3

সুতরাং, সংক্ষেপে, "P..আপনি মুছে ফেলা সমস্ত পাঠ্য ফিরিয়ে দেবে

  aaaa
> bbbb
  cccc
  dddd
  eeee

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

এটি ভিমের অধীনে নথিভুক্ত :help redo-register


-1

আসল vi ব্যবহার করে, n পদক্ষেপে ফিরে যেতে [n] u টিপুন। ক্রমান্বয়ে ধাপে ধাপে ফিরে যেতে ...

  • পিছনে যেতে n পদক্ষেপে [n] টিপুন
  • তারপরে [পদক্ষেপ] পুনরায় করতে n পদক্ষেপগুলি টিপুন u
  • তারপরে [n + 1] টিপুন ফিরে যেতে [n + 1] টিপুন
  • ইত্যাদি

1
আমার কাছে অরিজিনাল ভিআইয়ের খুব কাছে রয়েছে এবং এটি মনে হচ্ছে কোনও পদক্ষেপ পিছনে যাবে না।
মুড়ু

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