X टर्मिनल में डबल क्लिक व्यवहार कैसे कॉन्फ़िगर करें?


17

विभिन्न यूनिक्स / लिनक्स प्रणालियों के तहत मैंने एक्स टर्मिनल अनुप्रयोगों (जैसे xterm) में अलग-अलग डबल क्लिक व्यवहार देखा है।

कभी-कभी एक डबल क्लिक सब कुछ छोड़ देता है और अगले गैर-वर्णमाला वर्ण तक (जैसे कि यह कर्सर के नीचे शब्द का चयन करता है)।

कभी-कभी अगले खाली / ईओएल का चयन होने तक सब कुछ (उदाहरण के लिए कर्सर के तहत पूर्ण पथ का चयन किया जाता है)।

मैं डबल क्लिक व्यवहार को कैसे कॉन्फ़िगर कर सकता हूं - कहो - xterm में (क्योंकि यह अधिकांश प्रणालियों पर उपलब्ध है)।

वर्तमान में, मुझे अधिकांश उपयोग मामलों के लिए 2 डी मोड अधिक सुविधाजनक लगता है।

जवाबों:


20

आप इसे एक्स संसाधनों के साथ करते हैं। मेरे पास एक फ़ाइल है, .Xresourcesजिसमें ये xterm- संबंधित संसाधन हैं:

XTerm*VT100.cutNewLine: false
XTerm*VT100.cutToBeginningOfLine: false
XTerm*VT100.charClass: 33:48,35:48,37:48,42:48,45-47:48,64:48,95:48,126:48

मेरी .xinitrcफ़ाइल में, मेरे पास कुछ रेखाएँ हैं जो उन संसाधनों में विलीन हो जाती हैं:

if [ -f $userresources ]; then
    /usr/X11/bin/xrdb -merge $userresources
fi

वे पंक्तियाँ xterm को डबल-क्लिक और ट्रिपल-क्लिक करती हैं जो मुझे पसंद हैं:

डबल-क्लिक स्लैश (/), डॉट (।), तारांकन (*) और कुछ अन्य गैर-अल्फ़ान्यूमेरिक वर्णों को शामिल करने के लिए "शब्द" पर विचार करता है। यह "charClass" संसाधन है। मुझे उस चरक्लैस के साथ कुछ थकाऊ फिडलिंग करनी थी, जो मैं चाहता हूं उसे करने के लिए। यह ज्यादातर आपको URLs पर डबल-क्लिक करता है और उन्हें हाइलाइट करने के लिए पूरी तरह से या आंशिक रूप से योग्य पथ देता है।

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

आर्क विकी के पास एक्स संसाधनों पर एक खंड सहित एक्स संसाधनों पर एक लेख है , लेकिन उन एक्सटरम संसाधन पूर्ण नहीं हैं।


1
विकी उपयोगी हो सकता है, लेकिन xterm संसाधनों के लिए परामर्श करने का स्थान इसका मैनुअल पृष्ठ है
थॉमस डिकी

या उपयोग करें XTerm*VT100.charClass: 0-32:0,33-65535:1। डबल-क्लिक तब व्हाट्सएप (और नियंत्रण वर्ण) को छोड़कर प्रतीकों के किसी भी अनुक्रम को एक "शब्द" पर विचार करेगा।
न्यूटनएक्स

व्हॉट्सएप का नियम अच्छा नहीं है यदि आप उदाहरण के लिए एक ऑनरलाइनर में उद्धरण के अंदर क्या प्राप्त करना चाहते हैं। लेकिन मुझे लगता है कि यह आपके द्वारा उपयोग किए जाने पर निर्भर करता है। इस उत्तर में प्रदान की गई स्निपेट मेरे लिए एकदम सही है।
जीन-बर्नार्ड जानसेन

आपसे एक गलती हुई है: cutNewLine-> cutNewline। हो सकता है कि नए संस्करणों में पेश किया गया था।
एक्स-यूरी

1
और onNClicks: regexकम से कम अधिक पठनीय लगता है।
x-yuri

5

xterm चयन के लिए डबल- और ट्रिपल-क्लिक से संबंधित कई संसाधन-सेटिंग्स हैं (मैनुअल पेज सभी प्रासंगिक संसाधनों की सूची देता है):

cutNewline(वर्ग CutNewline)
यदि "गलत" है, तो लाइन का चयन करने के लिए ट्रिपल क्लिक करने पर लाइन के अंत में न्यूलाइन शामिल नहीं है । यदि "सही" है, तो न्यूलाइन चुना जाता है। डिफ़ॉल्ट "सत्य" है।

