न्यूडिलस से फाइलें खोलते समय गेडिट बेतरतीब ढंग से नए उदाहरण क्यों रखता है?


32

ओह, मैं उबंटू और इसकी सभी विशेषताओं से कैसे प्यार करता हूं, लेकिन यह "बग" मुझे इतने लंबे समय से नाराज कर रहा है और मैंने आखिरकार यहां मदद मांगने का फैसला किया है।

.phpजब भी मैं उन्हें nautilus में डबल-क्लिक करता हूँ, मैंने सभी फ़ाइलों को gedit के साथ खोलने का काम सौंपा है । अब, व्यवहार अजीब है।

  1. मेरे पास कोई गेडिट नहीं है
  2. मैं एक फ़ाइल को खोलने के लिए डबल क्लिक करता हूं
  3. एक gedit विंडो खुलती है और फ़ाइल लोड होती है
  4. मैं एक और फाइल को खोलने के लिए डबल क्लिक करता हूं

अब, 2 संभावित परिणाम हैं:

5A) फ़ाइल एक नए टैब में उसी gedit विंडो में खुलती है

5B) फ़ाइल एक नई गेडिट विंडो में खुलती है, जिसके परिणामस्वरूप 2 गेडिट चलती हैं।

क्या ए या बी होता है पूरी तरह से यादृच्छिक लगता है और असीम रूप से चलता रहता है। इसका मतलब है कि मैं 100 फ़ाइलों पर डबल क्लिक करता हूं और 60 गेडिट के साथ समाप्त हो सकता हूं, जिनमें से कुछ में 1 टैब होगा, कुछ में 2 टैब होंगे, कुछ में 3 टैब होंगे ...

यह बेहद कष्टप्रद है और इसके लिए एक फिक्स बहुत सराहना की जाएगी। कभी किसी ने इस समस्या को ठीक करने की कोशिश की?

यह Ubuntu 10.04, 10.10 और 11.10 में हुआ है। सभी उबंटू संस्करण जो मैंने कभी भी परीक्षण किए हैं।

जवाबों:


39

क्यूं कर...

gedit यह निर्धारित करने के लिए काफी दिलचस्प एल्गोरिथ्म है कि क्या यह एक नया उदाहरण खोलता है या यदि यह मौजूदा उदाहरण में एक टैब में खुलता है या नहीं।

gedit-app.cफ़ंक्शन में स्रोत फ़ाइल में स्थित static boolean is_in_viewport, एल्गोरिथ्म परीक्षण करता है यदि वर्तमान जीडिट उदाहरण है

  1. एक ही स्क्रीन नंबर और प्रदर्शन नाम में
  2. उसी कार्यक्षेत्र में
  3. दृश्य बंदरगाह के किनारों का 25% से अधिक

यदि सभी सत्य हैं तो एक नए टैब में gedit एक ही उदाहरण में खुलता है अन्यथा यह एक नई विंडो में खुलता है।

सारांश में - व्यवहार को बदलने का एकमात्र यथार्थवादी तरीका एल्गोरिदम को बदलना है ...

किस तरह...

निम्नलिखित gedit खोलने का एक सुसंगत तरीका प्राप्त करने का एक त्वरित तरीका है ... यह हमेशा एक नया उदाहरण खोलेगा।

बुनियादी विकास उपकरण स्थापित करें

sudo apt-get install devscripts build-essential fakeroot 

स्रोत प्राप्त करें

cd ~/Downloads
mkdir build
cd build
apt-get source gedit
cd gedit-3.2*

परिवर्तन करना

Gedit-app.c खोलें

gedit gedit/gedit-app.c

यहाँ छवि विवरण दर्ज करें

return FALSE;दिखाए गए अनुसार जोड़ें और सहेजें।

यह हमेशा "एक व्यूपोर्ट में नहीं चल रहा है और इसलिए हमेशा एक नया उदाहरण खोल रहा हूं" कहकर दिनचर्या से बाहर निकलने के लिए क्या करता है

