هنگام ویرایش با Vim در لینوکس، اشتباه کردن آسان است. خوشبختانه، حل کردن مشکل نیز آسان است. استفاده از Undo در Vim را یاد بگیرید.
نحوه undo در Vim
عملیات واگرد ساده Vim مشابه عملکرد واگردی است که ممکن است در یک واژه پرداز مدرن مانند Microsoft Word، LibreOffice Writer یا Google Docs استفاده کرده باشید. Vim تغییراتی را که در یک فایل ایجاد میکنید ردیابی کرده و در صورت نیاز میتواند آن را بازگرداند.
Vim هر کاری را که در حالت درج انجام میدهید یا هر دستوری را در حالت فرمان به عنوان تغییر در نظر میگیرد. مثلا:

اگر چندین خط را در حالت درج تایپ کنید، سپس فوراً واگرد را انجام دهید، آن خطوط حذف خواهند شد.
اگر خطی را تایپ کنید، به حالت فرمان بروید، سپس به حالت درج برگردید و متن دیگری را تایپ کنید، دو تغییر ایجاد خواهید کرد. واگرد هر کدام را جداگانه حذف میکند.
همچنین میتوانید دستورات Vim مانند “3dd” را برای حذف سه خط تکرار کنید. اگر یکی از این دستورات ترکیبی را صادر کنید، این نیز به عنوان آخرین تغییر دوباره انجام می شود. میتوانید تا زمانی که فایل را باز یا ایجاد کردید، به همان جای شروع، بازگردید.
اگر متوجه شدید که ویرایشی را در Vim انجام دادهاید که نمیخواستید آن را انجام دهید، لغو آن یک فرآیند دو مرحله ای ساده است:
1. Esc را فشار دهید تا مطمئن شوید در حالت فرمان هستید.
2. برای لغو تغییر قبلی، u را فشار دهید.
پیامی درباره تغییرات ایجاد شده، مانند “n خطوط کمتر” مشاهده خواهید کرد.
اگر میخواهید بیش از یک تغییر را لغو کنید، میتوانید آن را نیز انجام دهید. فقط پیشوند دستور undo را با تعداد تغییراتی که میخواهید لغو کنید، قرار دهید، همانطور که با اکثر دستورات دیگر Vim میتوانید. برای مثال، اگر میخواهید دو تغییر را لغو کنید، فلذا متن مشابه زیر را فشار دهید:
2u
نحوه انجام مجدد در Vim
ممکن است متوجه شوید که دستور undo شما کار نامطلوبی انجام میدهد یا فقط نظر خود را در مورد آن تغییر میدهید. در این صورت میتوانید دستورات redo را صادر کنید تا فایل خود را به حالت قبلی برگردانید.

همانطور که Vim تغییرات شما را پیگیری میکند، خنثی سازی شما را نیز پیگیری میکند. بنابراین در صورت نیاز میتوانید از طریق عملیات های مجدد، خنثی سازی خود را لغو کنید. به یاد داشته باشید، Vim چندین خط وارد شده در حالت ورودی را به عنوان یک تغییر در نظر میگیرد، بنابراین اگر یک عملیات را دوباره انجام دهید، چندین خط را در یک فرمان برمیگردانید.
دستور انجام این کار Ctrl + r برای “Redo” است. با فشردن Esc مطمئن شوید که در حالت فرمان هستید. Redo بر اساس همان اصل undo عمل میکند. برای مثال، میتوانید با قرار دادن پیشوند آن با تعداد تکرارهایی که میخواهید انجام دهید، دوباره آن را تکرار کنید.
مانند لغو، پیام کوتاهی در مورد تغییراتی که دوباره انجام شدهاند، مانند تعداد خطوط اضافه شده به فایل، خواهید دید. تا زمانی که به حالت فعلی فایل برگردید، میتوانید هر چند بار این کار را دوباره انجام دهید.