अनडू (पूर्ववत): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Computer command}} {{redirect-distinguish|Redo|Do over (disambiguation)}} {{hatnote group| {{for|how to "undo" an edit in Wikipedia|Wikipedia:Undo|selfref=...")
 
No edit summary
 
(41 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Short description|Computer command}}
{{Short description|Computer command}}
{{redirect-distinguish|Redo|Do over (disambiguation)}}
'''अनडू''' इंटरेक्शन प्रौद्योगिकी है जिसे अनेक कंप्यूटर प्रोग्राम में स्थापित किया जाता है। यह प्रपत्र में किए गए अंतिम परिवर्तन को समाप्त कर देता है, और इसे प्राचीन स्थिति में पुनः लाता है। कुछ और उन्नत प्रोग्रामों में, जैसे कि [[ग्राफिक्स सॉफ्टवेयर]], अनडू करें संपादित की जा रही फ़ाइल पर की गई अंतिम कमांड को नहीं लेता है। अनडू करने की संभावना के साथ, उपयोगकर्ता त्रुटि के भय के बिना अन्वेषण और कार्य कर सकते हैं, क्योंकि उन्हें सरलता से अनडू किया जा सकता है।
{{hatnote group|
{{for|how to "undo" an edit in Wikipedia|Wikipedia:Undo|selfref=true}}{{other uses}}
}}
Undo एक इंटरेक्शन तकनीक है जिसे कई कंप्यूटर प्रोग्राम में लागू किया जाता है। यह दस्तावेज़ में किए गए अंतिम परिवर्तन को मिटा देता है, इसे पुरानी स्थिति में वापस लाता है। कुछ और उन्नत प्रोग्रामों में, जैसे कि [[ग्राफिक्स सॉफ्टवेयर]], पूर्ववत करें संपादित की जा रही फ़ाइल पर की गई अंतिम कमांड को नकार देगा। पूर्ववत करने की संभावना के साथ, उपयोगकर्ता गलती करने के डर के बिना अन्वेषण और कार्य कर सकते हैं, क्योंकि उन्हें आसानी से पूर्ववत किया जा सकता है।


पूर्ववत करने की अपेक्षाओं को समझना आसान है: पूर्वानुमेय कार्यक्षमता के लिए, और सभी पूर्ववत आदेशों को शामिल करने के लिए।<ref name=":0">{{Cite journal|last=Berlage|first=Thomas|date=1994-09-01|title=कमांड ऑब्जेक्ट्स के आधार पर ग्राफिकल यूजर इंटरफेस के लिए एक चयनात्मक पूर्ववत तंत्र|journal=ACM Transactions on Computer-Human Interaction|volume=1|issue=3|pages=269–294|doi=10.1145/196699.196721|s2cid=11848679|issn=1073-0516}}</ref> आमतौर पर पूर्ववत तब तक उपलब्ध होता है जब तक कि उपयोगकर्ता सभी निष्पादित कार्यों को पूर्ववत नहीं कर देता। लेकिन कुछ क्रियाएं ऐसी हैं जो पूर्ववत सूची में संग्रहीत नहीं हैं, और इस प्रकार उन्हें पूर्ववत नहीं किया जा सकता है। उदाहरण के लिए, फ़ाइल को सहेजना पूर्ववत नहीं है, लेकिन सूची में कतारबद्ध है यह दिखाने के लिए कि इसे निष्पादित किया गया था। एक अन्य क्रिया जो आमतौर पर संग्रहीत नहीं होती है, और इस प्रकार पूर्ववत नहीं होती है, स्क्रॉलिंग या चयन है।<ref>{{Cite book|last1=Myers|first1=Brad A.|last2=Kosbie|first2=David S.|date=1996-04-13|title=पुन: प्रयोज्य पदानुक्रमित कमांड ऑब्जेक्ट|publisher=ACM|pages=[https://archive.org/details/commongroundchi900chi9/page/260 260–267]|doi=10.1145/238386.238526|isbn=0897917774|s2cid=17033810|url=https://archive.org/details/commongroundchi900chi9/page/260}}</ref>
अनडू करने की अपेक्षाओं को समझना सरल है: पूर्वानुमेय कार्यक्षमता के लिए, और सभी अनडू कमांडों को सम्मलित करने के लिए <ref name=":0">{{Cite journal|last=Berlage|first=Thomas|date=1994-09-01|title=कमांड ऑब्जेक्ट्स के आधार पर ग्राफिकल यूजर इंटरफेस के लिए एक चयनात्मक पूर्ववत तंत्र|journal=ACM Transactions on Computer-Human Interaction|volume=1|issue=3|pages=269–294|doi=10.1145/196699.196721|s2cid=11848679|issn=1073-0516}}</ref> सामान्यतः अनडू तब तक उपलब्ध होता है जब तक कि उपयोगकर्ता सभी निष्पादित कार्यों को अनडू नहीं कर देता है। किन्तु कुछ क्रियाएं ऐसी हैं जो अनडू सूची में संग्रहीत नहीं होती हैं, और इस प्रकार उन्हें अनडू नहीं किया जा सकता है। उदाहरण के लिए, फ़ाइल को सहेजना अनडू नहीं है, किन्तु सूची में क्रमितबद्ध है, यह दिखाने के लिए कि इसे निष्पादित किया गया था। स्क्रॉलिंग या चयन क्रिया जो सामान्यतः संग्रहीत नहीं होती है, और इस प्रकार अनडू नहीं होती है।<ref>{{Cite book|last1=Myers|first1=Brad A.|last2=Kosbie|first2=David S.|date=1996-04-13|title=पुन: प्रयोज्य पदानुक्रमित कमांड ऑब्जेक्ट|publisher=ACM|pages=[https://archive.org/details/commongroundchi900chi9/page/260 260–267]|doi=10.1145/238386.238526|isbn=0897917774|s2cid=17033810|url=https://archive.org/details/commongroundchi900chi9/page/260}}</ref>
अनडू का विपरीत रिडू होता है। रीडो कमांड पूर्ववत को उलट देता है या बफर को एक और हालिया स्थिति में आगे बढ़ाता है।


पूर्ववत कार्यक्षमता के सामान्य घटक वे आदेश हैं जो उपयोगकर्ता द्वारा निष्पादित किए गए थे, इतिहास बफ़र जो पूर्ण किए गए कार्यों को संग्रहीत करता है, इतिहास बफ़र को नियंत्रित करने के लिए पूर्ववत/फिर से करें प्रबंधक, और उपयोगकर्ता के साथ इंटरैक्ट करने के लिए उपयोगकर्ता इंटरफ़ेस।<ref name=":1">{{Cite journal|last1=Jakubec|first1=Karel|last2=Polák|first2=Marek|last3=Nečaský|first3=Martin|last4=Holubová|first4=Irena|date=2014|title=Undo/Redo Operations in Complex Environments|journal=Procedia Computer Science|volume=32|pages=561–570|doi=10.1016/j.procs.2014.05.461|issn=1877-0509|doi-access=free}}</ref>
अनडू का विपरीत रिडू होता है। रीडो कमांड अनडू के विपरीत होता है ये बफर को अग्रिम स्थिति में आगे बढ़ाता है।
अधिकांश [[Microsoft Windows]] अनुप्रयोगों में, पूर्ववत [[ कमान कुंजी ]] लिए [[ कुंजीपटल संक्षिप्त रीति ]] [[Control-Z]]|Ctrl+Z या Alt+Backspace है, और फिर से करने के लिए शॉर्टकट [[Control-Y]]|Ctrl+Y या [[Control key]]+[[Shift key]]+Z है।


अधिकांश [[Apple macintosh]] अनुप्रयोगों में, अनडू कमांड का शॉर्टकट कमांड की-जेड है, और रीडो के लिए शॉर्टकट कमांड की-शिफ्ट की-जेड है।
अनडू कार्यक्षमता के सामान्य घटक वे कमांड्स हैं जो उपयोगकर्ता द्वारा निष्पादित किए गए थे, इतिहास बफ़र जो पूर्ण किए गए कार्यों को संग्रहीत करता है, इतिहास बफ़र को नियंत्रित करने के लिए अनडू करें I प्रबंधक, और उपयोगकर्ता के साथ इंटरैक्ट करने के लिए उपयोगकर्ता इंटरफ़ेस होता है।<ref name=":1">{{Cite journal|last1=Jakubec|first1=Karel|last2=Polák|first2=Marek|last3=Nečaský|first3=Martin|last4=Holubová|first4=Irena|date=2014|title=Undo/Redo Operations in Complex Environments|journal=Procedia Computer Science|volume=32|pages=561–570|doi=10.1016/j.procs.2014.05.461|issn=1877-0509|doi-access=free}}</ref> अधिकांश [[Microsoft Windows|माइक्रोसॉफ़्ट विंडोज़]] अनुप्रयोगों में, अनडू [[ कमान कुंजी |कमांड कुंजी]] के लिए [[ कुंजीपटल संक्षिप्त रीति |कुंजीपटल संक्षिप्त रीति]] [[Control-Z]] या Alt+Backspace होता है, और पुनः करने के लिए शॉर्टकट [[Control-Y]] या CC+[[Shift key]]+Z होता है।


सभी प्लेटफॉर्म पर, पूर्ववत/फिर से करें कार्यों को [[संपादन मेनू]] के माध्यम से भी एक्सेस किया जा सकता है।
अधिकांश [[Apple macintosh|एप्पल मैकिंटोश]] अनुप्रयोगों में, अनडू कमांड का शॉर्टकट कमांड-जेड है, और रीडो के लिए शॉर्टकट कमांड-शिफ्ट-जेड है।
 
सभी प्लेटफॉर्म पर, अनडू करके कार्यों को [[संपादन मेनू]] के माध्यम से भी एक्सेस किया जा सकता है।


== इतिहास ==
== इतिहास ==
लोगों द्वारा कंप्यूटर का उपयोग करने के तरीके के जवाब में कंप्यूटर पर किसी ऑपरेशन को पूर्ववत करने की क्षमता का स्वतंत्र रूप से कई बार आविष्कार किया गया था।<ref>{{cite thesis|last=Moran|first=Chuktropolis Welling|title=इंटरएक्टिव समय|date=2013-01-01|url=http://roger.ucsd.edu/record=b7759913~S9|type=Ph.D.|publisher=University of California, San Diego|isbn=9781303194450|location=La Jolla}}</ref>
लोगों द्वारा कंप्यूटर का उपयोग करने के पश्चात् उनके उत्तर के आधार पर कंप्यूटर में किसी ऑपरेशन को अनडू करने की क्षमता का स्वतंत्र रूप से आविष्कार किया गया था।<ref>{{cite thesis|last=Moran|first=Chuktropolis Welling|title=इंटरएक्टिव समय|date=2013-01-01|url=http://roger.ucsd.edu/record=b7759913~S9|type=Ph.D.|publisher=University of California, San Diego|isbn=9781303194450|location=La Jolla}}</ref>
[[ ब्राउन विश्वविद्यालय ]] में 1968 में शुरू हुई [[ फ़ाइल पुनर्प्राप्ति और संपादन प्रणाली ]] के बारे में कहा जाता है कि यह पहली कंप्यूटर-आधारित प्रणाली है, जिसमें अनडू फीचर है।<ref>{{Cite book|url=https://books.google.com/books?id=N1qWBQAAQBAJ|title=Memory Machines: The Evolution of Hypertext|last=Barnet|first=Belinda|date=2014-12-01|quote=But the most popular development for novice users in FRESS was not its capacity to accommodate multiple displays and users; it was the 'undo' feature – the feature of which van Dam is most proud (van Dam 2011). FRESS pioneered a single-level undo for both word processing and hypertext. Every edit to a file was saved in a shadow version of the data structure, which allowed for both an 'autosave' and an undo. Brown staff and students understood immediately the importance and usefulness of this feature (van Dam 1999).|publisher=Anthem Press|isbn=9781783083442|page=108|language=en}}</ref><ref name="barnet">{{Cite journal|last=Barnet|first=Belinda|date=2010-01-01|title=Crafting the User-Centered Document Interface: The Hypertext Editing System (HES) and the File Retrieval and Editing System (FRESS)|journal=Digital Humanities Quarterly|url=http://www.digitalhumanities.org/dhq/vol/4/1/000081/000081.html|volume=4|issue=1}}</ref>
[[ ब्राउन विश्वविद्यालय ]] में 1968 में प्रारम्भ हुई [[ फ़ाइल पुनर्प्राप्ति और संपादन प्रणाली |फ़ाइल पुनर्प्राप्ति और संपादन प्रणाली]] के विषय में कहा जाता है कि यह प्रथम कंप्यूटर-आधारित प्रणाली है, जिसमें अनडू फीचर है।<ref>{{Cite book|url=https://books.google.com/books?id=N1qWBQAAQBAJ|title=Memory Machines: The Evolution of Hypertext|last=Barnet|first=Belinda|date=2014-12-01|quote=But the most popular development for novice users in FRESS was not its capacity to accommodate multiple displays and users; it was the 'undo' feature – the feature of which van Dam is most proud (van Dam 2011). FRESS pioneered a single-level undo for both word processing and hypertext. Every edit to a file was saved in a shadow version of the data structure, which allowed for both an 'autosave' and an undo. Brown staff and students understood immediately the importance and usefulness of this feature (van Dam 1999).|publisher=Anthem Press|isbn=9781783083442|page=108|language=en}}</ref><ref name="barnet">{{Cite journal|last=Barnet|first=Belinda|date=2010-01-01|title=Crafting the User-Centered Document Interface: The Hypertext Editing System (HES) and the File Retrieval and Editing System (FRESS)|journal=Digital Humanities Quarterly|url=http://www.digitalhumanities.org/dhq/vol/4/1/000081/000081.html|volume=4|issue=1}}</ref>
[[वारेन टिटेलमैन]] ने 1971 तक पूर्ववत कार्य के साथ BBN-LISP के भाग के रूप में एक प्रोग्रामर सहायक विकसित किया।<ref>{{Cite journal|last=Teitelman|first=Warren|date=1972-01-01|title=Automated Programmering: The Programmer's Assistant|journal=Proceedings of the December 5–7, 1972, Fall Joint Computer Conference, Part II|series=AFIPS '72 (Fall, part II)|location=New York, NY, USA|publisher=ACM|pages=917–921|doi=10.1145/1480083.1480119|s2cid=1276566}}</ref>
[[ज़ेरॉक्स PARC]] [[ब्रावो (सॉफ्टवेयर)]] टेक्स्ट एडिटर के पास 1974 में एक अनडू कमांड था।<ref>{{cite web|title=Bravo Manual in Alto Non-Programmers Guide, p. 52 |url=http://history-computer.com/Library/AltoUsersHandbook.pdf |access-date=2014-03-29}}</ref> [[आईबीएम]] के लांस ए. मिलर और जॉन सी. थॉमस की 1976 की एक शोध रिपोर्ट, इंटरएक्टिव सिस्टम के उपयोग में व्यवहारिक मुद्दे,<ref>{{Cite journal|last1=Miller|first1=Lance A.|last2=Thomas|first2=John C.|date=1977-09-01|title=इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे|journal=International Journal of Man-Machine Studies|volume=9|issue=5|pages=509–536|doi=10.1016/S0020-7373(77)80002-3|issn=0020-7373}}</ref> नोट किया गया कि यह उपयोगकर्ताओं को कम से कम तत्काल पूर्ववर्ती आदेश (कुछ विशेष 'पूर्ववत करें' आदेश जारी करके) 'वापस लेने' की अनुमति देने के लिए काफी उपयोगी होगा।<ref>{{cite web | last=Miller | first=Lance A. |author2=John C. Thomas Jr.  | title=इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे| date=December 1976 | url=http://handle.dtic.mil/100.2/ADA043033 | archive-url=https://web.archive.org/web/20120527163155/http://handle.dtic.mil/100.2/ADA043033 | url-status=dead | archive-date=May 27, 2012 | format=PDF | access-date=2011-05-21}}</ref> PARC (कंपनी) अनुसंधान केंद्र के प्रोग्रामरों ने कीबोर्ड शॉर्टकट Ctrl-Z को पूर्ववत आदेश दिया, जो व्यक्तिगत कंप्यूटर युग में पाठ संपादकों और वर्ड प्रोसेसर की एक महत्वपूर्ण विशेषता बन गई।<ref name="BenZimmer_2009">{{cite web | url=https://www.nytimes.com/2009/09/20/magazine/20FOB-onlanguage-t.html | title=पूर्ववत करने का युग| access-date=2013-06-02 | author=Ben Zimmer | date=2009-09-15 | work=New York Times}</ref> 1980 में, ज़ेरॉक्स PARC के [[लैरी टेस्लर]] ने Apple कंप्यूटर में काम करना शुरू किया। वहाँ, उन्होंने और [[बिल एटकिंसन]] ने Apple लिसा पर एक मानक स्थिरता के रूप में एक पूर्ववत आदेश की उपस्थिति की वकालत की। एटकिन्सन लिसा के एप्लिकेशन सॉफ़्टवेयर के व्यक्तिगत डेवलपर्स को पूर्ववत और फिर से करने के एकल स्तर को शामिल करने में सक्षम था, लेकिन कई स्तरों के लिए पैरवी करने में असफल रहा।{{Citation needed|date=October 2018}} जब Apple ने लिसा के उत्तराधिकारी, [[Macintosh]] को पेश किया, तो यह निर्धारित किया गया कि सभी मानक अनुप्रयोगों में "संपादन" मेनू में पहले आदेश के रूप में "पूर्ववत करें" शामिल होना चाहिए,<ref>{{cite book | title=मैकिंटोश के अंदर, खंड I| last=Apple Computer, Inc. | date=1984 | chapter=User Interface}}</ref> जो आज तक [[macOS]] और [[Windows]] पर मानक बना हुआ है।


बहु-स्तरीय पूर्ववत आदेश 1980 के दशक में पेश किए गए थे, जिससे उपयोगकर्ता न केवल सबसे हालिया बल्कि कई कार्यों को वापस ले सकते थे।<ref name="BenZimmer_2009"/>व्यक्तिगत कंप्यूटर सॉफ़्टवेयर से पहले [[EMACS]] और अन्य टाइमशेयर स्क्रीन संपादकों के पास यह था। [[सिग्नस एड]] पहला अमीगा पाठ संपादक था जिसमें असीमित पूर्ववत / फिर से सुविधा थी। [[AtariWriter]], 1982 में पेश किया गया एक वर्ड-प्रोसेसिंग एप्लिकेशन, पूर्ववत चित्रित किया गया। NewWord, 1984 में NewStar द्वारा जारी किया गया एक अन्य वर्ड-प्रोसेसिंग प्रोग्राम था, जिसमें एक अनरेज़ कमांड था।<ref name="BenZimmer_2009"/>IBM के VisiWord के पास एक अनडिलीट कमांड भी था।
[[वारेन टिटेलमैन]] ने 1971 तक अनडू कार्य के साथ बीबीएन-लिस्प के भाग के रूप में प्रोग्रामर सहायक विकसित किया है।<ref>{{Cite journal|last=Teitelman|first=Warren|date=1972-01-01|title=Automated Programmering: The Programmer's Assistant|journal=Proceedings of the December 5–7, 1972, Fall Joint Computer Conference, Part II|series=AFIPS '72 (Fall, part II)|location=New York, NY, USA|publisher=ACM|pages=917–921|doi=10.1145/1480083.1480119|s2cid=1276566}}</ref>
[[ज़ेरॉक्स PARC|ज़ेरॉक्स पीएआरसी]] [[ब्रावो (सॉफ्टवेयर)]] टेक्स्ट एडिटर के निकट 1974 में अनडू कमांड था।<ref>{{cite web|title=Bravo Manual in Alto Non-Programmers Guide, p. 52 |url=http://history-computer.com/Library/AltoUsersHandbook.pdf |access-date=2014-03-29}}</ref> [[आईबीएम]] के लांस ए. मिलर और जॉन सी. थॉमस की 1976 की शोध रिपोर्ट, इंटरएक्टिव प्रणाली के उपयोग में व्यवहारिक विषय,<ref>{{Cite journal|last1=Miller|first1=Lance A.|last2=Thomas|first2=John C.|date=1977-09-01|title=इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे|journal=International Journal of Man-Machine Studies|volume=9|issue=5|pages=509–536|doi=10.1016/S0020-7373(77)80002-3|issn=0020-7373}}</ref> नोट किया गया कि यह उपयोगकर्ताओं को अल्प से अल्प तत्काल अनडू कमांड 'वापस लेने' की अनुमति देने के लिए अधिक उपयोगी होगा।<ref>{{cite web | last=Miller | first=Lance A. |author2=John C. Thomas Jr.  | title=इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे| date=December 1976 | url=http://handle.dtic.mil/100.2/ADA043033 | archive-url=https://web.archive.org/web/20120527163155/http://handle.dtic.mil/100.2/ADA043033 | url-status=dead | archive-date=May 27, 2012 | format=PDF | access-date=2011-05-21}}</ref> पीएआरसी (कंपनी) अनुसंधान केंद्र के प्रोग्रामरों ने कीबोर्ड शॉर्टकट Ctrl-Z को अनडू कमांड दिया, जो व्यक्तिगत कंप्यूटर युग में पाठ संपादकों और वर्ड प्रोसेसर की महत्वपूर्ण विशेषता बन गई है।<ref name="BenZimmer_2009"><nowiki>{{cite web | url=</nowiki>https://www.nytimes.com/2009/09/20/magazine/20FOB-onlanguage-t.html | title=पूर्ववत करने का युग| access-date=2013-06-02 | author=Ben Zimmer | date=2009-09-15 | work=New York Times}</ref> 1980 में, ज़ेरॉक्स पीएआरसी के [[लैरी टेस्लर]] ने एप्पल कंप्यूटर में कार्य करना प्रारम्भ किया था। वहाँ, उन्होंने और [[बिल एटकिंसन]] ने एप्पल लिसा पर मानक स्थिरता के रूप में अनडू कमांड की उपस्थिति की वकालत की थी। एटकिन्सन लिसा के एप्लिकेशन सॉफ़्टवेयर के व्यक्तिगत डेवलपर्स को अनडू और पुनः करने के एकल स्तर को सम्मलित करने में सक्षम था, किन्तु अनेक स्तरों का निरक्षण करने में असफल हो रहा था।{{Citation needed|date=October 2018}} जब एप्पल ने लिसा के उत्तराधिकारी, [[Macintosh|मैकिनटोश]] को प्रस्तुत किया है, तो यह निर्धारित किया गया कि सभी मानक अनुप्रयोगों में "एडिट" मेनू में पूर्व कमांड के रूप में "अनडू करें" सम्मलित होना चाहिए,<ref>{{cite book | title=मैकिंटोश के अंदर, खंड I| last=Apple Computer, Inc. | date=1984 | chapter=User Interface}}</ref> जो वर्तमान [[macOS|मैकओएस]] और [[Windows|विंडोज]] पर मानक बना हुआ है।


== मॉडल पूर्ववत करें और फिर से करें ==
बहु-स्तरीय अनडू कमांड 1980 के दशक में प्रस्तुत किए गए थे, जिससे उपयोगकर्ता न केवल सबसे अग्रिम जबकि अनेक कार्यों को वापस ले सकते थे।<ref name="BenZimmer_2009" />पर्सनल कंप्यूटर सॉफ़्टवेयर से पूर्व [[EMACS|ईएमएसीएस]] और अन्य टाइमशेयर स्क्रीन संपादकों के निकट  यह था। [[सिग्नस एड]] प्रथम अमीगा पाठ संपादक था जिसमें असीमित अनडू/पुनः सुविधा थी। [[AtariWriter|अटारीराइटर (AtariWriter]]), 1982 में प्रस्तुत किया गया, यह वर्ड-प्रोसेसिंग एप्लिकेशन है, जिसमे अनडू चित्रित किया गया है। न्यूवर्ड, 1984 में न्यूस्टार द्वारा जारी किया गया अन्य वर्ड-प्रोसेसिंग प्रोग्राम था, जिसमें अनरेज़ कमांड था।<ref name="BenZimmer_2009" /> आईबीएम के विसीवर्ड के निकट अनडिलीट कमांड भी था।
पूर्ववत मॉडल को रैखिक या गैर-रैखिक के रूप में वर्गीकृत किया जा सकता है। गैर-रैखिक पूर्ववत मॉडल को स्क्रिप्ट मॉडल, यूएस के मॉडल, ट्रायडिक मॉडल और चयनात्मक पूर्ववत में उप-वर्गीकृत किया जा सकता है।<ref name=":0" />
 
== मॉडल अनडू करें और पुनः करें ==
अनडू मॉडल को रैखिक या अन्य-रैखिक के रूप में वर्गीकृत किया जा सकता है। अन्य-रैखिक अनडू मॉडल को स्क्रिप्ट मॉडल, यूएस के मॉडल, ट्रायडिक मॉडल और चयनात्मक अनडू में उप-वर्गीकृत किया जा सकता है।<ref name=":0" />


मॉडल के कुछ सामान्य गुण हैं:
मॉडल के कुछ सामान्य गुण हैं:


* स्थिर निष्पादन संपत्ति: एक राज्य को आदेशों की एक आदेशित सूची के रूप में दर्शाया गया है। इसका मतलब यह है कि मूल निष्पादन के बाद जिस स्थिति में पहुंचा था, उस राज्य में एक आदेश हमेशा पूर्ववत किया जाता है।<ref name=":1" />* कमजोर स्थिर निष्पादन: इसका मतलब यह है कि यदि पूर्ववत निष्पादित किया जाता है तो सभी आदेश जो पूर्ववत आदेश पर निर्भर करते हैं, आदेश पर निर्भर पूर्ववत होते हैं।
* स्थिर निष्पादन संपत्ति: राज्य को कमांडों की कमांडित सूची के रूप में दर्शाया गया है। इसका तात्पर्य यह है कि मूल निष्पादन के पश्चात् जिस स्थिति में पहुंचा था, उस राज्य में कमांड सदैव अनडू किया जाता है।<ref name=":1" /> अप्रबल स्थिर निष्पादन: इसका तात्पर्य यह है कि यदि अनडू निष्पादित किया जाता है तो सभी कमांड जो अनडू कमांड पर निर्भर करते हैं।
* स्थिर परिणाम संपत्ति: सूची को छोड़कर इस संपत्ति का अर्थ स्थिर निष्पादन संपत्ति के समान है। आदेशों की आदेशित सूची में शामिल है कि उन्हें केवल आदेशों के बजाय निष्पादित किया गया था।
* स्थिर परिणाम संपत्ति: सूची को त्यागकर इस संपत्ति का अर्थ स्थिर निष्पादन संपत्ति के समान होता है। कमांडों की कमांडित सूची में सम्मलित है कि उन्हें केवल कमांडों के अतिरिक्त निष्पादित किया गया था।
* क्रमविनिमेय: इसका मतलब है कि दो अलग-अलग आदेशों को पूर्ववत और फिर से करने के बाद पहुंची हुई स्थिति समान होती है जब उन्हें विपरीत क्रम में निष्पादित किया जाता है।
* क्रमविनिमेय: इसका तात्पर्य है कि दो भिन्न-भिन्न  कमांडों को अनडू और पुनः करने के पश्चात् पहुंची हुई स्थिति समान होती है जब उन्हें विपरीत क्रम में निष्पादित किया जाता है।
* न्यूनतर पूर्ववत गुण: यह वर्णन करता है कि कमांड C का पूर्ववत संचालन केवल कमांड C को पूर्ववत करता है और C से छोटे सभी आदेश जो C पर निर्भर हैं।<ref name=":1" />
* न्यूनतर अनडू गुण: यह वर्णन करता है कि कमांड C का अनडू संचालन केवल कमांड C को अनडू करता है और C से छोटे सभी कमांड जो C पर निर्भर हैं।<ref name=":1" />
 
=== रैखिक अनडू करें ===
 
रैखिक अनडू स्टैक (डेटा संरचना) के साथ कार्यान्वित किया जाता है जो सभी निष्पादित कमांडों का इतिहास संग्रहीत करता है। जब अन्य नया कमांड निष्पादित किया जाता है तो इसे स्टैक के शीर्ष पर जोड़ दिया जाता है। इसलिए, केवल अंतिम निष्पादित कमांड को अनडू किया जा सकता है और इतिहास से विस्थापित किया जा सकता है। अनडू को तब तक दोहराया जा सकता है जब तक कि इतिहास रिक्त हो जाये।<ref name=":0" />
 
=== रैखिक पूर्ववत करें ===
रैखिक पूर्ववत एक स्टैक (डेटा संरचना) (आखिरी में पहले बाहर (एलआईएफओ) डेटा संरचना) के साथ कार्यान्वित किया जाता है जो सभी निष्पादित आदेशों का इतिहास संग्रहीत करता है। जब कोई नया आदेश निष्पादित किया जाता है तो इसे स्टैक के शीर्ष पर जोड़ दिया जाता है। इसलिए, केवल अंतिम निष्पादित कमांड को पूर्ववत किया जा सकता है और इतिहास से हटाया जा सकता है। पूर्ववत तब तक दोहराया जा सकता है जब तक कि इतिहास खाली हो।<ref name=":0" />
 
 
 
==== प्रतिबंधित रैखिक मॉडल ====
==== प्रतिबंधित रैखिक मॉडल ====
प्रतिबंधित रेखीय मॉडल रेखीय पूर्ववत मॉडल का एक संवर्द्धन है। यह रैखिक पूर्ववत करने के लिए ऊपर वर्णित स्थिर निष्पादन संपत्ति को संतुष्ट करता है, क्योंकि यह मॉडल संपत्ति को नहीं रखता है यदि कोई आदेश किया जाता है जबकि इतिहास सूची में अन्य आदेश शामिल होते हैं। नया आदेश जोड़ने से पहले प्रतिबंधित रेखीय मॉडल इतिहास सूची को साफ़ करता है। लेकिन अन्य प्रतिबंध भी उपलब्ध हैं। उदाहरण के लिए, इतिहास सूची का आकार प्रतिबंधित किया जा सकता है या जब एक परिभाषित आकार तक पहुँच जाता है, तो पहले निष्पादित कमांड को सूची से हटा दिया जाता है।<ref name=":0" />
प्रतिबंधित रेखीय मॉडल रेखीय अनडू मॉडल का संवर्द्धन है। यह रैखिक अनडू करने के लिए ऊपर वर्णित स्थिर निष्पादन संपत्ति को संतुष्ट करता है, क्योंकि यह मॉडल संपत्ति को नहीं रखता है यदि अन्य कमांड किया जाता है जबकि इतिहास सूची में अन्य कमांड सम्मलित होते हैं। नया कमांड जोड़ने से पूर्व प्रतिबंधित रेखीय मॉडल इतिहास सूची को स्वच्छ करता है। किन्तु अन्य प्रतिबंध भी उपलब्ध हैं। उदाहरण के लिए, इतिहास सूची का आकार प्रतिबंधित किया जा सकता है या जब परिभाषित आकार तक पहुँच जाता है, तो पूर्व निष्पादित कमांड को सूची से विस्थापित कर दिया जाता है।<ref name=":0" />
 
=== अन्य-रेखीय अनडू करें ===
 
रैखिक अनडू और अन्य-रैखिक अनडू के मध्य मुख्य अंतर यह है कि उपयोगकर्ता द्वारा निष्पादित कमांडों को स्वेच्छानुसार क्रम में अनडू करने की संभावना होती है। उनके निकट सबसे अग्रिम कमांड को अनडू करने का संयोग नहीं है जबकि सूची से कमांड का चयन करने का संयोग है।<ref name=":1" />अन्य रेखीय मॉडल के लिए उपवर्ग हैं जो इस मॉडल को प्रस्तावित करते हैं।
=== गैर रेखीय पूर्ववत ===
रैखिक पूर्ववत और गैर-रैखिक पूर्ववत के बीच मुख्य अंतर यह है कि उपयोगकर्ता द्वारा निष्पादित आदेशों को मनमाने क्रम में पूर्ववत करने की संभावना है। उनके पास सबसे हालिया आदेश को पूर्ववत करने का मौका नहीं है बल्कि सूची से एक आदेश का चयन करने का मौका है।<ref name=":1" />गैर रेखीय मॉडल के लिए उपवर्ग हैं जो इस मॉडल को लागू करते हैं।


==== स्क्रिप्ट मॉडल ====
==== स्क्रिप्ट मॉडल ====
स्क्रिप्ट मॉडल उपयोगकर्ता क्रियाओं को कमांड की स्क्रिप्ट संपादित करने के रूप में संभालता है। निष्पादित आदेशों की इतिहास सूची को एक स्क्रिप्ट के रूप में व्याख्या की जाती है, एक पूर्ववत प्रभाव को उसी तरह परिभाषित किया जाता है जैसे कि पूर्ववत कार्रवाई पहले कभी नहीं हुई थी।<ref name=":0" />राज्य को पूर्ववत करने के परिणाम के रूप में ऐसा होना चाहिए जैसे कि पूर्ववत आदेश को कभी निष्पादित नहीं किया गया था। इस मॉडल का एक नुकसान यह है कि साइड इफेक्ट से बचने के लिए उपयोगकर्ता को पूर्ववत आदेश और वर्तमान स्थिति के बीच संबंध को जानना होगा। इनमें से एक उदाहरण के लिए दोहराव हो सकता है। अन्य समस्याएँ यह हैं कि यदि बाद के आदेशों को एक अलग स्थिति में फिर से किया जाता है कि वे मूल रूप से प्रत्यक्ष हेरफेर इंटरफेस में निष्पादित किए गए थे, तो मूल उपयोगकर्ता क्रिया की यह पुनर्व्याख्या हमेशा स्पष्ट या अच्छी तरह से परिभाषित नहीं होती है।<ref name=":0" />
स्क्रिप्ट मॉडल उपयोगकर्ता क्रियाओं को कमांड की स्क्रिप्ट संपादित करने के रूप में संभालता है। निष्पादित कमांडों की इतिहास सूची को स्क्रिप्ट के रूप में व्याख्या की जाती है, अनडू प्रभाव को उसी प्रकार परिभाषित किया जाता है जैसे कि अनडू के सापेक्ष गतिविधियों के पूर्व में कभी नहीं हुई थी।<ref name=":0" />राज्य को अनडू करने के परिणाम के रूप में ऐसा होना चाहिए जैसे कि अनडू कमांड को कभी निष्पादित नहीं किया गया था। इस मॉडल की हानि यह है कि साइड इफेक्ट से बचने के लिए उपयोगकर्ता को अनडू कमांड और वर्तमान स्थिति के मध्य संबंध को जानना होगा। इनमें से उदाहरण के लिए दोहराव हो सकता है। अन्य समस्याएँ यह हैं कि यदि पश्चात् के कमांडों को भिन्न स्थिति में पुनः किया जाता है कि वे मूल रूप से प्रत्यक्ष हेरफेर इंटरफेस में निष्पादित किए गए थे, तो मूल उपयोगकर्ता क्रिया की यह पुनर्व्याख्या सदैव स्पष्ट या उत्तम प्रकार से परिभाषित नहीं होती है।<ref name=":0" />
 
 
==== यूएस एंड आर मॉडल ====
==== यूएस एंड आर मॉडल ====
इस मॉडल की खास बात यह है कि इसमें एक कमांड को स्किप करने का विकल्प है। इसका मतलब है कि कमांड को फिर से करना छोड़ दिया जा सकता है। स्किप की गई कमांड को स्किप के रूप में चिह्नित किया गया है लेकिन डिलीट नहीं किया गया है। जब नए आदेश निष्पादित किए जाते हैं, तो इतिहास सूची को बरकरार रखा जाता है, इसलिए निष्पादित आदेशों का क्रम उसके साथ पुन: उत्पन्न किया जा सकता है। ऑर्डर को इतिहास के पेड़ के माध्यम से वर्णित किया जा सकता है जो एक निर्देशित ग्राफ है, क्योंकि ग्राफ में एक लिंक बनाने वाली दूसरी शाखा से आदेशों को फिर से जारी रखना संभव है।<ref name=":0" />भले ही आदेशों का सेट सरल और समझने में आसान है, जब उपयोगकर्ता एक से अधिक चरणों को पूर्ववत करना चाहता है, तो लंघन और शाखाओं को जोड़ने वाली जटिल संरचना को समझना और याद रखना कठिन होता है।<ref name=":0" />
इस मॉडल की विशेष बात यह है कि इसमें कमांड को स्किप करने का विकल्प है। इसका तात्पर्य है कि कमांड को पुनः करना त्यागा जा सकता है। स्किप की गई कमांड को स्किप के रूप में चिह्नित किया गया है किन्तु डिलीट नहीं किया गया है। जब नए कमांड निष्पादित किए जाते हैं, तो इतिहास सूची को उपस्थित रखा जाता है, इसलिए निष्पादित कमांडों का क्रम उसके साथ पुन: उत्पन्न किया जा सकता है। आदेश को इतिहास के वृक्ष के माध्यम से वर्णित किया जा सकता है जो निर्देशित ग्राफ है, क्योंकि ग्राफ में लिंक बनाने वाली दूसरी शाखा से कमांडों को पुनः निरंतर रखना संभव है।<ref name=":0" />भले ही कमांडों का सेट समझने में सरल है, जब उपयोगकर्ता अधिक चरणों को अनडू करना चाहता है, तो लंघन और शाखाओं को जोड़ने वाली जटिल संरचना को समझना और याद रखना कठिन होता है।<ref name=":0" />
 
 
==== ट्रायडिक मॉडल ====
==== ट्रायडिक मॉडल ====
इस गैर-रैखिक पूर्ववत मॉडल में घुमाने की संभावना पूर्ववत और फिर से करने के अलावा है। इसकी एक ही डेटा संरचना है जो उपर्युक्त मॉडल के रूप में एक इतिहास सूची और एक अलग रीडो सूची है जिसमें रीडो ऑपरेशन शामिल हैं। रोटेट ऑपरेशन उसके सामने रीडो लिस्ट की आखिरी कमांड सेट करता है। एक तरफ इसका मतलब यह है कि अगली कमांड को फिर से करने के लिए इसे सामने रखकर चुना जा सकता है। दूसरी ओर, रोटेशन का उपयोग रीडो सूची में उस स्थान का चयन करने के लिए किया जा सकता है जहां अगला पूर्ववत ऑपरेशन कमांड डालेगा।<ref name=":0" />इसलिए रीडो की सूची अनियंत्रित है। एक पृथक आदेश को पूर्ववत करने के लिए, उपयोगकर्ता को कई चरणों को पूर्ववत करना होगा, फिर से करें सूची को घुमाना होगा और फिर कई चरणों को फिर से करना होगा।<ref name=":0" />फिर से करने के लिए सूची को तब तक घुमाना पड़ता है जब तक वांछित आदेश ऊपर न हो।
इस अन्य-रैखिक अनडू मॉडल में घुमाने की संभावना अनडू और पुनः करने के अतिरिक्त है। इसकी डेटा संरचना है जो उपर्युक्त मॉडल के रूप में इतिहास सूची और भिन्न रीडो सूची है जिसमें रीडो ऑपरेशन सम्मलित हैं। रोटेट ऑपरेशन उसके सामने रीडो लिस्ट की अंतिम कमांड सेट करता है। एक ओर, इसका तात्पर्य यह है कि अग्रिम कमांड को पुनः करने के लिए इसे सामने रखकर चयन किया जा सकता है। दूसरी ओर, रोटेशन का उपयोग रीडो सूची में उस स्थान का चयन करने के लिए किया जा सकता है जहां अग्रिम अनडू ऑपरेशन कमांड का उपयोग किया जाता है।<ref name=":0" />इसलिए रीडो की सूची अनियंत्रित है। पृथक कमांड को अनडू करने के लिए, उपयोगकर्ता को अनेक चरणों को अनडू करना होगा, पुनः सूची को घुमाना होगा और अनेक चरणों को पुनः करना होगा।<ref name=":0" />पुनः करने के लिए सूची को तब तक घुमाना पड़ता है जब तक वांछित कमांड ऊपर न हो।
 
=== चयनात्मक पूर्ववत करें ===
जकुबेक एट अल। कहते हैं कि चयनात्मक पूर्ववत एक विशेषता है जो एक मॉडल पेश कर सकता है लेकिन चयनात्मक पूर्ववत के लिए कोई स्पष्ट परिभाषा नहीं है।<ref name=":1" />लेखकों ने उन कार्यों का चयन किया जो एक मॉडल के पास होना चाहिए जब वह चयनात्मक पूर्ववत का समर्थन करता है। इतिहास बफ़र में किसी भी निष्पादित क्रिया को पूर्ववत करना संभव होना चाहिए। पूर्ववत की जा रही कार्रवाई से स्वतंत्र क्रियाओं को अछूता छोड़ देना चाहिए।<ref name=":1" />ठीक वैसे ही किसी भी पूर्ववत आदेश के लिए फिर से करना संभव है। चयनात्मक पूर्ववत के लिए तीसरा कार्य यह है कि प्रत्यक्ष उपयोगकर्ता के अनुरोध के बिना इतिहास बफ़र से कोई भी आदेश स्वचालित रूप से खारिज नहीं किया जा सकता है।<ref name=":1" />चयनात्मक पूर्ववत के लिए लागू होता है कि पूर्ववत और फिर से करना किसी भी संदर्भ के बाहर निष्पादन योग्य है। तीन मुख्य मुद्दे हैं। पहला यह है कि पूर्ववत आदेश मूल संदर्भ से बाहर हो सकते हैं। इसके माध्यम से मृत संदर्भ हो सकते हैं जिन्हें संभालना होगा। दूसरा मुद्दा यह है कि संशोधित आदेशों को पूर्ववत किया जा सकता है और इसलिए इसे हल करना होगा कि पूर्ववत करने के बाद कौन सी स्थिति प्रस्तुत की जाएगी। तीसरा मुद्दा कमांड की समस्याओं को दूर कर रहा है। चयनात्मक पूर्ववत का सूचियों में कोई संकेतक नहीं है, इसलिए इसका मतलब है कि स्टैक से कोई आदेश नहीं छोड़ा जाना चाहिए।<ref name=":1" />
 
 
 
==== प्रत्यक्ष चयनात्मक पूर्ववत करें ====
प्रत्यक्ष चयनात्मक पूर्ववत एक इतिहास वृक्ष के साथ प्रतिबंधित रेखीय पूर्ववत का विस्तार है। ऑपरेशन चयनित कमांड की एक प्रति बनाता है, इसे निष्पादित करता है और इसे इतिहास सूची में जोड़ता है। वहाँ दो गैर-रैखिक संचालन चयनात्मक पूर्ववत और चयनात्मक फिर से परिभाषित किए गए हैं, इसलिए यह अधिक सममित है।<ref name=":0" />
 


=== चयनात्मक अनडू करें ===
जकुबेक एट अल कहते हैं कि चयनात्मक अनडू ऐसी विशेषता है जो मॉडल प्रस्तुत कर सकती है किन्तु चयनात्मक अनडू के लिए अन्य स्पष्ट परिभाषा नहीं है।<ref name=":1" />लेखकों ने उन कार्यों का चयन किया जो मॉडल के निकट होना चाहिए जब वह चयनात्मक अनडू का समर्थन करता है। इतिहास बफ़र में किसी भी निष्पादित क्रिया को अनडू करना संभव होना चाहिए। अनडू के सापेक्ष गतिविधियों से स्वतंत्र क्रियाओं को अस्पृष्ट त्याग देना चाहिए।<ref name=":1" />ठीक वैसे ही किसी भी अनडू कमांड के लिए पुनः करना संभव है। चयनात्मक अनडू के लिए तीसरा कार्य यह है कि प्रत्यक्ष उपयोगकर्ता के अनुरोध के बिना इतिहास बफ़र से अन्य भी कमांड स्वचालित रूप से बहिष्कृत नहीं किया जा सकता है।<ref name=":1" />चयनात्मक अनडू के लिए प्रारम्भ होता है कि अनडू और पुनः करना किसी भी संदर्भ के प्रत्येक निष्पादन योग्य है। तीन मुख्य उद्देश्य हैं। प्रथम यह है कि अनडू कमांड मूल संदर्भ से प्रत्येक हो सकते हैं। इसके माध्यम से मृत संदर्भ हो सकते हैं जिन्हें संभालना होगा। दूसरा उद्देश्य यह है कि संशोधित कमांडों को अनडू किया जा सकता है और इसलिए इसका समाधान करना होगा कि अनडू करने के पश्चात् कौन सी स्थिति प्रस्तुत की जाएगी। तीसरा उद्देश्य कमांड की समस्याओं को दूर कर रहा है। चयनात्मक अनडू का सूचियों में अन्य संकेतक नहीं है, इसलिए इसका तात्पर्य है कि स्टैक से अन्य कमांड नहीं त्यागा जाना चाहिए।<ref name=":1" />
==== प्रत्यक्ष चयनात्मक अनडू करें ====
प्रत्यक्ष चयनात्मक अनडू इतिहास वृक्ष के साथ प्रतिबंधित रेखीय अनडू का विस्तार है। ऑपरेशन चयनित कमांड की प्रति बनाता है, इसे निष्पादित करता है और इसे इतिहास सूची में जोड़ता है। वहाँ दो अन्य-रैखिक संचालन चयनात्मक अनडू और चयनात्मक पुनः परिभाषित किए गए हैं, इसलिए यह अधिक सममित है।<ref name=":0" />
=== बहुउपयोगकर्ता अनुप्रयोग ===
=== बहुउपयोगकर्ता अनुप्रयोग ===
जब एकाधिक उपयोगकर्ता एक ही दस्तावेज़ को एक साथ संपादित कर सकते हैं, तो बहु-उपयोगकर्ता पूर्ववत करने की आवश्यकता होती है। वैश्विक बहु-उपयोगकर्ता पूर्ववत दस्तावेज़ में की गई नवीनतम क्रिया को पूर्ववत करता है, भले ही संपादन किसने किया हो। स्थानीय बहु-उपयोगकर्ता पूर्ववत केवल स्थानीय उपयोगकर्ता द्वारा किए गए कार्यों को पूर्ववत करता है, जिसके लिए गैर-रैखिक पूर्ववत कार्यान्वयन की आवश्यकता होती है।
जब एकाधिक उपयोगकर्ता प्रपत्र को संपादित कर सकते हैं, तो बहु-उपयोगकर्ता को अनडू करने की आवश्यकता होती है। वैश्विक बहु-उपयोगकर्ता अनडू प्रपत्र में की गई नवीनतम क्रिया को अनडू करता है, भले ही संपादन किसने किया हो। स्थानीय बहु-उपयोगकर्ता अनडू केवल स्थानीय उपयोगकर्ता द्वारा किए गए कार्यों को अनडू करता है, जिसके लिए अन्य-रैखिक अनडू कार्यान्वयन की आवश्यकता होती है।


जहां पूर्ववत का उपयोग कई संपादनों के माध्यम से बैकट्रैक करने के लिए किया जा सकता है, फिर से करें आदेश क्रिया इतिहास के माध्यम से आगे बढ़ता है। नया संपादन करने से आमतौर पर फिर से की जाने वाली सूची साफ़ हो जाती है। यदि एक ब्रांचिंग रीडो मॉडल का उपयोग किया जाता है, तो नया संपादन क्रिया इतिहास को शाखाबद्ध करता है।
जहां अनडू का उपयोग अनेक संपादनों के माध्यम से बैकट्रैक करने के लिए किया जा सकता है, पुनः कमांड क्रिया इतिहास के माध्यम से आगे बढ़ता है। नया संपादन करने से सामान्यतः पुनः की जाने वाली सूची स्पष्ट हो जाती है। यदि ब्रांचिंग रीडो मॉडल का उपयोग किया जाता है, तो नया संपादन क्रिया इतिहास को शाखाबद्ध करता है।


पूर्ववत की जा सकने वाली पिछली कार्रवाइयों की संख्या प्रोग्राम, संस्करण और हार्डवेयर या सॉफ़्टवेयर क्षमताओं के अनुसार भिन्न होती है। उदाहरण के लिए, [[Adobe Photoshop]] में डिफ़ॉल्ट पूर्ववत करें/फिर से करें स्टैक आकार 20 है लेकिन उपयोगकर्ता द्वारा इसे बदला जा सकता है। दूसरे उदाहरण के रूप में, पहले{{when|date=May 2018}} Microsoft पेंट के संस्करणों को पूर्ववत करने के लिए केवल तीन संपादनों तक की अनुमति है; विंडोज 7 में पेश किए गए संस्करण ने इस सीमा को बढ़ाकर 50 कर दिया।
अनडू की जा सकने वाली प्राचीन गतिविधियों की संख्या प्रोग्राम, संस्करण और हार्डवेयर या सॉफ़्टवेयर क्षमताओं के अनुसार भिन्न होती है। उदाहरण के लिए, [[Adobe Photoshop|एडोब फोटोशॉप]] में डिफ़ॉल्ट अनडू करें/पुनः करें स्टैक आकार 20 है किन्तु उपयोगकर्ता द्वारा इसे परिवर्तित किया जा सकता है। दूसरे उदाहरण के रूप में, {{when|date=May 2018}} माइक्रोसॉफ्ट पेंट के पूर्व संस्करणों को अनडू करने के लिए केवल तीन संपादनों तक की अनुमति है; विंडोज 7 में प्रस्तुत किए गए संस्करण ने इस सीमा को बढ़ाकर 50 कर दिया।


सरलीकृत, एकल-संपादन पूर्ववत सुविधाएँ कभी-कभी पूर्ववत कमांड को पूर्ववत की जा सकने वाली क्रिया के रूप में मानकर फिर से करना बंद कर देती हैं। इसे फ्लिप पूर्ववत मॉडल के रूप में जाना जाता है, क्योंकि उपयोगकर्ता पूर्ववत आदेश का उपयोग करके दो प्रोग्राम राज्यों के बीच फ़्लिप कर सकता है।<ref>Roberta Mancini, Alan Dix and Stefano Levialdi. 2006. [http://www.hcibook.com/alan/papers/undo-techrep-96/tech9611.pdf "Reflections on Undo"]</ref> 1990 के दशक की शुरुआत में बहु-स्तरीय पूर्ववत के व्यापक रूप से अपनाने से पहले यह मानक मॉडल था।
सरलीकृत, एकल-संपादन अनडू सुविधाएँ कभी-कभी अनडू कमांड को अनडू कमांड में की जाने वाली क्रिया के रूप में मानकर पुनः करना बंद कर देती हैं। इसे फ्लिप अनडू मॉडल के रूप में जाना जाता है, क्योंकि उपयोगकर्ता अनडू कमांड का उपयोग करके दो प्रोग्राम राज्यों के मध्य फ़्लिप कर सकता है।<ref>Roberta Mancini, Alan Dix and Stefano Levialdi. 2006. [http://www.hcibook.com/alan/papers/undo-techrep-96/tech9611.pdf "Reflections on Undo"]</ref> 1990 के दशक के प्रारंभ में बहु-स्तरीय अनडू के व्यापक रूप से अपनाने से पूर्व यह मानक मॉडल था।


== कार्यान्वयन पूर्ववत करें ==
== कार्यान्वयन अनडू करें ==


पूर्ववत विभिन्न पैटर्न के माध्यम से लागू किया जा सकता है। [[कमांड पैटर्न]] और [[ स्मृति चिन्ह पैटर्न ]] सबसे आम पैटर्न हैं।
अनडू विभिन्न पैटर्न के माध्यम से प्रारम्भ किया जा सकता है। [[कमांड पैटर्न]] और[[ स्मृति चिन्ह पैटर्न ]]सबसे सामान्य पैटर्न हैं।


=== कमांड पैटर्न ===
=== कमांड पैटर्न ===
कमांड पैटर्न एक [[सॉफ्टवेयर डिजाइन पैटर्न]] है जो ऑपरेशन से कमांड ऑब्जेक्ट में जानकारी को एनकैप्सुलेट करता है। इसका मतलब है कि हर क्रिया एक वस्तु में संग्रहित होती है। सार कमांड वर्ग एक अमूर्त निष्पादन ऑपरेशन को लागू करता है, इसलिए प्रत्येक कमांड ऑब्जेक्ट में एक निष्पादन ऑपरेशन होता है। अनडू के लिए अनएक्सक्यूटेड ऑपरेशन भी होना चाहिए, जो निष्पादित कमांड के प्रभाव को पूर्ववत करता है, जो एक इतिहास सूची में संग्रहीत होते हैं। पूर्ववत और फिर से लागू किया जाता है ताकि सूची को आगे और पीछे से चलाया जा सके जब निष्पादित या अन-निष्पादित आदेश कहा जाता है।<ref name=":2">{{Cite book|url=https://archive.org/details/designpatternsel00gamm|title=Design patterns : elements of reusable object-oriented software|date=1995|publisher=Addison-Wesley|others=Gamma, Erich.|isbn=0201633612|location=Reading, Mass.|oclc=31171684|url-access=registration}}</ref>
कमांड पैटर्न [[सॉफ्टवेयर डिजाइन पैटर्न]] है जो ऑपरेशन से कमांड ऑब्जेक्ट में सूचना को एनकैप्सुलेट करता है। इसका तात्पर्य है कि प्रत्येक क्रिया वस्तु में संग्रहित होती है। सार कमांड वर्ग अमूर्त निष्पादन ऑपरेशन को प्रारम्भ करता है, इसलिए प्रत्येक कमांड ऑब्जेक्ट में निष्पादन ऑपरेशन होता है। अनडू के लिए अनएक्सक्यूटेड ऑपरेशन भी होना चाहिए, जो निष्पादित कमांड के प्रभाव को अनडू करता है, जो इतिहास सूची में संग्रहीत होते हैं। अनडू और पुनः प्रारम्भ किया जाता है जिससे कि सूची को आगे और पीछे से चलाया जा सके जब निष्पादित या अन-निष्पादित कमांड कहा जाता है।<ref name=":2">{{Cite book|url=https://archive.org/details/designpatternsel00gamm|title=Design patterns : elements of reusable object-oriented software|date=1995|publisher=Addison-Wesley|others=Gamma, Erich.|isbn=0201633612|location=Reading, Mass.|oclc=31171684|url-access=registration}}</ref>
एकल पूर्ववत करने के लिए केवल निष्पादित आदेश संग्रहीत किया जाता है। बहु स्तरीय पूर्ववत के विपरीत जहां न केवल आदेशों के साथ इतिहास सूची सहेजी जाती है बल्कि पूर्ववत स्तरों की संख्या भी सूची की अधिकतम लंबाई निर्धारित की जा सकती है।<ref name=":2" />
 


एकल अनडू करने के लिए केवल निष्पादित कमांड संग्रहीत किया जाता है। बहु स्तरीय अनडू के विपरीत जहां न केवल कमांडों के साथ इतिहास सूची सहेजी जाती है जबकि अनडू स्तरों की संख्या भी सूची की अधिकतम लंबाई निर्धारित की जा सकती है।<ref name=":2" />
=== मेमेंटो पैटर्न ===
=== मेमेंटो पैटर्न ===
मेमेंटो पैटर्न के साथ किसी वस्तु की आंतरिक स्थिति को संग्रहित किया जाता है। जिस वस्तु में राज्य को सहेजा जाता है, उसे स्मृति चिन्ह कहा जाता है और स्मृति चिन्ह प्रवर्तक के माध्यम से आयोजित किया जाता है। यह एक स्मृति चिन्ह लौटाता है, वर्तमान स्थिति की जानकारी के साथ आरंभ किया जाता है, जब पूर्ववत निष्पादित किया जाता है, ताकि राज्य की जाँच की जा सके। स्मृति चिन्ह केवल प्रवर्तक के लिए दृश्यमान है।
मेमेंटो पैटर्न के साथ किसी वस्तु की आंतरिक स्थिति को संग्रहित किया जाता है। जिस वस्तु में राज्य को सहेजा जाता है, उसे स्मृति चिन्ह कहा जाता है और स्मृति चिन्ह प्रवर्तक के माध्यम से आयोजित किया जाता है। यह स्मृति चिन्ह लौटाता है, वर्तमान स्थिति की सूचना के साथ आरंभ किया जाता है, जब अनडू निष्पादित किया जाता है, जिससे कि राज्य का परीक्षण किया जा सके। स्मृति चिन्ह केवल प्रवर्तक के लिए दृश्यमान है।


मेमेंटो पैटर्न में अनडू मैकेनिज्म को केयरटेकर कहा जाता है। यह स्मृति चिन्हों को सुरक्षित रखने के लिए जिम्मेदार है लेकिन इनकी सामग्री को कभी नहीं बदलें। पूर्ववत करने के लिए कार्यवाहक प्रवर्तक के एक स्मृति चिन्ह का अनुरोध करता है और फिर पूर्ववत आवेदन करता है।<ref name=":2" />
मेमेंटो पैटर्न में अनडू मैकेनिज्म को केयरटेकर कहा जाता है। यह स्मृति चिन्हों को सुरक्षित रखने के लिए उत्तरदायी है किन्तु इनकी सामग्री को कभी नहीं परिवर्तित किया जा सकता है। अनडू करने के लिए कार्यवाहक प्रवर्तक के स्मृति चिन्ह का अनुरोध करता है और फिर अनडू आवेदन करता है।<ref name=":2" />


पूर्ववत तंत्र का अधिकांश भाग विशिष्ट अनुप्रयोगों या कमांड वर्गों पर निर्भरता के बिना कार्यान्वित किया जा सकता है। इसमें इतिहास सूची का प्रबंधन, इतिहास स्क्रॉलर, पूर्ववत और फिर से करने के लिए मेनू प्रविष्टियाँ और अगले उपलब्ध कमांड के नाम के आधार पर मेनू प्रविष्टियों का अद्यतन शामिल है।<ref name=":0" />
अनडू तंत्र का अधिकांश भाग विशिष्ट अनुप्रयोगों या कमांड वर्गों पर निर्भरता के बिना कार्यान्वित किया जा सकता है। इसमें इतिहास सूची का प्रबंधन, इतिहास स्क्रॉलर, अनडू और पुनः करने के लिए मेनू प्रविष्टियाँ और अग्रिम उपलब्ध कमांड के नाम के आधार पर मेनू प्रविष्टियों का अद्यतन सम्मलित है।<ref name=":0" />


प्रत्येक कमांड क्लास में एक डू विधि होती है जिसे कमांड निष्पादित होने पर कहा जाता है। अनडू-मेथड डू-मेथड के रिवर्स ऑपरेशन को लागू करता है। रिवर्स को लागू करने के लिए कई अलग-अलग रणनीतियां हैं।
प्रत्येक कमांड क्लास में डू विधि होती है जिसे कमांड निष्पादित होने पर कहा जाता है। अनडू-मेथड डू-मेथड के रिवर्स ऑपरेशन को प्रारम्भ करता है। रिवर्स को प्रारम्भ करने के लिए अनेक भिन्न-भिन्न रणनीतियां हैं।


* पूर्ण चेकपॉइंट':' इसका अर्थ है कि कमांड निष्पादित होने के बाद पूर्ण स्थिति सहेजी जाती है। यह सबसे आसान कार्यान्वयन है, लेकिन अत्यधिक कुशल नहीं है और इसलिए अक्सर इसका उपयोग नहीं किया जाता है।
* पूर्ण चेकपॉइंट':' इसका अर्थ है कि कमांड निष्पादित होने के पश्चात् पूर्ण स्थिति सहेजी जाती है। यह सबसे सरल कार्यान्वयन है, किन्तु अत्यधिक कुशल नहीं है और इसलिए प्रायः इसका उपयोग नहीं किया जाता है।
* पूर्ण पुन: चलाएँ: इसलिए, प्रारंभिक अवस्था को सहेजा जाता है और इतिहास की सूची में प्रत्येक राज्य को प्रारंभिक अवस्था से शुरू करके और इतिहास की शुरुआत से सभी आदेशों को फिर से शुरू करके पहुँचा जा सकता है।<ref name=":0" />* आंशिक चेकपॉइंट':' यह सबसे अधिक उपयोग की जाने वाली रणनीति है। बदली हुई एप्लिकेशन स्थिति सहेजी जाती है और राज्य के हिस्से को पूर्ववत करने के साथ आगे के मूल्य पर वापस सेट किया जाता है।
* पूर्ण पुन: चलाएँ: इसलिए, प्रारंभिक अवस्था को सहेजा जाता है और इतिहास की सूची में प्रत्येक राज्य को प्रारंभिक अवस्था से प्रारम्भ करके और इतिहास की प्रारंभ से सभी कमांडों को पुनः प्रारम्भ करके उपयोग किया जा सकता है।<ref name=":0" /> आंशिक चेकपॉइंट':' यह सबसे अधिक उपयोग की जाने वाली रणनीति है। परिवर्तित हुई एप्लिकेशन स्थिति सहेजी जाती है और राज्य के भाग को अनडू करने के साथ आगे के मूल्य पर वापस सेट किया जाता है।
* उलटा कार्य: उलटा कार्य को सहेजे गए राज्य की जानकारी की आवश्यकता नहीं है। उदाहरण के लिए, वस्तु को सापेक्ष मात्रा में वापस ले जाकर हिलना उलटा हो सकता है।<ref name=":0" />चयनात्मक पूर्ववत करने के लिए राज्य को बचाने के लिए पर्याप्त जानकारी नहीं है।
* इनवर्स फंक्शन: इनवर्स फंक्शन को सहेजे गए राज्य की सूचना की आवश्यकता नहीं है। उदाहरण के लिए, ऑब्जेक्ट को सापेक्ष मात्रा में इनवर्स हो सकता है।<ref name=":0" />चयनात्मक अनडू करने के लिए राज्य को बचाने के लिए पर्याप्त सूचना नहीं है।


== यह भी देखें ==
== यह भी देखें ==
* [[प्रतिवर्ती कंप्यूटिंग]]
* [[प्रतिवर्ती कंप्यूटिंग]]
* [[रोलबैक (डेटा प्रबंधन)]]
* [[रोलबैक (डेटा प्रबंधन)]]
* [[हटाना]]
* [[हटाना|विस्थापित]]
* [[संस्करण नियंत्रण]] ([[देशी और विदेशी प्रारूप]])
* [[संस्करण नियंत्रण]] ([[देशी और विदेशी प्रारूप]])


Line 109: Line 88:




== बाहरी संबंध ==
== बाप्रत्येक ी संबंध ==
{{wiktionary}}
*[https://www.nytimes.com/2009/09/20/magazine/20FOB-onlanguage-t.html?_r=0 The Age of अनडूing] - Article about the linguistic history of अनडू at The New York Times Magazine.
*[https://www.nytimes.com/2009/09/20/magazine/20FOB-onlanguage-t.html?_r=0 The Age of Undoing] - Article about the linguistic history of Undo at The New York Times Magazine.
*[https://docplayer.net/39445574-Czech-technical-university-prague-faculty-of-electrical-engineering-bachelor-thesis-cascading-undo-control-jan-vratislav.html Cascading अनडू control] - a paper focused on what is cascading अनडू and how it might be presented to users
*[https://docplayer.net/39445574-Czech-technical-university-prague-faculty-of-electrical-engineering-bachelor-thesis-cascading-undo-control-jan-vratislav.html Cascading undo control] - a paper focused on what is cascading undo and how it might be presented to users
[[Category: पाठ संपादक सुविधाएँ]] [[Category: प्रतिवर्ती कंप्यूटिंग]] [[Category: 1968 में कंप्यूटर से संबंधित परिचय]]
 
 


[[Category: Machine Translated Page]]
[[Category:1968 में कंप्यूटर से संबंधित परिचय]]
[[Category:All articles with unsourced statements]]
[[Category:All articles with vague or ambiguous time]]
[[Category:Articles with unsourced statements from October 2018]]
[[Category:CS1 English-language sources (en)]]
[[Category:CS1 maint]]
[[Category:Created On 02/03/2023]]
[[Category:Created On 02/03/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Vague or ambiguous time from May 2018]]
[[Category:पाठ संपादक सुविधाएँ]]
[[Category:प्रतिवर्ती कंप्यूटिंग]]

Latest revision as of 15:29, 27 October 2023

अनडू इंटरेक्शन प्रौद्योगिकी है जिसे अनेक कंप्यूटर प्रोग्राम में स्थापित किया जाता है। यह प्रपत्र में किए गए अंतिम परिवर्तन को समाप्त कर देता है, और इसे प्राचीन स्थिति में पुनः लाता है। कुछ और उन्नत प्रोग्रामों में, जैसे कि ग्राफिक्स सॉफ्टवेयर, अनडू करें संपादित की जा रही फ़ाइल पर की गई अंतिम कमांड को नहीं लेता है। अनडू करने की संभावना के साथ, उपयोगकर्ता त्रुटि के भय के बिना अन्वेषण और कार्य कर सकते हैं, क्योंकि उन्हें सरलता से अनडू किया जा सकता है।

अनडू करने की अपेक्षाओं को समझना सरल है: पूर्वानुमेय कार्यक्षमता के लिए, और सभी अनडू कमांडों को सम्मलित करने के लिए [1] सामान्यतः अनडू तब तक उपलब्ध होता है जब तक कि उपयोगकर्ता सभी निष्पादित कार्यों को अनडू नहीं कर देता है। किन्तु कुछ क्रियाएं ऐसी हैं जो अनडू सूची में संग्रहीत नहीं होती हैं, और इस प्रकार उन्हें अनडू नहीं किया जा सकता है। उदाहरण के लिए, फ़ाइल को सहेजना अनडू नहीं है, किन्तु सूची में क्रमितबद्ध है, यह दिखाने के लिए कि इसे निष्पादित किया गया था। स्क्रॉलिंग या चयन क्रिया जो सामान्यतः संग्रहीत नहीं होती है, और इस प्रकार अनडू नहीं होती है।[2]

अनडू का विपरीत रिडू होता है। रीडो कमांड अनडू के विपरीत होता है ये बफर को अग्रिम स्थिति में आगे बढ़ाता है।

अनडू कार्यक्षमता के सामान्य घटक वे कमांड्स हैं जो उपयोगकर्ता द्वारा निष्पादित किए गए थे, इतिहास बफ़र जो पूर्ण किए गए कार्यों को संग्रहीत करता है, इतिहास बफ़र को नियंत्रित करने के लिए अनडू करें I प्रबंधक, और उपयोगकर्ता के साथ इंटरैक्ट करने के लिए उपयोगकर्ता इंटरफ़ेस होता है।[3] अधिकांश माइक्रोसॉफ़्ट विंडोज़ अनुप्रयोगों में, अनडू कमांड कुंजी के लिए कुंजीपटल संक्षिप्त रीति Control-Z या Alt+Backspace होता है, और पुनः करने के लिए शॉर्टकट Control-Y या CC+Shift key+Z होता है।

अधिकांश एप्पल मैकिंटोश अनुप्रयोगों में, अनडू कमांड का शॉर्टकट कमांड-जेड है, और रीडो के लिए शॉर्टकट कमांड-शिफ्ट-जेड है।

सभी प्लेटफॉर्म पर, अनडू करके कार्यों को संपादन मेनू के माध्यम से भी एक्सेस किया जा सकता है।

इतिहास

लोगों द्वारा कंप्यूटर का उपयोग करने के पश्चात् उनके उत्तर के आधार पर कंप्यूटर में किसी ऑपरेशन को अनडू करने की क्षमता का स्वतंत्र रूप से आविष्कार किया गया था।[4] ब्राउन विश्वविद्यालय में 1968 में प्रारम्भ हुई फ़ाइल पुनर्प्राप्ति और संपादन प्रणाली के विषय में कहा जाता है कि यह प्रथम कंप्यूटर-आधारित प्रणाली है, जिसमें अनडू फीचर है।[5][6]

वारेन टिटेलमैन ने 1971 तक अनडू कार्य के साथ बीबीएन-लिस्प के भाग के रूप में प्रोग्रामर सहायक विकसित किया है।[7] ज़ेरॉक्स पीएआरसी ब्रावो (सॉफ्टवेयर) टेक्स्ट एडिटर के निकट 1974 में अनडू कमांड था।[8] आईबीएम के लांस ए. मिलर और जॉन सी. थॉमस की 1976 की शोध रिपोर्ट, इंटरएक्टिव प्रणाली के उपयोग में व्यवहारिक विषय,[9] नोट किया गया कि यह उपयोगकर्ताओं को अल्प से अल्प तत्काल अनडू कमांड 'वापस लेने' की अनुमति देने के लिए अधिक उपयोगी होगा।[10] पीएआरसी (कंपनी) अनुसंधान केंद्र के प्रोग्रामरों ने कीबोर्ड शॉर्टकट Ctrl-Z को अनडू कमांड दिया, जो व्यक्तिगत कंप्यूटर युग में पाठ संपादकों और वर्ड प्रोसेसर की महत्वपूर्ण विशेषता बन गई है।[11] 1980 में, ज़ेरॉक्स पीएआरसी के लैरी टेस्लर ने एप्पल कंप्यूटर में कार्य करना प्रारम्भ किया था। वहाँ, उन्होंने और बिल एटकिंसन ने एप्पल लिसा पर मानक स्थिरता के रूप में अनडू कमांड की उपस्थिति की वकालत की थी। एटकिन्सन लिसा के एप्लिकेशन सॉफ़्टवेयर के व्यक्तिगत डेवलपर्स को अनडू और पुनः करने के एकल स्तर को सम्मलित करने में सक्षम था, किन्तु अनेक स्तरों का निरक्षण करने में असफल हो रहा था।[citation needed] जब एप्पल ने लिसा के उत्तराधिकारी, मैकिनटोश को प्रस्तुत किया है, तो यह निर्धारित किया गया कि सभी मानक अनुप्रयोगों में "एडिट" मेनू में पूर्व कमांड के रूप में "अनडू करें" सम्मलित होना चाहिए,[12] जो वर्तमान मैकओएस और विंडोज पर मानक बना हुआ है।

बहु-स्तरीय अनडू कमांड 1980 के दशक में प्रस्तुत किए गए थे, जिससे उपयोगकर्ता न केवल सबसे अग्रिम जबकि अनेक कार्यों को वापस ले सकते थे।[11]पर्सनल कंप्यूटर सॉफ़्टवेयर से पूर्व ईएमएसीएस और अन्य टाइमशेयर स्क्रीन संपादकों के निकट यह था। सिग्नस एड प्रथम अमीगा पाठ संपादक था जिसमें असीमित अनडू/पुनः सुविधा थी। अटारीराइटर (AtariWriter), 1982 में प्रस्तुत किया गया, यह वर्ड-प्रोसेसिंग एप्लिकेशन है, जिसमे अनडू चित्रित किया गया है। न्यूवर्ड, 1984 में न्यूस्टार द्वारा जारी किया गया अन्य वर्ड-प्रोसेसिंग प्रोग्राम था, जिसमें अनरेज़ कमांड था।[11] आईबीएम के विसीवर्ड के निकट अनडिलीट कमांड भी था।

मॉडल अनडू करें और पुनः करें

अनडू मॉडल को रैखिक या अन्य-रैखिक के रूप में वर्गीकृत किया जा सकता है। अन्य-रैखिक अनडू मॉडल को स्क्रिप्ट मॉडल, यूएस के मॉडल, ट्रायडिक मॉडल और चयनात्मक अनडू में उप-वर्गीकृत किया जा सकता है।[1]

मॉडल के कुछ सामान्य गुण हैं:

  • स्थिर निष्पादन संपत्ति: राज्य को कमांडों की कमांडित सूची के रूप में दर्शाया गया है। इसका तात्पर्य यह है कि मूल निष्पादन के पश्चात् जिस स्थिति में पहुंचा था, उस राज्य में कमांड सदैव अनडू किया जाता है।[3] अप्रबल स्थिर निष्पादन: इसका तात्पर्य यह है कि यदि अनडू निष्पादित किया जाता है तो सभी कमांड जो अनडू कमांड पर निर्भर करते हैं।
  • स्थिर परिणाम संपत्ति: सूची को त्यागकर इस संपत्ति का अर्थ स्थिर निष्पादन संपत्ति के समान होता है। कमांडों की कमांडित सूची में सम्मलित है कि उन्हें केवल कमांडों के अतिरिक्त निष्पादित किया गया था।
  • क्रमविनिमेय: इसका तात्पर्य है कि दो भिन्न-भिन्न कमांडों को अनडू और पुनः करने के पश्चात् पहुंची हुई स्थिति समान होती है जब उन्हें विपरीत क्रम में निष्पादित किया जाता है।
  • न्यूनतर अनडू गुण: यह वर्णन करता है कि कमांड C का अनडू संचालन केवल कमांड C को अनडू करता है और C से छोटे सभी कमांड जो C पर निर्भर हैं।[3]

रैखिक अनडू करें

रैखिक अनडू स्टैक (डेटा संरचना) के साथ कार्यान्वित किया जाता है जो सभी निष्पादित कमांडों का इतिहास संग्रहीत करता है। जब अन्य नया कमांड निष्पादित किया जाता है तो इसे स्टैक के शीर्ष पर जोड़ दिया जाता है। इसलिए, केवल अंतिम निष्पादित कमांड को अनडू किया जा सकता है और इतिहास से विस्थापित किया जा सकता है। अनडू को तब तक दोहराया जा सकता है जब तक कि इतिहास रिक्त न हो जाये।[1]

प्रतिबंधित रैखिक मॉडल

प्रतिबंधित रेखीय मॉडल रेखीय अनडू मॉडल का संवर्द्धन है। यह रैखिक अनडू करने के लिए ऊपर वर्णित स्थिर निष्पादन संपत्ति को संतुष्ट करता है, क्योंकि यह मॉडल संपत्ति को नहीं रखता है यदि अन्य कमांड किया जाता है जबकि इतिहास सूची में अन्य कमांड सम्मलित होते हैं। नया कमांड जोड़ने से पूर्व प्रतिबंधित रेखीय मॉडल इतिहास सूची को स्वच्छ करता है। किन्तु अन्य प्रतिबंध भी उपलब्ध हैं। उदाहरण के लिए, इतिहास सूची का आकार प्रतिबंधित किया जा सकता है या जब परिभाषित आकार तक पहुँच जाता है, तो पूर्व निष्पादित कमांड को सूची से विस्थापित कर दिया जाता है।[1]

अन्य-रेखीय अनडू करें

रैखिक अनडू और अन्य-रैखिक अनडू के मध्य मुख्य अंतर यह है कि उपयोगकर्ता द्वारा निष्पादित कमांडों को स्वेच्छानुसार क्रम में अनडू करने की संभावना होती है। उनके निकट सबसे अग्रिम कमांड को अनडू करने का संयोग नहीं है जबकि सूची से कमांड का चयन करने का संयोग है।[3]अन्य रेखीय मॉडल के लिए उपवर्ग हैं जो इस मॉडल को प्रस्तावित करते हैं।

स्क्रिप्ट मॉडल

स्क्रिप्ट मॉडल उपयोगकर्ता क्रियाओं को कमांड की स्क्रिप्ट संपादित करने के रूप में संभालता है। निष्पादित कमांडों की इतिहास सूची को स्क्रिप्ट के रूप में व्याख्या की जाती है, अनडू प्रभाव को उसी प्रकार परिभाषित किया जाता है जैसे कि अनडू के सापेक्ष गतिविधियों के पूर्व में कभी नहीं हुई थी।[1]राज्य को अनडू करने के परिणाम के रूप में ऐसा होना चाहिए जैसे कि अनडू कमांड को कभी निष्पादित नहीं किया गया था। इस मॉडल की हानि यह है कि साइड इफेक्ट से बचने के लिए उपयोगकर्ता को अनडू कमांड और वर्तमान स्थिति के मध्य संबंध को जानना होगा। इनमें से उदाहरण के लिए दोहराव हो सकता है। अन्य समस्याएँ यह हैं कि यदि पश्चात् के कमांडों को भिन्न स्थिति में पुनः किया जाता है कि वे मूल रूप से प्रत्यक्ष हेरफेर इंटरफेस में निष्पादित किए गए थे, तो मूल उपयोगकर्ता क्रिया की यह पुनर्व्याख्या सदैव स्पष्ट या उत्तम प्रकार से परिभाषित नहीं होती है।[1]

यूएस एंड आर मॉडल

इस मॉडल की विशेष बात यह है कि इसमें कमांड को स्किप करने का विकल्प है। इसका तात्पर्य है कि कमांड को पुनः करना त्यागा जा सकता है। स्किप की गई कमांड को स्किप के रूप में चिह्नित किया गया है किन्तु डिलीट नहीं किया गया है। जब नए कमांड निष्पादित किए जाते हैं, तो इतिहास सूची को उपस्थित रखा जाता है, इसलिए निष्पादित कमांडों का क्रम उसके साथ पुन: उत्पन्न किया जा सकता है। आदेश को इतिहास के वृक्ष के माध्यम से वर्णित किया जा सकता है जो निर्देशित ग्राफ है, क्योंकि ग्राफ में लिंक बनाने वाली दूसरी शाखा से कमांडों को पुनः निरंतर रखना संभव है।[1]भले ही कमांडों का सेट समझने में सरल है, जब उपयोगकर्ता अधिक चरणों को अनडू करना चाहता है, तो लंघन और शाखाओं को जोड़ने वाली जटिल संरचना को समझना और याद रखना कठिन होता है।[1]

ट्रायडिक मॉडल

इस अन्य-रैखिक अनडू मॉडल में घुमाने की संभावना अनडू और पुनः करने के अतिरिक्त है। इसकी डेटा संरचना है जो उपर्युक्त मॉडल के रूप में इतिहास सूची और भिन्न रीडो सूची है जिसमें रीडो ऑपरेशन सम्मलित हैं। रोटेट ऑपरेशन उसके सामने रीडो लिस्ट की अंतिम कमांड सेट करता है। एक ओर, इसका तात्पर्य यह है कि अग्रिम कमांड को पुनः करने के लिए इसे सामने रखकर चयन किया जा सकता है। दूसरी ओर, रोटेशन का उपयोग रीडो सूची में उस स्थान का चयन करने के लिए किया जा सकता है जहां अग्रिम अनडू ऑपरेशन कमांड का उपयोग किया जाता है।[1]इसलिए रीडो की सूची अनियंत्रित है। पृथक कमांड को अनडू करने के लिए, उपयोगकर्ता को अनेक चरणों को अनडू करना होगा, पुनः सूची को घुमाना होगा और अनेक चरणों को पुनः करना होगा।[1]पुनः करने के लिए सूची को तब तक घुमाना पड़ता है जब तक वांछित कमांड ऊपर न हो।

चयनात्मक अनडू करें

जकुबेक एट अल कहते हैं कि चयनात्मक अनडू ऐसी विशेषता है जो मॉडल प्रस्तुत कर सकती है किन्तु चयनात्मक अनडू के लिए अन्य स्पष्ट परिभाषा नहीं है।[3]लेखकों ने उन कार्यों का चयन किया जो मॉडल के निकट होना चाहिए जब वह चयनात्मक अनडू का समर्थन करता है। इतिहास बफ़र में किसी भी निष्पादित क्रिया को अनडू करना संभव होना चाहिए। अनडू के सापेक्ष गतिविधियों से स्वतंत्र क्रियाओं को अस्पृष्ट त्याग देना चाहिए।[3]ठीक वैसे ही किसी भी अनडू कमांड के लिए पुनः करना संभव है। चयनात्मक अनडू के लिए तीसरा कार्य यह है कि प्रत्यक्ष उपयोगकर्ता के अनुरोध के बिना इतिहास बफ़र से अन्य भी कमांड स्वचालित रूप से बहिष्कृत नहीं किया जा सकता है।[3]चयनात्मक अनडू के लिए प्रारम्भ होता है कि अनडू और पुनः करना किसी भी संदर्भ के प्रत्येक निष्पादन योग्य है। तीन मुख्य उद्देश्य हैं। प्रथम यह है कि अनडू कमांड मूल संदर्भ से प्रत्येक हो सकते हैं। इसके माध्यम से मृत संदर्भ हो सकते हैं जिन्हें संभालना होगा। दूसरा उद्देश्य यह है कि संशोधित कमांडों को अनडू किया जा सकता है और इसलिए इसका समाधान करना होगा कि अनडू करने के पश्चात् कौन सी स्थिति प्रस्तुत की जाएगी। तीसरा उद्देश्य कमांड की समस्याओं को दूर कर रहा है। चयनात्मक अनडू का सूचियों में अन्य संकेतक नहीं है, इसलिए इसका तात्पर्य है कि स्टैक से अन्य कमांड नहीं त्यागा जाना चाहिए।[3]

प्रत्यक्ष चयनात्मक अनडू करें

प्रत्यक्ष चयनात्मक अनडू इतिहास वृक्ष के साथ प्रतिबंधित रेखीय अनडू का विस्तार है। ऑपरेशन चयनित कमांड की प्रति बनाता है, इसे निष्पादित करता है और इसे इतिहास सूची में जोड़ता है। वहाँ दो अन्य-रैखिक संचालन चयनात्मक अनडू और चयनात्मक पुनः परिभाषित किए गए हैं, इसलिए यह अधिक सममित है।[1]

बहुउपयोगकर्ता अनुप्रयोग

जब एकाधिक उपयोगकर्ता प्रपत्र को संपादित कर सकते हैं, तो बहु-उपयोगकर्ता को अनडू करने की आवश्यकता होती है। वैश्विक बहु-उपयोगकर्ता अनडू प्रपत्र में की गई नवीनतम क्रिया को अनडू करता है, भले ही संपादन किसने किया हो। स्थानीय बहु-उपयोगकर्ता अनडू केवल स्थानीय उपयोगकर्ता द्वारा किए गए कार्यों को अनडू करता है, जिसके लिए अन्य-रैखिक अनडू कार्यान्वयन की आवश्यकता होती है।

जहां अनडू का उपयोग अनेक संपादनों के माध्यम से बैकट्रैक करने के लिए किया जा सकता है, पुनः कमांड क्रिया इतिहास के माध्यम से आगे बढ़ता है। नया संपादन करने से सामान्यतः पुनः की जाने वाली सूची स्पष्ट हो जाती है। यदि ब्रांचिंग रीडो मॉडल का उपयोग किया जाता है, तो नया संपादन क्रिया इतिहास को शाखाबद्ध करता है।

अनडू की जा सकने वाली प्राचीन गतिविधियों की संख्या प्रोग्राम, संस्करण और हार्डवेयर या सॉफ़्टवेयर क्षमताओं के अनुसार भिन्न होती है। उदाहरण के लिए, एडोब फोटोशॉप में डिफ़ॉल्ट अनडू करें/पुनः करें स्टैक आकार 20 है किन्तु उपयोगकर्ता द्वारा इसे परिवर्तित किया जा सकता है। दूसरे उदाहरण के रूप में,[when?] माइक्रोसॉफ्ट पेंट के पूर्व संस्करणों को अनडू करने के लिए केवल तीन संपादनों तक की अनुमति है; विंडोज 7 में प्रस्तुत किए गए संस्करण ने इस सीमा को बढ़ाकर 50 कर दिया।

सरलीकृत, एकल-संपादन अनडू सुविधाएँ कभी-कभी अनडू कमांड को अनडू कमांड में की जाने वाली क्रिया के रूप में मानकर पुनः करना बंद कर देती हैं। इसे फ्लिप अनडू मॉडल के रूप में जाना जाता है, क्योंकि उपयोगकर्ता अनडू कमांड का उपयोग करके दो प्रोग्राम राज्यों के मध्य फ़्लिप कर सकता है।[13] 1990 के दशक के प्रारंभ में बहु-स्तरीय अनडू के व्यापक रूप से अपनाने से पूर्व यह मानक मॉडल था।

कार्यान्वयन अनडू करें

अनडू विभिन्न पैटर्न के माध्यम से प्रारम्भ किया जा सकता है। कमांड पैटर्न औरस्मृति चिन्ह पैटर्न सबसे सामान्य पैटर्न हैं।

कमांड पैटर्न

कमांड पैटर्न सॉफ्टवेयर डिजाइन पैटर्न है जो ऑपरेशन से कमांड ऑब्जेक्ट में सूचना को एनकैप्सुलेट करता है। इसका तात्पर्य है कि प्रत्येक क्रिया वस्तु में संग्रहित होती है। सार कमांड वर्ग अमूर्त निष्पादन ऑपरेशन को प्रारम्भ करता है, इसलिए प्रत्येक कमांड ऑब्जेक्ट में निष्पादन ऑपरेशन होता है। अनडू के लिए अनएक्सक्यूटेड ऑपरेशन भी होना चाहिए, जो निष्पादित कमांड के प्रभाव को अनडू करता है, जो इतिहास सूची में संग्रहीत होते हैं। अनडू और पुनः प्रारम्भ किया जाता है जिससे कि सूची को आगे और पीछे से चलाया जा सके जब निष्पादित या अन-निष्पादित कमांड कहा जाता है।[14]

एकल अनडू करने के लिए केवल निष्पादित कमांड संग्रहीत किया जाता है। बहु स्तरीय अनडू के विपरीत जहां न केवल कमांडों के साथ इतिहास सूची सहेजी जाती है जबकि अनडू स्तरों की संख्या भी सूची की अधिकतम लंबाई निर्धारित की जा सकती है।[14]

मेमेंटो पैटर्न

मेमेंटो पैटर्न के साथ किसी वस्तु की आंतरिक स्थिति को संग्रहित किया जाता है। जिस वस्तु में राज्य को सहेजा जाता है, उसे स्मृति चिन्ह कहा जाता है और स्मृति चिन्ह प्रवर्तक के माध्यम से आयोजित किया जाता है। यह स्मृति चिन्ह लौटाता है, वर्तमान स्थिति की सूचना के साथ आरंभ किया जाता है, जब अनडू निष्पादित किया जाता है, जिससे कि राज्य का परीक्षण किया जा सके। स्मृति चिन्ह केवल प्रवर्तक के लिए दृश्यमान है।

मेमेंटो पैटर्न में अनडू मैकेनिज्म को केयरटेकर कहा जाता है। यह स्मृति चिन्हों को सुरक्षित रखने के लिए उत्तरदायी है किन्तु इनकी सामग्री को कभी नहीं परिवर्तित किया जा सकता है। अनडू करने के लिए कार्यवाहक प्रवर्तक के स्मृति चिन्ह का अनुरोध करता है और फिर अनडू आवेदन करता है।[14]

अनडू तंत्र का अधिकांश भाग विशिष्ट अनुप्रयोगों या कमांड वर्गों पर निर्भरता के बिना कार्यान्वित किया जा सकता है। इसमें इतिहास सूची का प्रबंधन, इतिहास स्क्रॉलर, अनडू और पुनः करने के लिए मेनू प्रविष्टियाँ और अग्रिम उपलब्ध कमांड के नाम के आधार पर मेनू प्रविष्टियों का अद्यतन सम्मलित है।[1]

प्रत्येक कमांड क्लास में डू विधि होती है जिसे कमांड निष्पादित होने पर कहा जाता है। अनडू-मेथड डू-मेथड के रिवर्स ऑपरेशन को प्रारम्भ करता है। रिवर्स को प्रारम्भ करने के लिए अनेक भिन्न-भिन्न रणनीतियां हैं।

  • पूर्ण चेकपॉइंट':' इसका अर्थ है कि कमांड निष्पादित होने के पश्चात् पूर्ण स्थिति सहेजी जाती है। यह सबसे सरल कार्यान्वयन है, किन्तु अत्यधिक कुशल नहीं है और इसलिए प्रायः इसका उपयोग नहीं किया जाता है।
  • पूर्ण पुन: चलाएँ: इसलिए, प्रारंभिक अवस्था को सहेजा जाता है और इतिहास की सूची में प्रत्येक राज्य को प्रारंभिक अवस्था से प्रारम्भ करके और इतिहास की प्रारंभ से सभी कमांडों को पुनः प्रारम्भ करके उपयोग किया जा सकता है।[1] आंशिक चेकपॉइंट':' यह सबसे अधिक उपयोग की जाने वाली रणनीति है। परिवर्तित हुई एप्लिकेशन स्थिति सहेजी जाती है और राज्य के भाग को अनडू करने के साथ आगे के मूल्य पर वापस सेट किया जाता है।
  • इनवर्स फंक्शन: इनवर्स फंक्शन को सहेजे गए राज्य की सूचना की आवश्यकता नहीं है। उदाहरण के लिए, ऑब्जेक्ट को सापेक्ष मात्रा में इनवर्स हो सकता है।[1]चयनात्मक अनडू करने के लिए राज्य को बचाने के लिए पर्याप्त सूचना नहीं है।

यह भी देखें

संदर्भ

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Berlage, Thomas (1994-09-01). "कमांड ऑब्जेक्ट्स के आधार पर ग्राफिकल यूजर इंटरफेस के लिए एक चयनात्मक पूर्ववत तंत्र". ACM Transactions on Computer-Human Interaction. 1 (3): 269–294. doi:10.1145/196699.196721. ISSN 1073-0516. S2CID 11848679.
  2. Myers, Brad A.; Kosbie, David S. (1996-04-13). पुन: प्रयोज्य पदानुक्रमित कमांड ऑब्जेक्ट. ACM. pp. 260–267. doi:10.1145/238386.238526. ISBN 0897917774. S2CID 17033810.
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Jakubec, Karel; Polák, Marek; Nečaský, Martin; Holubová, Irena (2014). "Undo/Redo Operations in Complex Environments". Procedia Computer Science. 32: 561–570. doi:10.1016/j.procs.2014.05.461. ISSN 1877-0509.
  4. Moran, Chuktropolis Welling (2013-01-01). इंटरएक्टिव समय (Ph.D.). La Jolla: University of California, San Diego. ISBN 9781303194450.
  5. Barnet, Belinda (2014-12-01). Memory Machines: The Evolution of Hypertext (in English). Anthem Press. p. 108. ISBN 9781783083442. But the most popular development for novice users in FRESS was not its capacity to accommodate multiple displays and users; it was the 'undo' feature – the feature of which van Dam is most proud (van Dam 2011). FRESS pioneered a single-level undo for both word processing and hypertext. Every edit to a file was saved in a shadow version of the data structure, which allowed for both an 'autosave' and an undo. Brown staff and students understood immediately the importance and usefulness of this feature (van Dam 1999).
  6. Barnet, Belinda (2010-01-01). "Crafting the User-Centered Document Interface: The Hypertext Editing System (HES) and the File Retrieval and Editing System (FRESS)". Digital Humanities Quarterly. 4 (1).
  7. Teitelman, Warren (1972-01-01). "Automated Programmering: The Programmer's Assistant". Proceedings of the December 5–7, 1972, Fall Joint Computer Conference, Part II. AFIPS '72 (Fall, part II). New York, NY, USA: ACM: 917–921. doi:10.1145/1480083.1480119. S2CID 1276566.
  8. "Bravo Manual in Alto Non-Programmers Guide, p. 52" (PDF). Retrieved 2014-03-29.
  9. Miller, Lance A.; Thomas, John C. (1977-09-01). "इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे". International Journal of Man-Machine Studies. 9 (5): 509–536. doi:10.1016/S0020-7373(77)80002-3. ISSN 0020-7373.
  10. Miller, Lance A.; John C. Thomas Jr. (December 1976). "इंटरएक्टिव सिस्टम के उपयोग में व्यवहार संबंधी मुद्दे". Archived from the original (PDF) on May 27, 2012. Retrieved 2011-05-21.
  11. 11.0 11.1 11.2 {{cite web | url=https://www.nytimes.com/2009/09/20/magazine/20FOB-onlanguage-t.html | title=पूर्ववत करने का युग| access-date=2013-06-02 | author=Ben Zimmer | date=2009-09-15 | work=New York Times}
  12. Apple Computer, Inc. (1984). "User Interface". मैकिंटोश के अंदर, खंड I.
  13. Roberta Mancini, Alan Dix and Stefano Levialdi. 2006. "Reflections on Undo"
  14. 14.0 14.1 14.2 Design patterns : elements of reusable object-oriented software. Gamma, Erich. Reading, Mass.: Addison-Wesley. 1995. ISBN 0201633612. OCLC 31171684.{{cite book}}: CS1 maint: others (link)


बाप्रत्येक ी संबंध