यदि आप इसका उपयोग करते हैं तो return TRUE;यह हमेशा एक नए टैब में gedit के मौजूदा उदाहरण में खुलेगा ...

इसे एक अनोखा पैकेज नाम दें

ठीक है, हमें आपके बदले हुए पैकेज को अधिलेखित करने से रिपॉजिटरी अपडेट को रोकने के लिए पैकेज को एक अनूठा नाम देने की आवश्यकता है

gedit debian/changelog

अब +yournameशीर्ष पंक्ति संस्करण में संलग्न करें और फ़ाइल को सहेजें अर्थात

नोट - पूरी तरह से सुनिश्चित करने के लिए - नीचे दिए गए संशोधित पैकेज को स्थापित करने के बाद, नीचे दिए गए लिंक के अनुसार संस्करण को लॉक करें।

यहाँ छवि विवरण दर्ज करें

पैकेज बनाएँ

sudo apt-get build-dep gedit
debuild -i -us -uc -b

एक कॉफी के लिए जाओ ...

cd ..
sudo dpkg -i gedit*.deb

लिंक किया गया प्रश्न:

  1. किसी विशिष्ट पैकेज के अद्यतन को कैसे रोकें?

1
यह, मेरे साहब, बीमार है! बहुत बहुत धन्यवाद, आशा है कि यह काम करेगा ...
रिचर्ड रॉड्रिग्ज

... निश्चित रूप से मेरे परीक्षण के दौरान किया ... NB - मैंने अन्य उत्तरों का अवलोकन किया कि यदि आप किनारों को ओवरलैप करने के लिए gedit को खींचते हैं, तो एक नया उदाहरण खोला जाता है, लेकिन यदि आपने डेस्कटॉप के भीतर gedit है, तो नया उदाहरण खोला है। एक टैब। उपरोक्त संकलन के साथ - यह हमेशा "रिटर्न एफएलएसई" या "रिटर्न टीआरई" के साथ संकलित होने के आधार पर एक नए उदाहरण या टैब में खुलता है।
जीवाश्म

मैं आधिकारिक तौर पर इस समाधान की पुष्टि कर रहा हूँ!
रिचर्ड रॉड्रिग्ज

3
पवित्र श * t @fossfreedom, मैं आपको नमन करता हूं सर, आपने इस बार किया है, इस उत्तर की गुणवत्ता और समाधान imba है। अगर मैं उस वोट बटन को दबाने में पूरा दिन बिताता तो! जी जे।
ब्रूनो परेरा

2
ऐसा लगता है कि एक विन्यास चर के लिए एक पुल अनुरोध करने के लिए बेहतर हो सकता है और एक सरल (छद्म कोड) "यदि $ config- चर फिर FALSE लौटें"। प्रस्तावित तरीका आपको अपडेट से अनिश्चित काल के लिए लॉक कर देता है।
pbhj

13

मैं चाहता था कि सभी फाइलें केवल एक gedit विंडो में खोली जाएं। मुझे यह जानकारी कहीं और नहीं मिली, लेकिन निम्नलिखित परिवर्तनों के साथ मैं सभी पाठ फ़ाइलों को केवल एक विंडो में नए टैब के रूप में खोलने में कामयाब रहा, कोई मैटर नहीं कि मैं उन्हें कैसे खोलता हूं (लॉन्चर के माध्यम से, नॉटिलस के माध्यम से, गनोम डीओ के माध्यम से)।

  1. डिस्प्ले नंबर प्राप्त करें: echo $DISPLAYकमांड लाइन में टाइप करें । जैसे आप :0अपनी डिस्प्ले नंबर के रूप में प्राप्त करते हैं।

  2. /usr/share/applications/gedit.desktopएक पाठ संपादक के साथ सुपरयुसर के रूप में खोलें ।

  3. यह कहते हुए लाइन बदलें:

    Exec=gedit %U
    

    सेवा मेरे

    Exec=gedit --display=:0 %U
    

    :0आपका प्रदर्शन नंबर कहां है


