gtk- की-थीम Emacs: क्या कीस्ट्रोके सिलेक्ट-ऑल के लिए है?


22

मैं emacs कीस्ट्रोक्स पसंद करता हूं, लेकिन सभी का चयन emacs शब्दावली का हिस्सा नहीं लगता है, या कम से कम, emacs के लिए gtk-key-theme। Mw चयनित क्षेत्र को कॉपी करने के लिए काम नहीं कर रहा है।

  1. चयन-सभी के लिए कीस्ट्रोक क्या है?
  2. इस विषय के लिए एक महत्वपूर्ण बाध्यकारी मानचित्र कहाँ है?

धन्यवाद, स्टीव

जवाबों:


22

वहाँ है एक सरल "सभी चुनें" जीटीके में के लिए बाध्यकारी:C-/

यह एक सामान्य GtkTextView सिग्नल के रूप में परिभाषित किया गया है और विशेष रूप से एमएसीएस प्रमुख विषय का हिस्सा नहीं है। लेकिन यह इसके साथ ठीक काम करता है। इसे एक विकल्प के रूप में परिभाषित किया गया है C-a। हालांकि बाद वाले को एमएसीएस थीम द्वारा पुनर्व्याख्या मिलती C-/है, "सभी का चयन करें" के लिए मान्य रहता है।


बहुत बढ़िया जवाब। यह अभी तक क्यों नहीं हुआ?
रोद

7

सीधे तौर पर ऐसा करने के लिए एक भी शॉर्टकट नहीं है।

आप के साथ पाठ के अंत में जा सकते हैं Ctrl- eऔर एक पंक्ति को हटा दें Ctrl- u। हालाँकि, यह केवल GtkEntryएक-लाइन इनपुट क्षेत्र के साथ काम करता है।

यदि आपको GtkTextViewमल्टी-लाइन एडिटर-जैसे नियंत्रण में सब कुछ चुनने की आवश्यकता है , तो आपको ऑनर ​​करने के लिए छोड़ दिया जाता है Ctrl- Homeउसके बाद Ctrl+ Shift- End, जो कि, मेरे 63-कुंजी कीबोर्ड के साथ लगभग असंभव है।

यदि, मोबाइल डिवाइस के कीबोर्ड की दक्षता या सीमाओं के संपादन के अच्छे कारण के लिए, Homeऔर Endपहुंच से बाहर हैं, तो आपको प्राप्त करना होगा। चयन "का चयन करें-सब" से "संपादन" मेनू, एक बुरा विचार है, क्योंकि यह नक्शे के लिए Alt- e- aफ़ायरफ़ॉक्स में, Alt- e- tजीएडिट में, Alt- e- sOpenOffice (यहां तक कि सूक्ति-एकीकरण के साथ) में, प्रत्येक सॉफ्टवेयर में एक अलग कुंजी, और कुछ सॉफ्टवेयर में, संपादन मेनू में क्रोमियम की तरह कोई "सिलेक्ट-ऑल" नहीं है, और कुछ सॉफ़्टवेयर में, स्वयं मेनू को संपादित भी नहीं किया जाता है, यहां तक ​​कि छिपे हुए व्यक्ति को भी नहीं बुलाया जाता है Alt-e, नॉटिलस की तरह। यह असंगतता Alt-सक्रिय मेनू बार के उद्देश्य को धड़कती है, और किसी भी ऑपरेटिंग सिस्टम को नहीं, यहां तक ​​कि विंडोज भी असंगत नहीं है। यहां तक ​​कि राइट-क्लिक मेनू में "सिलेक्ट-ऑल" के लिए एक निश्चित शॉर्टकट नहीं है - यह आमतौर aपर tआवेदन से आवेदन तक हो सकता है। प्रत्येक व्यक्तिगत सॉफ़्टवेयर में बग-फिक्स के लिए कॉल करना केवल गनोम की तरह एक मेटा-प्रोजेक्ट के साथ किया जा सकता है, लेकिन गनोम को खुद को जानने से इनमें से कुछ समस्याएं पैदा हुईं ('नॉटिलस' में एडिट मेनू को हटाना एक गनोम 3 निर्णय है) वास्तव में नहीं छोड़ा आपको बहुत उम्मीद है

एक तरफ ध्यान दें, Ctrl- Homeसभी पाठ की शुरुआत में जाने के लिए एकमात्र शॉर्ट-कट है, यहां तक ​​कि यह आपके काम को छोटे-कीबोर्ड मोबाइल उपकरणों के लिए कुंजी में बाधित कर सकता है।

जवाब यहाँ खत्म। जिज्ञासु मन के लिए मेरे पास अतिरिक्त जानकारी है:


एक अनुभवी emacs उपयोगकर्ता प्रयास करेगा Ctrl- x- h: प्रामाणिक emacs वास्तव में, लेकिन कोई नियंत्रण कुंजी-अनुक्रम gtk3 के emacs मोड से समझ में नहीं आता है। वास्तव में, केवल कुछ ही इमैक शॉर्टकट्स को परिभाषित किया गया है - एक नज़र रखना /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; सभी समर्थित इमैक शॉर्टकटों को लिखने के लिए स्टिकर पर पर्याप्त जगह है।