cutToBeginningOfLine(वर्ग CutToBeginningOfLine)
यदि "असत्य" है, तो एक लाइन का चयन करने के लिए ट्रिपल क्लिक करना केवल वर्तमान शब्द से आगे का चयन करता है। यदि "सही" है, तो पूरी लाइन का चयन किया जाता है। डिफ़ॉल्ट "सत्य" है।

on2Clicks(कक्षा On2Clicks)
on3Clicks(कक्षा On3Clicks)
कई माउस क्लिक के जवाब में चयन व्यवहार निर्दिष्ट करें। एक सिंगल माउस क्लिक की व्याख्या हमेशा चयन कार्य अनुभाग ( POINTER USAGE देखें ) में वर्णित है । एकाधिक माउस क्लिक (बटन का उपयोग जो चयन-प्रारंभ क्रिया को सक्रिय करता है) की व्याख्या on2Clicks के संसाधन मूल्यों के अनुसार की जाती है, संसाधन मूल्य इनमें से एक हो सकता है:

word
एक "शब्द" चुनें जैसा कि charClass संसाधन द्वारा निर्धारित किया गया है। CHARACTER CLASSES अनुभाग देखें ।

line
एक पंक्ति (रैपिंग की गिनती) का चयन करें।

group
आसन्न रेखाओं (रैपिंग गिनते हुए) के एक समूह का चयन करें। चयन एक रिक्त रेखा पर रुक जाता है, और वर्तमान पृष्ठ के बाहर विस्तारित नहीं होता है।

page
सभी दृश्य पंक्तियों का चयन करें, अर्थात, पृष्ठ।

all
सभी लाइनों का चयन करें, अर्थात, सहेजी गई लाइनों सहित।

regex
एक "शब्द" चुनें जैसा कि नियमित अभिव्यक्ति द्वारा निर्धारित किया जाता है जो संसाधन मूल्य में निम्नानुसार है।

none
कोई चयन कार्रवाई इस संसाधन से संबद्ध नहीं है। Xterm इसे सूची के अंत के रूप में व्याख्या करता है। उदाहरण के लिए, आप इसे on3 पर क्लिक करके "कोई नहीं" पर क्लिक करके ट्रिपल (और उच्चतर) को अक्षम करने के लिए उपयोग कर सकते हैं।

के लिए डिफ़ॉल्ट मान on2Clicksऔर on3Clicksकर रहे हैं "शब्द" और "पंक्ति" , क्रमशः। के लिए कोई डिफ़ॉल्ट मान नहीं है on4Clicks या on5Clicksउन निष्क्रिय करते समय,। स्टार्टअप पर, xterm निर्धारित किए गए onXClicks संसाधन मानों द्वारा क्लिक की अधिकतम संख्या निर्धारित करता है ।


मैनुअल आपको क्या नहीं बताता है: कुछ वितरणों के लिए, डिफ़ॉल्ट प्रलेखित डिफ़ॉल्ट नहीं है। खाली charClass संसाधन सेट करना प्रलेखित डिफ़ॉल्ट को पुनर्स्थापित करता है। आप जो कुछ भी निर्दिष्ट करते हैं, वह केवल आपके द्वारा निर्दिष्ट प्रविष्टियों को अधिलेखित करता है; अनिर्दिष्ट प्रविष्टियों को दस्तावेज डिफ़ॉल्ट पर बहाल किया जाता है। कम से कम, कि यह मेरे लिए कैसे काम करता है।
जेफ़ लीरमैन

मैं आई है एक पोस्ट है कि सुझाव है कि निम्न मान: xterm*on2Clicks: regex [^/@ \n]+, xterm*on3Clicks: regex [^ \n]+, xterm*on4Clicks: regex [^#$]+, xterm*on5Clicks: line। स्वीकार किए गए उत्तर की तुलना में बेहतर और आसान लगता है।
एक्स-यूरी

दूसरे विचार पर, अब के लिए मैंने दोनों दृष्टिकोणों में से सर्वश्रेष्ठ प्राप्त करने का निर्णय लिया (कम से कम जिस तरह से मैं अब इसे समझता हूं): एक शब्द के लिए 2 क्लिक, एक वर्ड के लिए 3 क्लिक ( vim'अर्थ' में xterm*on3Clicks: regex [^ \n]+), नकल के लिए 4 क्लिक। खोल से आदेश (वर्तमान शब्द से पंक्ति के अंत में, xterm*on4Clicks: line, xterm*cutNewline: false, xterm*cutToBeginningOfLine: false), पूरे लाइनों के लिए 5 क्लिक ( xterm*on5Clicks: regex [^\n]+)।
x-yuri
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.