फ्रेम के नीचे शब्दों की सूची प्रदर्शित करें?


20

मैं अलग-अलग रेखाओं पर शब्दों की 3 सूचियों को क्षैतिज रूप से नीचे (हालांकि शीर्ष भी काम करूंगा) खोलना चाहता हूं, जो कि मैं खोल रहा हूं। मैंने ऐसा करने के 6 तरीके सोचे हैं, और वे सभी मुद्दे हैं:

  1. मेरा पहला विचार मेरी मोड लाइन में एक पंक्ति जोड़ना था, लेकिन AFAICT आप एक मोड लाइन में newline वर्ण का उपयोग नहीं कर सकते, यह सिर्फ "^ J" में परिवर्तित हो जाता है।

  2. मेरा दूसरा विचार था कि स्क्रीन के शीर्ष पर लाइन हो और हेडर लाइन का उपयोग किया जाए, लेकिन यह न्यूलाइन वर्ण का समर्थन नहीं करता है।

  3. मैं विंडो की अंतिम 3 पंक्तियों पर एक ओवरले प्रदर्शित कर सकता था, लेकिन यह मजबूत बनाने के लिए कठिन लगता है - स्क्रॉलिंग को ट्रिगर करने की आवश्यकता होगी जब बिंदु खिड़की के वास्तविक छोर के बजाय ओवरले पर पहुंच गया, और मुझे लगातार पुनरावृत्ति करना होगा ओवरले चूंकि पाठ स्थान विंडो स्थान नहीं है, इसलिए ओवरले हैं।

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

  5. मेरे पास इसके लिए एक समर्पित फ्रेम हो सकता है, लेकिन तब मेरा कॉन्फिगरेशन टर्मिनल मोड में काम नहीं करेगा, और मुझे अपने विंडो मैनेजर को स्क्रिप्ट को स्क्रीन के नीचे रखने के लिए संभालना होगा, इसे अचूक बनाना होगा, लेआउट को प्रभावित नहीं करना होगा; आदि आदि।

  6. मैं सीधे मिनीबफ़र में 3 लाइनों के लिए पाठ सम्मिलित कर सकता हूं। मुझे यह आंशिक रूप से काम मिला, मैं 3 लाइनों को समायोजित करने के लिए मिनीबफ़र बढ़ा सकता हूं, और मैं उन्हें प्रदर्शित कर सकता हूं। हालाँकि, किसी भी समय कोई भी संदेश प्रतिध्वनित होता है जब तक कि मैं एक और कमांड जारी नहीं करता हूं जब तक कि वे फिर से दिखाई न दें। आदर्श रूप से 3 लाइनें और प्रतिध्वनि क्षेत्र ओवरलैप नहीं होगा, इसलिए मैं दोनों को देख सकता था। यह कम कष्टप्रद होगा अगर मैं मज़बूती से फ़िल्टर कर सकता हूं कि कौन से संदेश गूंज क्षेत्र में जाते हैं - मुझे EmacsWiki पर एक समाधान मिला है लेकिन यह उन संदेशों के लिए काम नहीं करता है जो ईमेक सी स्रोत में उत्पन्न होते हैं (विशेष रूप से मैं प्राप्त करना चाहता हूं फाइल सेविंग मैसेज से छुटकारा क्योंकि मैं एक टाइमर पर अक्सर ऑटोसेव करता हूं)।

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


अच्छा सवाल है, और अच्छी तरह से सामने आया। आशा है कि आपको कुछ उपयोगी सुझाव मिलेंगे।
ड्रू

मुझे टर्मिनल-मोड की आवश्यकता (जो प्रमुख है) के अलावा # 5 के अन्य भागों के बारे में आश्चर्य है। आप एक समर्पित फ्रेम का उपयोग कर सकते हैं जो नीचे (कोई समस्या नहीं) पर तैनात है। अचिंत्य से आपका क्या मतलब है , और आपको इसकी आवश्यकता क्यों है? यदि आप केवल पढ़ने का मतलब है, तो वह कोई समस्या नहीं है। लेआउट को प्रभावित न करने से आपका क्या मतलब है ? संक्षेप में, # 5 मेरे लिए बहुत स्पष्ट नहीं है।
ड्रू

@ ड्रू: मेरा मतलब है कि मैं कीबोर्ड का उपयोग करके अपने WM को ड्राइव करता हूं, और यह संभव नहीं है कि मैं कभी भी उस फ्रेम को उद्देश्य पर ध्यान केंद्रित करना चाहता हूं, इसलिए मैं चाहता हूं कि मेरी अगली-विंडो / पिछली-विंडो बाइंडिंग इसे छोड़ दें। इसी तरह मैं चाहता हूँ कि विंडो लेआउट कार्य करे जैसे कि वह फ्रेम एक पैनल / टास्कबार का हिस्सा था। संपादित करें: इस टिप्पणी में हर जगह मैंने 'विंडो' कहा कि मेरा मतलब एक्स विंडो है, न कि एमएसीएस विंडो; पी
जोसेफ गार्विन

मुझे सुझाव दिया गया एक अन्य संभावना सिर्फ मिनीबफ़र का उपयोग करना है। मुझे पता नहीं है कि अगर यह संभव है कि पाठ को नीचे प्रदर्शित करना संभव है, तो इसके बिना किसी और चीज के साथ हस्तक्षेप करने की कोशिश करें, हालांकि ...
जोसेफ गार्विन

