मैक ओएस एक्स तेंदुए की प्रमुख बाइंडिंग पर Emacs


104

मैं एक मैक उपयोगकर्ता हूं और मैंने Emacs सीखने का फैसला किया है। मैंने पढ़ा है कि हाथ के तनाव को कम करने और सटीकता में सुधार करने के लिए CTRLऔर CAPS LOCKचाबियों की अदला-बदली की जानी चाहिए। मैं तेंदुए में यह कैसे कर सकता हूं?

इसके अलावा, टर्मिनल में मुझे ESCमेटा आह्वान करने के लिए कुंजी का उपयोग करना होगा । क्या इसके बजाय मेटा आह्वान करने के लिए Alt / विकल्प कुंजी प्राप्त करने का कोई तरीका है?

अद्यतन: जबकि नियंत्रण कुंजी अब हिट करने के लिए बहुत आसान है, मेटा कुंजी भी अक्सर उपयोग किया जाता है कि मेरी मैकबुक और ऐप्पल कीबोर्ड पर इसकी स्थिति भी ध्यान देने योग्य है। वास्तव में, मुझे लगता है कि नियंत्रण कुंजी वास्तव में हिट करना आसान है, इसलिए मैंने मेटा कुंजी के रूप में कार्य करने के लिए अपने नियंत्रण कुंजी को हटा दिया है। क्या किसी के पास बेहतर / अधिक मानक समाधान है?


जवाबों:


163

स्वैपिंग सीटीआरएल और कैप्स लॉक

  1. सिस्टम प्राथमिकता में जाएं
  2. कीबोर्ड और माउस वरीयता फलक दर्ज करें
  3. में कीबोर्ड टैब पर क्लिक करें संशोधक कुंजियां ...
  4. कैप्स लॉक और नियंत्रण के लिए क्रियाओं को स्वैप करें ।

वैकल्पिक शब्द

MET के रूप में ALT / OPTION का उपयोग करना

  1. मेनू बार में, टर्मिनल पर क्लिक करें
  2. प्राथमिकताएं क्लिक करें ...
  3. सेटिंग्स टैब के तहत , कीबोर्ड टैब पर जाएं
  4. मेटा कुंजी के रूप में लेबल लेबल का उपयोग करें विकल्प देखें

वैकल्पिक शब्द

बस! आप एक Emacs मास्टर बनने के लिए अपने रास्ते पर अच्छी तरह से होना चाहिए!


8
'उपयोग विकल्प के रूप में मेटा कुंजी' काम करता है, लेकिन इस परिणाम में मुझे ब्रेसिज़ और पाइप टाइप करने में सक्षम नहीं किया जा रहा है '[] {} | आदि के बाद से वे विकल्प -7 और विकल्प पर हैं ... अच्छी तरह से मेटा के लिए नक्शे। कोई विचार?
मार्टिन विकमैन

1
@wic: क्या उन पात्रों की अपनी कुंजियाँ नहीं हैं?
काइल क्रोनिन

1
यहीं नहीं यूरोप में। एक
प्रेमिका के

3
कोडिंग करते समय लेआउट स्विच करें। फिर उन्हें अपनी चाभी वैसी ही मिलती है जैसी उन्हें चाहिए। मैं सनी हूं और मुझे कोडिंग करते समय अपने मूल पात्रों को टाइप करने की आवश्यकता नहीं है।
प्रति विकलैंडर

1
@hhh सेटिंग्स प्रति-कीबोर्ड हैं, इसलिए सुनिश्चित करें कि आपने इसे अपने बाहरी कीबोर्ड के लिए सही तरीके से सेट किया है। लेकिन हां, एक बार जब आप बदलाव कर लेते हैं, तो उसे ओएस एक्स में हर जगह काम करना चाहिए।
काइल क्रोनिन

47

संदर्भ के लिए, यहां टेक्स्ट के चारों ओर घूमने के लिए प्रमुख बाइंडिंग हैं:

