تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

آندو و ریدو Undo and Redo

آندو Undo و ریدو Redo چیست؟

آندو (Undo) یا بازگردانی عنوان یکی از قابلیت‌های پرکاربرد در بسیاری از نرم افزارهای رایانه ای است که در حالت مرسوم، آخرین تغییر انجام گرفته در سند را به حالت قبلی آن بازمی‌گرداند. ریدو (Redo) یا بازانجام معادل معکوس فرمان Undo است به این معنا که می‌تواند عمل آندو شده را مجددا انجام دهد و سند را به حالت پیش از اجرای Undo بازگرداند.

به عبارت بهتر، Undo به معنای خنثی سازی یا بازگردانی عمل انجام شده به حالت قبل است در حالیکه Redo به معنای انجام مجدد عمل Undo شده است.

وجود قابلیت‌های Undo و Redo در نرم افزارها این امکان را فراهم می‌کنند که کاربر بتواند بدون نگرانی در مورد اشتباه کردن یا نامناسب بودن نتیجه عملی که می‌خواهد انجام دهد به کار خود روی سند ادامه دهد.

هردوی این فرامین می‌بایست از تمامی اعمال قابل بازگردانی در برنامه پشتیبانی کنند. برای مثال اگر در یک ویرایشگر تصویر، کاربر مستطیلی را روی سند خود ترسیم کند عمل آندو باید بتواند این مستطیل را از سند حذف کند. پس از اِعمال دستور آندو اگر کاربر متوجه شود به اشتباه این کار را انجام داده است با اجرای دستور ریدو باید مستطیل مجددا در مکان قبلی خود در سند قرار گیرد. در عین حال اگر کاربر ابعاد مستطیلی را که قبلا ترسیم کرده تغییر دهد استفاده از دستور آندو باید مستطیل را به همان ابعاد پیشین بازگرداند.

لازم است بدانید همانطور که اجرای یک فرمان Undo منجربه فعال شدن Redo می‌شود، معمولا انجام هر ویرایش یا عمل جدید روی یک سند نیز، فرمان Redo را غیرفعال می‌کند. به این ترتیب کاربر صرفا بلافاصله پس از اجرای یک یا تعدادی فرمان Undo می‌تواند از فرمان Redo استفاده نماید. این درحالیست که فرمان Undo می‌بایست به محض انجام هر عمل قابل بازگردانی در نرم افزار فعال شود.

البته نباید انتظار داشته باشید هر عملی که در یک نرم افزار انجام داده‌اید قابل بازگردانی باشد. به عنوان مثال اعمالی نظیر ذخیره کردن فایل یا انتخاب یک آبجکت در سند، قابل آندو کردن و همچنین قابل ریدو کردن نیستند.

جزئیات و نحوه اجرای فرامین آندو و ریدو

در سیستم عامل ویندوز، اغلب نرم افزارها برای آندو از میانبرهای صفحه کلید Ctrl + Z یا Alt + Backspace و برای دستور ریدو نیز از ترکیب Ctrl + Y یا Ctrl + Shift + Z استفاده می‌کنند. معمولا این فرامین از طریق منوی Edit یا منوی زمینه ای (Context Menu) نرم افزار نیز قابل دسترسی هستند.

آندو و ریدو Undo and Redo
فرامین Undo و Redo در منوی Edit ویرایشگر متن Notepad++

برای فراهم آوردن امکان استفاده از فرمان Undo، اعمال انجام شده توسط کاربر در قالب یک بافر یا لیست ویژه موسوم به تاریخچه دستورات یا اعمال (Action History) نگه داری می‌شوند.

تعداد اعمال پیشین که قابل آندو کردن هستند در برنامه‌های مختلف متفاوت است. در برخی نرم افزارهای قدیمی، کاربر تنها می‌توانست یک عمل انجام شده آخر را آندو کند درحالیکه در بسیاری از نرم افزارهای امروزی، بافرهای Undo و Redo قادر هستند تا ده‌ها و صدها عمل انجام شده گوناگون را در خود نگه داری کنند.

آندوی خطی و غیرخطی

در اغلب نرم افزارها اجرای یک بار فرمان Undo آخرین دستور یا عمل انجام شده را به حالت قبلی باز می‌گرداند. به این نوع آندو، آندوی خطی (Linear Undo) گفته می‌شود. در Linear Undo معمولا از پشته برای نگه داری تاریخچه اعمال انجام شده استفاده می‌شود. به این ترتیب وقتی کاربر عمل جدیدی را انجام می‌دهد این عمل به بالای یک پشته اختصاصی افزوده می‌شود. زمانی که فرمان Undo اجرا می‌شود بالاترین عنصر موجود در این پشته، آندو می‌شود و همچنین عنصر مربوط به این عمل بلافاصله از پشته حذف می‌شود. همزمان برای فراهم کردن قابلیت Redo، عمل آندو شده به پشته دیگری که متعلق به فرمان Redo است افزوده می‌شود. به عنوان نتیجه انجام این فرایند، عملی که در پشته Undo پایین‌تر از عمل آندو شده قرار داشت اکنون در بالای پشته قرار دارد و با اجرای مجدد فرمان Undo فرایند فوق برای این عمل انجام می‌شود.