मिनीबफ़र का उपयोग करने की कोशिश करने के बारे में एक नोट जोड़ा।
जोसेफ गार्विन

जवाबों:


8

बहुत सारे हैकी प्रयोग के साथ मैं '6 (मिनीबफ़र पाठ का उपयोग करके) को' अच्छा पर्याप्त 'कार्य करने की स्थिति में लाने में सक्षम था। यहाँ एक स्क्रीनशॉट है:

एक्शन में बेल्ट का स्क्रीनशॉट

इस काम को करने के लिए कई मुख्य भाग हैं:

  • मिनीबफ़र में पाठ सम्मिलित करना आश्चर्यजनक रूप से बॉक्स से लगभग सही काम करता है। इसमें डाला गया पाठ वास्तव में दिखाई देगा।
  • पाठ को 'नियमित रूप से पाठ के बजाय एक उपरिशायी के स्ट्रिंग होने के बाद आप इसे अचूक बनाते हैं और इसमें गलती से कर्सर आने की चिंता नहीं करनी चाहिए।
  • मिनीबफ़र प्रॉम्प्टिंग कमांड्स सही ढंग से काम करने के लिए, आपको मिनीबफ़र विंडो के सक्रिय होने पर टेक्स्ट / ओवरले डालने से रोकना होगा।
  • यदि आप सामान्य विंडो के आकार के कार्यों के साथ मिनीबार को आकार देने की कोशिश करते हैं, तो आपको खिड़कियों के बहुत छोटे होने के बारे में त्रुटियां मिलेंगी, यदि आप अनिर्दिष्ट md-resize-minibuf फ़ंक्शन का उपयोग करते हैं, तो आप इच्छित लाइनों की सटीक संख्या का आकार बदल सकते हैं, जब तक आप चाहते हैं पहले आकार बदलने के लिए मिनी-विंडो सेट करें।
  • जब भी कोई संदेश गायब हो, सूची को हल करने के लिए आपको संदेश को बाधित करने के लिए संदेश फ़ंक्शन को सलाह देना होगा। फिर आप उन्हें अपने आप मिनीबफ़र में डालें। आपको वर्तमान-संदेश चर को भी देखना होगा, जो अंतिम बार प्रतिध्वनित क्षेत्र में दिखाई देता है (आश्चर्यजनक रूप से प्रतिध्वनि क्षेत्र और मिनीबफ़र को दर्शाता है) तकनीकी रूप से अलग हैं और कुछ सी स्रोत कोड फ़ंक्शन सीधे संदेश के माध्यम से जाने के बिना प्रतिध्वनि क्षेत्र में प्रिंट होते हैं। समारोह)। इसके लिए मैं नीचे दिए गए कोड अपूर्ण है, संदेश सामान्य रूप से लंबे समय तक बने रहते हैं जो मुझे अभी भी जांच करने की आवश्यकता है (मुझे * संदेश * में अंतिम प्रविष्टि की जांच करना सरल और अधिक मजबूत हो सकता है) लेकिन यह अभी के लिए 'काफी अच्छा' है।

यहाँ एक उदाहरण बेल्ट के साथ मेरे कार्यान्वयन की एक कड़ी है जो वध की अंगूठी को प्रदर्शित करता है। आखिरकार यह एक उचित परियोजना का हिस्सा होगा: https://gist.github.com/jgarvin/ce37d08654978fd7e4c9

यह मेरा पहला मौका है जब किसी भी महत्वपूर्ण मात्रा में गुणवत्ता लिखी गई है, इसलिए गुणवत्ता शायद सबपर है, लेकिन यह काम करता है।


1

न तो मोड-लाइन और न ही हेडर-लाइन कई लाइनें हो सकती हैं, दुर्भाग्य से। मैंने इस बारे में पहले भी पूछा है और इस काम को करने के लिए कोई भी छिपा विकल्प नहीं है। तो 1 और 2 बाहर हैं। मुझे यह भी लगता है कि 3 और 6 हैक हैं जो आपको लंबे समय में खुश नहीं करेंगे। 3 और 4 ठीक दृष्टिकोण की तरह लग रहे हैं, लेकिन उन्हें मज़बूती से काम करने के लिए काफी निवेश होगा।

इसलिए मैं आपको सलाह दूंगा कि आप इसे सबसे पहले emacs-devel पर लाएं । मेरे अनुभव में चीजें अंततः लागू हो जाती हैं यदि आप ध्यान से समझाने की कोशिश करते हैं कि आप क्या चाहते हैं और क्यों यह अच्छी बात है। कम से कम अगली रिलीज तक इसमें कुछ समय लग सकता है, लेकिन अगर आप ठीक से थोड़ा इंतजार कर रहे हैं या विकास संस्करण का उपयोग कर रहे हैं, तो आप संभवतः वही प्राप्त कर सकते हैं जो आप चाहते हैं, बहुत कम प्रयास के साथ।


Emacs-devel से संपर्क करने के सुझाव के लिए धन्यवाद। हालांकि मैं एक समाधान के साथ आया था, यह बहुत हैक किया गया था और स्क्रीन निर्देशांक पर सीधे ड्राइंग के लिए एक वास्तविक एपीआई होना अच्छा होगा, इसलिए जब मेरे पास समय होगा तो मैं शायद उनके ईमेल को गोली मार दूंगा।
जोसेफ गार्विन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.