+ - कदम एक शब्द छोड़ दिया
+ - सही एक शब्द के लिए कदम
+ deleteवापस हटाना एक शब्द -
Shift+ + delete- foward हटाना एक शब्द
+ - एक अनुच्छेद ऊपर ले जाएँ
+ एक अनुच्छेद नीचे चाल -
+ - चाल वर्तमान पंक्ति के शुरू करने के लिए
+ अंत करने के लिए कदम - की वर्तमान लाइन
Shift+ उपरोक्त राशि में से किसी का चयन उचित राशि द्वारा

फिर खींचें पर क्लिक करें - पाठ का चयन करें
डबल-क्लिक करें फिर खींचें - पाठ का चयन करें, शब्द के लिए रैपिंग समाप्त होता है
ट्रिपल-क्लिक करें फिर खींचें - पाठ का चयन करें, पैराग्राफ के अंत तक लपेटकर।

Shift+ माउस के साथ पाठ का चयन करें - चयन में जोड़ें (सन्निहित)
+ माउस के साथ पाठ का चयन करें - चयन में जोड़ें (गैर-सन्निहित)
+ खींचें - आयताकार क्षेत्र का चयन करें (गैर-सन्निहित)
+ + खींचें - चयन चयन के लिए आयताकार क्षेत्र जोड़ें
- चाल पाठ
+ खींचें चयन - कॉपी पाठ

Ctrl+ A- चाल वर्तमान अनुच्छेद के शुरू करने के लिए
Ctrl+ B- कदम एक चरित्र छोड़ दिया
Ctrl+ Dआगे की ओर हटाएं -
Ctrl+ E- वर्तमान अनुच्छेद के अंत करने के लिए कदम
Ctrl+ Fसही एक चरित्र के लिए कदम -
Ctrl+ H- हटाने
Ctrl+ K- वर्तमान अनुच्छेद के हटाने शेष
Ctrl+ L- केन्द्र वर्तमान पर खिड़की लाइन
Ctrl+ N- चाल एक पंक्ति नीचे
Ctrl+ O- कर्सर के बाद नई लाइन डालने
Ctrl+ P- अप एक पंक्ति के लिए कदम
Ctrl+ T- पक्षांतरित (स्वैप) दो के आसपास के चरित्र
Ctrl+ Vएक चरित्र को समाप्त करने के कदम है, तो छोड़ दिया -
Ctrl+ Y- पेस्ट पाठ पहले से साथ नष्ट कर दियाCtrl - K

एक बार में एक वर्ण के बजाय एक शब्द को स्थानांतरित करने के Optionलिए Ctrl+ Fया Ctrl+ जोड़ें B


एक और अच्छा संसाधन यह पृष्ठ है hcs.harvard.edu/~jrus/Site/System%20Bindings.html
Gourneau

3
Ch, bash में और Mac OS X कोको टेक्स्ट बॉक्स में डिलीट करता है, लेकिन यह emacs में मदद करता है।
23

11

अन्य उत्तर बहुत पूरा था, लेकिन इसके अलावा मैं उल्लेख करता हूं कि मैं कैप लॉक कुंजी को स्वैप करने के बजाय एक दूसरी नियंत्रण कुंजी पर सेट करता हूं।

इसके अलावा, आप ध्यान देंगे कि मैक ओएस एक्स में टेक्स्ट एंट्री फ़ील्ड्स का बड़ा हिस्सा पहले से ही emacs कीस्ट्रोक्स (^ लाइन की शुरुआत, ^ ई एंड ऑफ़ लाइन, ^ P, ^ N, ^ K, ^ Y, आदि) को स्वीकार करता है।

सौभाग्य


6
आप कुछ पर हो सकते हैं - मुझे पिछली बार याद नहीं है कि मैं उपयोगकर्ता कैप्स लॉक करता हूं।
काइल क्रोनिन

11

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

एक बार जब मुझे पता चला कि - यह मेरे लिए बहुत अच्छा काम करता है!


9

यदि आप एक ssh कनेक्शन पर या अपने स्थानीय कंप्यूटर पर नहीं मशीन के माध्यम से emacs का उपयोग करते हैं, तो पृष्ठ बफर / पृष्ठ डाउन बटन टर्मिनल बफर के माध्यम से स्क्रॉल करते हैं - मेरे अनुभव में, बहुत उपयोगी नहीं है।