در مقابل مدل خطی، نوع دیگری از Undo موسوم به نوع غیرخطی (Non-Linear Undo) نیز وجود دارد. در آندوی غیرخطی، کاربر می‌تواند اعمال ذخیره شده در بافر را به ترتیب دلخواه خود آندو کند. به عنوان مثال اگر در یک سند ابتدا یک جدول و سپس یک تصویر اضافه کرده باشید و نرم افزار از آندوی غیرخطی پشتیبانی کند شما می‌توانید جدول را با کمک لیست مربوط به فرمان آندو حذف کنید بدون اینکه تصویر حذف شود.

نرم افزارهایی که در آن‌ها به طور همزمان چندین کاربر می‌توانند روی یک سند به صورت مشترک کار کنند مفهوم دیگری به نام آندوی چند کاربره (Multi-user Undo) نیز شکل می‌گیرد. آندوی چند کاربره در دو نوع سراسری (Global) و محلی (Local) تعریف می‌شود. در گونه سراسری، آخرین عمل انجام شده روی سند، فارغ از اینکه توسط کدام کاربر انجام شده به حالت قبل برگردانده می‌شود. اما در نوع محلی هر کاربر تنها می‌تواند اعمال مربوط به خود را آندو کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

10 thoughts on “آندو و ریدو Undo and Redo

  • زهرا

    سلام و وقت بخیر
    ممنون از توضیحات بسیار عالی شما .

    پاسخ دادن
    • امیرحسین شهسواری

      سلام ممنون؛ خوشحالم که این مطلب مورد پسند شما واقع شد.

      پاسخ دادن
  • ناشناس

    کلید ctrl+y در داخل سند میتونه متن حذف شده رو برگردونه

    پاسخ دادن
    • امیرحسین شهسواری

      سلام؛
      ترکیب Ctrl+Y همانطور که داخل متن بهش اشاره شد برای عمل Redo مورد استفاده قرار می گیره. اگر متنی رو حذف کردین با Undo کردنش می تونید اون رو برگردونید.

      پاسخ دادن
  • یاسمن

    سلام وقت بخیر
    ظرفیت undo در برنامه ورد چندتاست؟
    و ظرفیت clipboard در برنامه ورد چندتاست؟ و چه جوری کم و زیادش میشه کرد؟
    ممنون

    پاسخ دادن
    • امیرحسین شهسواری

      سلام وقت شما هم بخیر.
      ظرفیت کلیپ بورد اختصاصی مجموعه آفیس 24 آیتم هست . تصور نمی کنم راهی برای افزایش این میزان وجود داشته باشه.
      در مورد Undo هم شاید این مطلب برای افزایش سطوح آندو براتون مفید باشه. هرچند بنده تست نکردم و تضمین نمی کنم جواب بده. پیشنهاد می کنم اگر قراره روی سیستم اصلی تون تست کنید ابتدا از رجیستری بک آپ بگیرید و اگر تا به حال با رجیستری کار نکردید به فرد ماهری برای این کار مراجعه بفرمایید:
      https://tipsmake.com/how-to-increase-the-number-of-undo-in-word-excel-powerpoint

      پاسخ دادن
  • سمانه

    سلام. من امروز موقع کار متوجه شدم کلید ctrl+z کیبوردم کار نمیکنه. میشه کمکم کنید تا دوباره این کلید رو برای آندو تعریف کنم؟ ممنون از لطفتون.

    پاسخ دادن
    • امیرحسین شهسواری

      سلام
      متأسفانه برای مشکل شما راه حل ثابتی وجود نداره. ممکنه با بروزرسانی درایور کیبورد یا Uninstall کردن و نصب مجدد درایور کیبورد مشکل تون حل بشه. سرچ بفرمایید داخل اینترنت نحوه انجام این کارها توضیح داده شده. ممکن هم هست با ریست کردن تنظیمات کیبورد مشکل حل بشه یا مشکل ناشی از بدافزارها باشه.

      پاسخ دادن
  • حمیدرضا

    سلام بسیار مفید بود ممنون

    پاسخ دادن
    • امیرحسین شهسواری

      سلام؛ از اینکه مطلب مفید واقع شده بی نهایت خوشحالیم. ممنون از نظرتون. موفق باشید.

      پاسخ دادن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *