ग्रहण में पूर्ववत / टूटी हुई?


1

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

सबसे आम परिदृश्य यह है कि मैं कोड की एक पंक्ति लिखता हूं, कहते हैं:

System.out.println(someString);

लिखने के बाद someStringमैं एंटर दबाता हूं, जो आम तौर पर मुझे लाइन के अंत तक / प्रिंटनल तर्क ब्रैकेट्स के बाहर ले जाएगा। हालाँकि, यदि मैंने किसी तरह विशेष बॉक्स को तर्क के आसपास हाइलाइट किया है (जैसे कि दबाकर escape) तो एंटर मुझे क्लोजिंग ब्रैकेट से पहले एक नई लाइन देगा। अगर मैं अब इसके साथ पूर्ववत Ctrl-Zकरूँगी तो नई पंक्ति और पूरा शब्द पूर्ववत हो जाएगा (someStringइस मामले में)। अब मेरे पास फिर से नई लाइन हटाने, या शेष पंक्ति को दोबारा टाइप करने का विकल्प है। Undoes अक्सर स्पैन बचाता है, जो मेरे लिए मायने नहीं रखता है। आप सोचते होंगे कि जब आप बचत करते हैं, तो परिवर्तन करें और फिर पूर्ववत करें, आप सहेजने के बिंदु से आगे नहीं जाएंगे। हालाँकि, ऐसा नहीं है। ये छोटी-मोटी असुविधाएँ इतनी बार होती हैं कि मैं शायद एक समय में एक पात्र को उतारना पसंद करूंगा, Emacs शैली। किसी को पता है कि अगर किसी तरह संभव है?

कम सामान्य परिदृश्य वह है जो और भी असुविधाजनक है और वास्तविक बग जैसा लगता है। कभी-कभी मैं अपने कोड में कुछ बदलाव करता हूं। इसे डिबग मोड में चलाएं और इंटरफ़ेस के साथ खेलें (सामान्य रूप से ब्राउज़र में)। फिर 10-20 मिनट बाद, उदाहरण के लिए, मैंने एक ब्रेकपॉइंट मारा, जबकि मैं कहीं टाइप कर रहा हूं (ईमेल लिखना), एक्लिप्स कूदता है और ध्यान चुराता है और मैं गलती से अपने कोड में कुछ टाइप करता हूं। अब, जब मैं पूर्ववत करता हूं, तो ग्रहण अक्सर मेरे द्वारा किए गए परिवर्तन को न केवल पूर्ववत करने का निर्णय लेता है, बल्कि कुछ परिवर्तन जो मैंने 10-20 मिनट (कभी-कभी इससे भी पहले) किए थे, वे सभी एक बार में किए गए थे। निश्चित रूप से यह किसी और के साथ हुआ होगा? यह मुझे लगता है कि केवल "सुरक्षित" काम करना हैrevert अंतिम बचाने के लिए, जैसा कि आप शायद नहीं जानते कि आपने गलती से क्या बदल दिया है, और पूर्ववत आपको कुछ यादृच्छिक कोड खोने से पहले वापस ले जाता है (और आकस्मिक प्रविष्टि ने कोड को भी हटा दिया हो सकता है, यदि ग्रहण के दौरान कुछ चुना गया था। चुरा लिया ध्यान)।

तो, यह एक लंबे समय तक शेख़ी था। मैं सिर्फ यह सुनना चाहता हूं कि क्या किसी और चीज ने इसका अनुभव किया है, यह निराशाजनक है या इसका समाधान भी है :)

जवाबों:


2

मैंने अभी एक नया जावा वर्ग बनाया है:

public class TestUndo {
    public static void main(String[] args) {
        |
    }
}

फिर रखें

System.out.println("Hello world");<enter>

उस स्थान पर जहां |- और किसी भी टाइपो या अन्य गलतियों को किए बिना, दबाने ctrl-zसे क्रम में निम्नलिखित को हटा दिया जाता है:

  • पहले निकालता है ;
  • फिर कोष्ठक की सामग्री "Hello world"
  • फिर ()
  • फिर println
  • फिर भी .चयन करता हैout
  • फिर System.out

यह काफी तार्किक लगता है क्योंकि यह सिंटैक्स समूहों द्वारा समूह, और मैं वापस वहीं हूं जहां मैंने शुरू किया था। ध्यान दें, यह सभी ग्रहण 3.7.1 में है; YMMV।

हालाँकि, अगर मैं किसी System.out.println("Hello world");भी कर्सर कुंजी या बैकस्पेस को टाइप करने या उपयोग करने के लिए किसी भी बिंदु पर एक टाइपो बनाता हूं, तो वह पूर्ववत स्थिति को रीसेट कर देगा, और बाद में जब बार-बार दबाया जाएगा ctrl-z, तो आप प्रत्येक टाइपो में वापस कूद जाएंगे - इसलिए यह संभव है कि अनियमित पूर्ववत् टाइपिंग करते हुए घूमने से व्यवहार होता है।

ग्रहण कीड़े पर सूचीबद्ध एक बग है जो इस "टूटे" व्यवहार का वर्णन करता है: https://bugs.eclipse.org/bugs/show_bug.cgi?id=49553

और एक पैच का सुझाव दिया गया था; हालाँकि, इसे "असाइन किया गया" के रूप में चिह्नित किया गया है, लेकिन इसे किसी भी जारी किए गए संस्करण में नहीं बनाया गया है, और यह 2006 में था, इसलिए यह संभावना नहीं है कि यह जल्द ही किसी भी समय बदल जाएगा।

ctrl-zबहुत से उपयोग करने का एक विकल्प है ग्रहण का "लोकल हिस्ट्री" फीचर - फाइल पर राइट क्लिक करें और "->" लोकल हिस्ट्री "से तुलना करें - फिर आपके पास फाइल में किए गए हाल के बदलावों का एक दृश्य अंतर हो सकता है।

(अंतिम "फिक्स" के रूप में, आप कहते हैं कि आप ग्रहण के बाद Emacs की किल-रिंग कार्यक्षमता के बाद हैं - http://www.mulgasoft.com/ इसे और अधिक Emacs'y व्यवहार करने के लिए कुछ ग्रहण एक्सटेंशन प्रदान करता है - इसलिए आप कोशिश कर सकता है कि, व्यक्तिगत रूप से, मैं सिर्फ CEDET के साथ Emacs का उपयोग करता हूं!]


मुझे पता है कि पहली समस्या का स्पष्टीकरण गलत था, और मैंने अब इसे अपडेट किया है।
स्वेन्द हेन्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.