2
Gedit को फिर से शुरू करने और अजीब पैकेज हैक करने से बहुत बेहतर है। धन्यवाद!
rcrogers

1
कमांड लाइन से इस विकल्प के साथ दौड़ना geditनए उदाहरणों (विंडोज़) को खोलने से नहीं रोकता है। कम से कम वर्तमान संस्करण 3.18 में।
alfC

मेरे लिए संस्करण 3.28.1 में काम करता है कमांड लाइन और गुई से दोनों। हालांकि एक पुनः आरंभ की जरूरत है
efie

2

यह अनियमित रूप से नहीं होता है

डिफ़ॉल्ट रूप से Gedit कई उदाहरणों को खोलने के लिए बनाया गया है, लेकिन प्रत्येक एक प्रदर्शन। अगर u डिस्प्ले में खुला है, जहां अभी तक Gedit नहीं है तो Gedit चुड़ैल में फाइलें खोलेगी, अब उस डिस्प्ले में witch से फाइल खोली जाती है।

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

या ओपन के साथ शॉर्टकट कमांड का उपयोग करके इसे नए रूप में खोलने के लिए संभव है। gedit --new-window

तो u रीसेट के साथ खुलने वाले php गुणों में कोशिश कर सकते हैं और नए उद्घाटन को सिर्फ Gedit के साथ रख सकते हैं

gedit --help-allull का उपयोग करके gedit के साथ खुलने का अन्य विकल्प देखें।

और यू भी सभी कॉन्फ़िगरेशन फ़ाइलों के साथ gedit को हटाने और इसे साफ उपयोग करके स्थापित करने का प्रयास कर सकता है sudo apt-get purge gedit && sudo apt-get clean && sudo apt-get update && sudo apt-get install gedit

अद्यतन: मैं पुन: उत्पन्न करने में सक्षम था- जब खिड़की से थोड़ी दूर स्क्रीन चलती है तो नई विंडो में कुछ फ़ाइल खुलती है। यह किसी भी तरह सोचता है कि इसके दूसरे डिस्प्ले में है।


हाँ यह अनियमित रूप से होता है। पूरी बात यह है। कार्यान्वयन छोटी गाड़ी / मजबूत नहीं है। उदाहरण के लिए, मैंने जो नुकसान किया है, उस पर हूं, लेकिन gedit ने अब बेतरतीब ढंग से इस पर स्विच करने का फैसला किया है कि आज हमेशा की तरह काम करने के बाद यह एक नया विंडो मोड होगा ...
Spinkus

1

मेरे साथ ऐसा होने लगा। मुझे कोई प्रासंगिक गोपनीय फ़ाइल नहीं मिली, और यहां तक ​​कि शुद्ध + साफ करने की भी कोशिश की गई। अंत में पाया कि यह क्या था। गेडिट विंडो ऐसी खुल रही थी कि ऐसा लगता था कि यह अधिकतम था लेकिन यह नहीं था। मैंने खिड़की पर अधिकतम बटन दबाया और यह मुद्दा तय हो गया! ध्यान दें कि खिड़की ने आकार नहीं बदला, केवल कोने गोल से चौकोर हो गए। ऐसा लगता है कि यह ऊपर वर्णित एल्गोरिथ्म @fossfreedom में एक बग होना चाहिए ।

नोट: जब आप विंडो बंद करते हैं, तो अधिकतम / न्यूनतम स्थिति को कुछ उपयोगकर्ता कॉन्फिगर में कहीं संग्रहित किया जाना चाहिए। यह स्थिति शुद्ध + स्वच्छ रहती है, और यह प्रति-उपयोगकर्ता में नहीं है Gedit confs या तो।

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