आप अपने पेज को नीचे सेट कर सकते हैं और एमएसीएस को उचित कमांड भेजने के लिए बटन दबा सकते हैं। Emacs में, आप emacs बफर के माध्यम से स्क्रॉल कर सकते हैं जैसे:

  • पेज अप: सीटीएल-वी
  • पेज डाउन: Esc-v

इसलिए, टर्मिनल को इन कमांडों को एमएसीएस में भेजने के लिए, मेटा के लिए Alt कुंजियों को बदलने के लिए ऊपर दिए गए निर्देशों का पालन करें। हालांकि, "उपयोग विकल्प को मेटा" विकल्प के रूप में सेट करने के बजाय, "पेज डाउन" और "पेज अप" विकल्प खोजें।

पन्ना निचे

इसे संपादित करने के लिए "पेज डाउन" विकल्प पर डबल क्लिक करें। बदलें कार्रवाई करने के लिए "भेजें स्ट्रिंग शेल करने के लिए" और दर्ज \ 026 स्ट्रिंग के रूप में। बचाओ।

पन्ना ऊपर

इसे संपादित करने के लिए "पेज अप" बटन पर डबल क्लिक करें। बदलें कार्रवाई करने के लिए "भेजें स्ट्रिंग शेल करने के लिए" और दर्ज \ 033v स्ट्रिंग के रूप में। बचाओ।


7

यकीन नहीं होता कि आप टर्मिनल से Emacs का उपयोग करने के लिए पूरी तरह से विवाहित हैं, लेकिन एक अन्य विकल्प कार्बन Emacs (मेरा पसंदीदा) और Aquamacs (बहुत मैक-जैसा) का उपयोग करना है। कार्बन एमएसीएस मेटा के लिए कमांड कुंजी का उपयोग करता है, यह अच्छा है क्योंकि आप कंट्रोल-मेटा कमांड को कंट्रोल और कमांड को दबाकर कर सकते हैं, इसके बजाय पहले हिट एस्केप फिर कंट्रोल की सीक्वेंस।

इसके अलावा, यदि आप एक गंभीर Emacs उपयोगकर्ता हैं, तो मैं अच्छी तरह से सलाह देता हूं कि आपको प्रोग्रामिंग के लिए अनुकूल एक कीबोर्ड मिलेगा (यह एक ऐसा है जो पूरी तरह से अपने आप से रिप्रोग्रामेबल है)। मैं एक Kinesis का उपयोग करता हूं, यह थोड़ा पैसा है लेकिन वे बेहद टिकाऊ और काफी अच्छे हैं।


4

व्यक्तिगत रूप से मेरे पास सिस्टम की प्राथमिकताओं पर कमांड की तरह व्यवहार करने के लिए सेटअप कैप्स लॉक है और फिर मेरे ईमैक्स init.el फाइल पर है:

(सेट मैक-कमांड-संशोधक 'ctrl)

और यह मुझे सबसे अधिक ओएक्सएक्स अनुप्रयोगों में कमांड के रूप में और एमएसीएस में नियंत्रण के रूप में कैप्स लॉक का उपयोग करने देता है। मेरे लिए काफी अच्छा है।


4

आपका आनंद अभी शुरुआत है। अन्य चाल में शामिल हैं:

  • तेजी से टाइपिंग के लिए (और) होने के लिए बाएं और दाएं शिफ्ट कीज़ का उपयोग करें।
  • "सुपर" होने के लिए अपनी fn कुंजी या दूसरी कुंजी को रीमैप करें।
  • कैप्स लॉक को नियंत्रण में रखें, लेकिन केवल एक अन्य कुंजी के साथ। अपने आप से, यह बच रहा है।

अधिक जानकारी के लिए http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ पर उत्कृष्ट लेख पढ़ें ।


यह तो कमाल है! धन्यवाद! मैंने कैप्सलॉक बटन के लिए उस सशर्त तर्क को करने के बारे में सोचा भी नहीं था। इतना बीमार!
wle8300

3

यह धागा 5 साल पहले शुरू किया गया था और इसमें ns-win.elनिर्माण या निर्माण का कोई उल्लेख नहीं है --with-ns। यहां अक्टूबर 2013 तक Emacs Trunk में सभी प्रमुख बाइंडिंग (बॉक्स के बाहर) उपलब्ध हैं। और निश्चित रूप से, आप अपना खुद का बना सकते हैं। व्यक्तिगत रूप से, मेरे पास init.elमेरे सभी प्रमुख बाइंडिंग हैं, जिनका उपयोग विंडोज़ एक्सपी के साथ ओएसएक्स पर समानताएं के माध्यम से किया जा सकता है, और ओएसएक्स के साथ भी। चूंकि उपयोगकर्ता अपने स्वयं के कीबोर्ड शॉर्टकट को परिभाषित कर सकता है, मुझे सिस्टम वरीयताओं में कीबोर्ड को हटाने की आवश्यकता नहीं है ( जब तक कि एक Apple यूएस कीबोर्ड के साथ)एक कीबोर्ड का उपयोग करना जिसमें कमांड कुंजी शामिल नहीं है। लेकिन, क्या मैं आईबीएम पर क्लिक करने के लिए ट्रैकप्वाइंट के साथ अपने कीबोर्ड को हटा सकता हूं? बिलकूल नही। :) मैं अगले जन्म में अपने आईबीएम clicky कीबोर्ड को अपने साथ ले जा रहा हूं। किसी भी हाथ का तनाव अनुचित कलाई / हाथ / कोहनी की स्थिति के कारण होता है, न कि नियंत्रण बनाम कैप लॉक द्वारा। अभ्यास के माध्यम से सटीकता में सुधार होता है, और एक बॉस की मदद से आपके कंधे को देखने के लिए कि आप कैसे साथ आ रहे हैं - यानी, अधिक उत्पादक होने के लिए थोड़ा दबाव :)

