OS X cmd कुंजी (या किसी अन्य बाइंडिंग) के लिए tmux उपसर्ग बांधें


21

मैं OS X पर iTerm2 (या इस मामले के लिए या टर्मिनल) का उपयोग कर रहा हूं। लेकिन मैं tmux (या स्क्रीन का उपयोग करने के लिए आगे बढ़ना चाहता हूं, लेकिन समस्या दोनों ऐप के समान है)।

इसलिए मेरा विचार एक एकल iTerm टैब है जिसमें कई टैब के साथ खोला गया tmux सत्र है। संक्रमण करने के लिए मेरे पास एक मूल विशेषता है जिसे मुझे tmux पर कॉन्फ़िगर करने की आवश्यकता है: cmd + n (जैसे फ़ायरफ़ॉक्स, क्रोम, iTerm2 स्वयं, आदि) का उपयोग करके टैब 'n' स्विच करें

हालाँकि, मैं मैक कीबोर्ड पर cmd कुंजी को मैप करने का एक तरीका नहीं खोज सकता। मैंने पहली बार cmd को बिना किसी सफलता के साथ उपसर्ग कुंजी के रूप में लागू करने की कोशिश की। मैंने सेटिंग की कोशिश की है

set-option -g prefix M-a (hoping for Meta-a)

set-option -g prefix ^a (hoping for ^ to work)

लेकिन कुछ भी नहीं काम करता है। क्या यह संभव है? मुझे वास्तव में cmd ​​के लिए उपसर्ग को बांधने की आवश्यकता नहीं है, लेकिन मैं cmd ​​+ n के साथ tmux टैब को बदलने में सक्षम होना चाहता हूं।

धन्यवाद


जवाबों:


8

आप कीस्ट्रोक्स के एक दृश्य को लागू करने की (पहले चाहते हैं Ctrl-b, तो एन 0 से 9 तक)।

आपका सबसे अच्छा शर्त यह है कि आप के लिए ऐसा करने के लिए बटलर या कीबोर्ड मेस्ट्रो जैसी कीबोर्ड शॉर्टकट उपयोगिता का उपयोग करें ।


बटलर का उपयोग करना :

चयन करें + »स्मार्ट आइटम» कीस्ट्रोक्स , हॉटकी कॉन्फ़िगर करें Cmd-1। प्रेस Ctrl-B, तो 1के लिए कीस्ट्रोक । इसे केवल टर्मिनल (या iTerm) में मान्य होने के लिए कॉन्फ़िगर करें। यह आपको चेतावनी देगा कि अन्य अनुप्रयोग इसे पसंद नहीं कर सकते हैं, लेकिन आप पहले से ही जानते हैं।


कीबोर्ड उस्ताद का उपयोग करना :

बाईं ओर एक नया समूह बनाएं जो केवल टर्मिनल (या iTerm) में उपलब्ध है।

हॉट की ट्रिगर ( Cmd-1) द्वारा ट्रिगर किया गया एक नया आइटम जोड़ें, और अपने कार्यों में दो कीस्ट्रोक्स जोड़ें : Ctrl-Bऔर 1


तुम भी इस विषय पर एक नज़र रखना चाहते हो सकता है - Commandहालांकि उपयोग नहीं करता है , और मेरे लिए टर्मिनल का उपयोग करके काम नहीं किया।


से tmux प्रलेखन :

कमांड करने के लिए कुंजी को बांधें। कुंजी को ctrl कुंजियों के लिए 'C-' या 'for' के साथ उपसर्ग निर्दिष्ट किया जा सकता है, या Alt (मेटा) कुंजी के लिए 'M-'। Repeatr ध्वज इंगित करता है कि यह कुंजी दोहरा सकती है, रिपीट-टाइम विकल्प देखें।

वे तीसरे संशोधक कुंजी का समर्थन नहीं करते हैं।


omg क्या एक भयानक हैक! यह भी काम करता है! कीबोर्ड मेस्ट्रो का इस्तेमाल किया क्योंकि बटलर ओवरकिल लगता है। धन्यवाद!
रूबेनफोंसेका

कीबोर्ड मेस्ट्रो इसके लिए आश्चर्यजनक रूप से काम करता है
सैम सेलिकॉफ

19

ITerm2 में, आप हेक्स कोड के लिए शॉर्टकट मैप कर सकते हैं जो टर्मिनल में भेजे जाते हैं। गोटो iTerm2 प्राथमिकताएं -> कुंजी। ग्लोबल शॉर्टकट कुंजी में, + पर क्लिक करें और अपने इच्छित शॉर्टकट जोड़ें जैसे cmd + 1, जिसे कैप्चर किया जाएगा। फिर "सेंड हेक्स कोड" चुनें। दिखाई देने वाले बॉक्स में, हेक्स कोड टाइप करें जिसे आप रिक्त स्थान द्वारा अलग किए गए tmux पर भेजना चाहते हैं। Ctrl-B 0x02 है, इसलिए "Ctrl-B 1" के लिए, "0x02 0x31" टाइप करें। अधिक हेक्स कोड के लिए यहां देखें: http://www.nthelp.com/ascii.htm

मैंने hm, j, k, l के साथ tmux पैन के बीच घूमने के लिए Cmd, और Cmd को% और "स्प्लिट्स बनाने के लिए" के साथ मैप किया। मैं शायद एक नियंत्रण कुंजी के साथ vim स्प्लिट्स के बीच जाने के लिए कुछ ऐसा ही करूंगा।