स्थिति को और भी बदतर बनाने के लिए, इस उद्देश्य के लिए शॉर्टकट कुंजी को स्थानांतरित करना मुश्किल है। जैसा कि आप जानते हैं,Ctrl - aemacs द्वारा लिया जाता है। लेकिन यहां तक ​​कि सबसे बड़े गैर-अंग्रेजी भाषी समूह (चीनी को बाहर रखा गया है क्योंकि हम विचारधाराओं का उपयोग करते हैं), जो कि सब कुछ के साथ चयन करने के लिए उपयोग किए जाते हैं Ctrl- eयह पाएंगे कि कीबोर्ड शॉर्टकट, एमएसीएस द्वारा लिया गया है। छोड़कर e, पहले से ही स्वीकृत उद्देश्य के बिना QWERTY कीबोर्ड के बाएं आधे हिस्से में कोई अन्य कुंजी नहीं बची है। Google अनुवाद में SHIFT कुंजी होती है, जब अकेले 'सिलेक्ट-ऑल' के रूप में दबाया जाता है, लेकिन गैर-अन्य सॉफ़्टवेयर और न ही अन्य Google उत्पाद सेटिंग का पालन करते हैं।

एक लाइन खाली करने के लिए, का उपयोग करें Ctrl - u। यह एक्स सेलेक्शन (जो आप मध्य माउस बटन के साथ yank करते हैं) को ओवरराइट नहीं करने का लाभ है। यह केवल gtk3 के emacs मोड की एक अनूठी सेटिंग है: वास्तविक emacs में यह अपने आप कुछ नहीं करता है; readline (bash, mysql आदि) में कर्सर से लाइन की सब कुछ डिलीट करने के लिए माना जाता है, जबकि इसका काउंटर-पार्ट Ctrl- kकर्सर से लाइन के अंत तक सब कुछ डिलीट कर देता है।

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


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


2

Emacs बाइंडिंग /usr/share/themes/Emacs/gtk-2.0-key/gtkrc पर निर्दिष्ट हैं। आप ~ / .config / gtk-3.0 / gtk.css में बाइंडिंग भी जोड़ सकते हैं।

सभी का चयन कुछ इस तरह होगा:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

मुझे इसे Cx h से बाँधने का कोई तरीका नहीं मिला है, हालाँकि।


2

मौजूदा कुंजी बाइंडिंग देखें

GTK3 अनुप्रयोगों के लिए, आप Emacs GTK प्रमुख विषय के बाइंडिंग को देख सकते हैं - या तो स्थानीय रूप से, शायद पर /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) - या GitHub पर GTK git रिपॉजिटरी पर (जो जरूरी नहीं कि आपकी स्थानीय फ़ाइल के बराबर हो, क्योंकि आपका distro इसे संशोधित कर सकता है) ।

इस फ़ाइल को पढ़ते समय, आपको विगेट्स के अर्थ के बारे में पता होना चाहिए

  • GtkTreeView ,
  • GtkTextView,
  • GtkEntry और
  • GtkMenu।

(प्रत्येक लिंक की गई साइट के शीर्ष पर स्थित चित्र देखें)

सभी को चुनने के लिए मुख्य बाइंडिंग जोड़ना

select-allके लिए GtkTreeViewऔरGtkTextView

के लिए GtkTreeViewऔर GtkTextViewविगेट्स, एक संकेत कहा जाता है select-all। आपको इसे तर्क को पारित करने की आवश्यकता है 1ताकि यह अचयनित करने के बजाय सभी का चयन करे।

तो, संपादित करें ~/.config/gtk-3.0/gtk.cssऔर इस तरह से कुछ जोड़ें:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

के लिए GtkEntryकोई select-allसंकेत नहीं है। इसके बजाय आप move-cursorपाठ को चिह्नित करने वाले दो संकेतों के अनुक्रम का उपयोग कर सकते हैं ।

फिर से, संपादित करें ~/.config/gtk-3.0/gtk.cssऔर इस तरह से कुछ जोड़ें:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

फ़ायरफ़ॉक्स

वैसे, फ़ायरफ़ॉक्स में Alt- aविन्यास के बिना डिफ़ॉल्ट रूप से मेरे लिए सभी का चयन करता है (Emacs GTK प्रमुख विषय का उपयोग करके)।


1

यदि आप एक क्षेत्र में सभी पाठ का चयन करना चाहते हैं, तो मैं उसके लिए एक सरल मैक्रो को परिभाषित करना पसंद करता हूं। मैक्रो लिखना शुरू करने के लिए F3 दबाएं । फिर टाइप करें

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

फिर नकल के लिए एम-डब्ल्यू का उपयोग करें (जो कि मैं आमतौर पर दूरस्थ यूनिक्स सिस्टम से स्थानीय विंडोज पर कॉपी करने के लिए करता हूं) और फिर मैक्रो को परिभाषित करने के लिए F4 दबाएं ।

अब आपको मैक्रो को परिभाषित करने के लिए किया जाता है, बस एफ 4 को हिट करें जितनी बार आप कार्रवाई को दोहराना चाहते हैं।


GTK Emacs की मुख्य थीम Emacs ही नहीं है। आपके उत्तर में लगभग कोई भी बाइंडिंग काम नहीं करता है (और यदि आप वास्तव में खुद Emacs में थे, तो आप मैक्रो के बजाय Cx h का उपयोग कर सकते हैं ।
Rörd

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