(define-key global-map [?\s-,] 'customize)
(define-key global-map [?\s-'] 'next-multiframe-window)
(define-key global-map [?\s-`] 'other-frame)
(define-key global-map [?\s-~] 'ns-prev-frame)
(define-key global-map [?\s--] 'center-line)
(define-key global-map [?\s-:] 'ispell)
(define-key global-map [?\s-?] 'info)
(define-key global-map [?\s-^] 'kill-some-buffers)
(define-key global-map [?\s-&] 'kill-this-buffer)
(define-key global-map [?\s-C] 'ns-popup-color-panel)
(define-key global-map [?\s-D] 'dired)
(define-key global-map [?\s-E] 'edit-abbrevs)
(define-key global-map [?\s-L] 'shell-command)
(define-key global-map [?\s-M] 'manual-entry)
(define-key global-map [?\s-S] 'ns-write-file-using-panel)
(define-key global-map [?\s-a] 'mark-whole-buffer)
(define-key global-map [?\s-c] 'ns-copy-including-secondary)
(define-key global-map [?\s-d] 'isearch-repeat-backward)
(define-key global-map [?\s-e] 'isearch-yank-kill)
(define-key global-map [?\s-f] 'isearch-forward)
(define-key global-map [?\s-g] 'isearch-repeat-forward)
(define-key global-map [?\s-h] 'ns-do-hide-emacs)
(define-key global-map [?\s-H] 'ns-do-hide-others)
(define-key global-map [?\s-j] 'exchange-point-and-mark)
(define-key global-map [?\s-k] 'kill-this-buffer)
(define-key global-map [?\s-l] 'goto-line)
(define-key global-map [?\s-m] 'iconify-frame)
(define-key global-map [?\s-n] 'make-frame)
(define-key global-map [?\s-o] 'ns-open-file-using-panel)
(define-key global-map [?\s-p] 'ns-print-buffer)
(define-key global-map [?\s-q] 'save-buffers-kill-emacs)
(define-key global-map [?\s-s] 'save-buffer)
(define-key global-map [?\s-t] 'ns-popup-font-panel)
(define-key global-map [?\s-u] 'revert-buffer)
(define-key global-map [?\s-v] 'yank)
(define-key global-map [?\s-w] 'delete-frame)
(define-key global-map [?\s-x] 'kill-region)
(define-key global-map [?\s-y] 'ns-paste-secondary)
(define-key global-map [?\s-z] 'undo)
(define-key global-map [?\s-|] 'shell-command-on-region)
(define-key global-map [s-kp-bar] 'shell-command-on-region)
;; (as in Terminal.app)
(define-key global-map [s-right] 'ns-next-frame)
(define-key global-map [s-left] 'ns-prev-frame)

(define-key global-map [home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-buffer)
(define-key global-map [kp-home] 'beginning-of-buffer)
(define-key global-map [kp-end] 'end-of-buffer)
(define-key global-map [kp-prior] 'scroll-down-command)
(define-key global-map [kp-next] 'scroll-up-command)

;; Allow shift-clicks to work similarly to under Nextstep.
(define-key global-map [S-mouse-1] 'mouse-save-then-kill)
(global-unset-key [S-down-mouse-1])

2

(एर्गोनोमिक कीबोर्ड नहीं है, लेकिन मैं वास्तव में कुंजियों की यात्रा और महसूस करना पसंद करता हूं, और नियंत्रण कुंजी, कैप्स लॉक की अदला-बदली होती है)।

http://matias.ca/osxkeyboard/index.php


0

मैंने टर्मिनल के बाहर उपयोग के लिए यहां बाइंडिंग का काफी व्यापक सेट बनाया है ।

व्यक्तिगत रूप से, मैं सही नियंत्रण कुंजी की अनुपस्थिति के कारण मैक लैपटॉप कीबोर्ड का उपयोग नहीं कर सकता।

इसके बजाय, मैं 7 वर्षों से Microsoft प्राकृतिक एर्गोनोमिक कीबोर्ड 4000 का उपयोग कर रहा हूं : यह वास्तव में वसा, अच्छी तरह से तैनात Ctrl और Alt कुंजी है, और इसके ड्राइवरों को "स्टार्ट" और "एप्लिकेशन" कुंजी डाउनलोड करने के बाद तुच्छ रूप से मैक के लिए रीमैप किया गया है सीएमडी कुंजी, जो वसा भी है और आसानी से उदास है।

Emacs ergonomic चिंताओं से बचने के लिए मैंने खुद को Ctrl, Alt, और Cmd का उपयोग करने के लिए प्रशिक्षित किया है उसी तरह से हम Shift का उपयोग करते हैं - जो वास्तविक कुंजी टाइप करने वाले के विपरीत हाथ से उन्हें निराशाजनक करते हैं। (यही है, मैं सिर्फ कैप्स लॉक को छोड़ता हूं।)


0

मैं सिस्टम वरीयता में नियंत्रण के लिए कैप्स लॉक सेट करता हूं और मेरे पास init.el में निम्नलिखित हैं। मेटा को कमांड सेट करने और सुपर को विकल्प देने के लिए:

(custom-set-variables
 '(ns-alternate-modifier (quote super))
 '(ns-command-modifier (quote meta)))

0

मैं 2 सॉफ्टवेयर्स सेल और करबिनर की सिफारिश करना चाहूंगा । बस Seil को स्थापित करने और सॉफ़्टवेयर में निर्देशों का पालन करके, आप जो चाहते हैं उसे प्राप्त करने में सक्षम होना चाहिए। मेरे अनुभव से, Karabiner अधिक शक्तिशाली है। मेरे पास एक जापानी कीबोर्ड है जिसका लेआउट सामान्य लोगों से अलग है। मेरे पास कुछ स्निपेट हैं जो मेरे कीबोर्ड की दो अतिरिक्त कुंजियों को F18 और F19 को अन्य उपयोग के लिए छोड़ देता है। आप अधिक चीजों को करने के लिए अपनी "Private.xml" फ़ाइल को संपादित करने के लिए एक ही वाक्यविन्यास का उपयोग कर सकते हैं।

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