यह निश्चित रूप से iTerm2 का उपयोग करने वालों के लिए सबसे अच्छा जवाब है। धन्यवाद!
newUserNameHere

1
किसी कारण से, यह मेरे iTerm2 बिल्ड 3.0.2 पर काम नहीं कर रहा है
jasonszhao

यदि यह काम नहीं कर रहा है तो हो सकता है क्योंकि iTerm2 डिफ़ॉल्ट रूप से स्विच-टैब पर cmd कुंजी बांधता है। आपका संशोधक टकरा सकता है। मुझे CMD + n पर काम करने के लिए इसे बदलने के लिए स्वाइल टैब कुंजी को बदलना पड़ा
Surfrdan

2

Terminal.app के साथ विशेष शॉर्टकट बनाए जा सकते हैं। मुझे दूसरे दिन ही पता चला, लेकिन शेर से पहले यह संभव हो सकता है।

प्राथमिकताएं> सेटिंग में जाएं और "कीबोर्ड" टैब पर क्लिक करें। अब आपको बॉक्स के नीचे प्लस आइकन पर क्लिक करके एक नया कीबोर्ड शॉर्टकट जोड़ना होगा। अब आप एक महत्वपूर्ण कॉम्बो सेट करना चाहते हैं जो "स्ट्रिंग को शेल में भेजता है।"

उदाहरण: मान लीजिए कि मैं M- LeftArrow को prefix-p(पिछली विंडो में) मैप करना चाहता हूं ।

Key: Left Arrow 
Modifier: Option 
Action: send string to shell

अब बस prefix-pइनपुट बॉक्स में टाइप करें जहाँ prefixआपने tmux के लिए जो भी सेट किया है (मैं बॉक्स को प्रदर्शित करता हूँ, cntrl का उपयोग करता है \001p)। ध्यान दें कि यदि आप कोई गलती करते हैं, तो वास्तव में हटाने वाले पात्रों के बजाय हटाए गए वर्ण सम्मिलित किए जाएंगे, इसलिए यदि आप गड़बड़ करते हैं, तो पीछे हटने के लिए "एक वर्ण हटाएं" बटन दबाएं।

जीवन को आसान बनाने के लिए मेरे द्वारा निर्धारित विशेष चरित्र:

M-Left  > Previous Window
M-Right > Next Window
M-Up    > Enter scrolling mode
M-Down  > Next Pane

आप कैंट्ल-कुछ भी और शिफ्ट-कुछ भी संशोधित कर सकते हैं, लेकिन याद रखें कि ये आपके $ EDITOR या अन्य कार्यक्रमों में हस्तक्षेप कर सकते हैं, इसलिए सावधान रहें कि कौन से विशेष कार्य बेकार हो सकते हैं।

इसके अलावा, ध्यान दें कि मैं यह पता नहीं लगा सका कि iTerm2 में इस कार्यक्षमता की नकल कैसे करें।


1

आप मूल (लेकिन बहुत प्रयोगात्मक) एकीकरण पर विचार करना चाह सकते हैं जो iTerm2 tmux के साथ प्रदान करता है: http://code.google.com/p/iterm2/wiki/TmuxIntegration

इस तरह, जब आप स्क्रीन को विभाजित करने के लिए Cmd-D दबाते हैं तो iTerm2 आपके लिए टैब को विभाजित करेगा। यह बहुत अच्छा है, क्योंकि विभाजन मूल है, इसलिए आप चौड़ाई को फिर से समायोजित करने के लिए बीच में किनारे खींच सकते हैं, या आप क्लिक करके एक फलक का चयन कर सकते हैं। नए टैब / विंडो के लिए डिट्टो (लेकिन शॉर्टकट थोड़े अलग हैं - अन्यथा आपके पास नॉन-टैमक्स टैब जोड़ने का कोई तरीका नहीं होगा)।

और tmux की तरह, अगर आप अलग हो जाते हैं और फिर से जुड़ जाते हैं, तो आपके लिए सब कुछ बच जाएगा।

हालांकि दो चेतावनी हैं: * यह एक बहुत ही प्रयोगात्मक विशेषता है और मेरे लिए बहुत परतदार है। * आपको स्वयं tmux का निर्माण करना होगा (ऊपर दिए गए लिंक पर कहीं संग्रह का उपयोग करके)।

-क्रिस


मुझे पता है कि यह दो साल हो गया है, लेकिन किसी भी विचार अगर यह अभी भी काम कर रहा है? मैंने आपके लिंक पर निर्देशों का पालन किया है, लेकिन cmd+DiTerm2 के पैन को विभाजित करता है, न कि tmux के।
सैम सेलिकॉफ

1
@SamSelikoff आपको इसके साथ शुरू करना होगा tmux -CC
jasonszhao

0

आप इस ब्लॉग पोस्ट को भी देख सकते हैं, जिसमें tmux / iterm एकीकरण के बारे में बहुत विस्तृत विवरण हैं: http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/


2
वेब पेज गायब हो जाते हैं और हर समय चले जाते हैं। कृपया कम से कम ब्लॉग पोस्ट की सामग्री को संक्षेप में प्रस्तुत करें और उसके शीर्षक और लेखक का विवरण दें ताकि लिंक के टूटने पर आपका उत्तर पूरी तरह बेकार न हो जाए।
डेविड रिचेर्बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.