सवाल स्क्रीन या tmux के लिए कम से कम विरोधाभासी उपसर्ग / भागने अनुक्रम क्या है?


स्क्रीन के साथ चला जाता है Ctrl+। दूसरी तरफ tmux- जैसा स्क्रीन-उपयोग के भीतर विकसित किया गया है Ctrl+बी। दोनों कीस्ट्रोक, हालांकि, संपादकों, गोले इत्यादि में भी उपयोग किए जाते हैं। इस प्रकार टीएमयूक्स या स्क्रीन के भीतर उपयोग किए जाने पर किसी भी व्यक्ति को उन उपकरणों के उपयोगकर्ता अनुभव और कार्यक्षमता को कम कर देता है।

क्या उपसर्ग कम से कम अन्य कार्यक्रमों और गोले की कीबाइंडिंग के साथ संघर्ष करता है?


86


मूल


"कौन सा अन्य कार्यक्रमों के साथ कम से कम संघर्ष करता है?" राय के साथ कुछ भी नहीं है। - iconoclast
बदलने के बाद ~/.tmux.conf परिवर्तनों को प्रभावी होने के लिए tmux सर्वर को पुनरारंभ करना न भूलें (superuser.com/q/188491/105108)। - ks1322


जवाब:


मुझे लगता है ^\ (यानी ^|) सबसे अच्छा है अगर यह आपके कीबोर्ड लेआउट पर सुविधाजनक स्थिति में है। अन्य कार्यक्रमों में इसका उपयोग काफी दुर्लभ है:

  • भेजना SIGQUIT एक प्रक्रिया के लिए
  • जब एक खोल में loops के लिए निरस्त या जब ^C अवरुद्ध है
  • toggle-input-method emacs में

मुझे किसी अन्य उपयोग के बारे में पता नहीं है। बाहर की प्रक्रियाओं को गलती से मारने के लिए सावधान रहें tmux या screen इसका इस्तेमाल करने के बाद। यद्यपि यह कुछ वर्षों में केवल एक बार हुआ था।

~/.tmux.conf

unbind-key C-b
set -g prefix 'C-\'
bind-key 'C-\' send-prefix

~/.screenrc

escape ^|^|

46



मैंने कोशिश की लेकिन टीएमयूक्स के उपयोग के बारे में शिकायत करता है C-`. Can I escape the किसी भी तरह चरित्र? - Jason
बस किसी और को जाने के लिए, आपको लिखना चाहिए 'C-\' tmux कॉन्फ़िगरेशन में `C- \` के बजाय। - gns-ank
नई सेटिंग्स को आज़माने के लिए समाप्त होने पर 'tmux स्रोत-फ़ाइल /path/to/tmux.conf' को न भूलें - user72923
लेकिन फिर मुझे उस आदेश की आदत मिलती है, और जब मैं भूल जाता हूं कि मैं स्क्रीन पर हूं, तो मैं गलती से सिग्क्विट भेज रहा हूं ... - Kache
"यदि यह आपके कीबोर्ड लेआउट पर सुविधाजनक स्थिति में है" डिफ़ॉल्ट रूप से यह नहीं है, तो क्या आप यह कह रहे हैं कि कुछ लोकप्रिय रीमेपिंग है जिसका आप उपयोग कर रहे हैं जो सी-\ सुविधाजनक बनाता है? - storypixel


उन लोगों के लिए जो tmux में भागने के रूप में बैकटिक का उपयोग करना चाहते हैं, आप जोड़ना चाहेंगे:

unbind C-b
set -g prefix `
bind-key ` send-prefix

वह अंतिम महत्वपूर्ण है, अन्यथा आप अन्य उद्देश्यों के लिए बैकटिक टाइप नहीं कर सकते :-)


43



बैकटिक एक अच्छा विचार की तरह प्रतीत होता है जब तक आप कुछ एसक्यूएल में पेस्ट नहीं करते ... - Synchro
@Mynchro tmux 1.8 पर यह अब कोई मुद्दा नहीं है, मान लें कि पेस्ट-टाइम विकल्प जो डिफ़ॉल्ट रूप से चालू है (1ms पर सेट)। यहाँ देखें: sourceforge.net/p/tmux/tmux-code/ci/... - sickill
मैंने यह प्रश्न बैकटिक के विकल्पों की तलाश में पाया क्योंकि इसके बजाय बैकटिक्स का उपयोग करने के लिए उपयोग करने के बाद परेशानी पैदा हुई $() गोले में एक बार जब आप बहुत सारे मार्कडाउन लिखना शुरू कर देते हैं तो यह दर्द हो जाता है। मैं इसे कई सालों से इस्तेमाल कर रहा हूं, लेकिन दुर्भाग्य से मुझे इसे अभी बदलना होगा। - kirelagin
मेरे पास .tmux.conf में भी है bind-key C-a set-option -g prefix C-a। जब भी मुझे बैकटीक्स का उपयोग करने की ज़रूरत होती है तो मैं हिट करता हूं `-Ctrl-a जो मेरे उपसर्ग को सेट करता है C-a। और मेरे पास है bind-key C-b set-option -g prefix ` तो मैं हिट कर सकते हैं C-a-C-b वापस जाने के लिए - boris
क्या होगा यदि आप मार्कडाउन लिख रहे हैं? आप उपसर्ग से कैसे बचते हैं? - OJFord


एएमएक्स मोड में बैश समेत Emacs के साथ समस्याएं उत्पन्न करने के लिए Ctrl + A भी जाना जाता है। ऐसा लगता है कि यह आपके लिए कोई समस्या नहीं है।

Ctrl + O दूसरा विकल्प है जिसे मैंने देखा है। इसके अलावा, यह RatPoison में डिफ़ॉल्ट है (यह एक एक्स विंडो प्रबंधक है जिसे माउस की आवश्यकता नहीं है)। नेस्टेड स्क्रीन का उपयोग करते समय मैंने Ctrl + O का उपयोग किया है: बाहरी के लिए Ctrl + O और आंतरिक + के लिए Ctrl + A। अच्छी तरह से काम किया, लेकिन थोड़े से मेरे सहयोगियों से डर गया। :-)

मैं बस सोच रहा था और यदि आप Emacs के बजाय vi का उपयोग करते हैं, तो कुछ विकल्प हैं। उदाहरण के लिए, Ctrl + G का उपयोग बहुत अधिक नहीं किया जाता है।


20



Emacs उपयोगकर्ताओं के लिए Ctrl + O सबसे अच्छा चयन प्रतीत होता है: emacs में यह केवल "कर्सर पर एक नई पंक्ति खोलें" और बैश में "कमांड अनुक्रम दोहराएं"। - Flow
+1 अगर आप सही हाथ से ctrl-operation के साथ ठीक हैं, तो यह एक अच्छा बैकअप जैसा दिखता है। मैं खुद को एक बायीं तरफ हूँ ;-) - DaveParillo
मुझे लगता है कि Ctrl + O ब्रेक विम - Mu Qiao
मैं @MuQiao से सहमत हूं। विम में Ctrl-o का उपयोग पुराने कर्सर स्थिति (कई आईडीई में बैक बटन के समतुल्य) पर जाने के लिए किया जाता है, एक सुविधा जो मैं अक्सर विम में कोड ब्राउज़ करते समय उपयोग करता हूं। Ctrl-b विम में पेजअप का समानार्थी है। मैं विम पर बिल्कुल Ctrl-b का उपयोग नहीं करता हूं। तो मेरे जैसे विम उपयोगकर्ताओं के लिए, Ctrl-b अभी भी Ctrl-o से बेहतर विकल्प है। मैं सी-जे का उपयोग अपनी उपसर्ग कुंजी के रूप में करता हूं क्योंकि सी-जे जे या <डाउन> विम में समानार्थी है और कोई भी विम में एक पंक्ति को नीचे ले जाने के लिए सी-जे का उपयोग नहीं करता है। मेरे पास यह है ~ / .tmux.conf में: set -g prefix2 C-j; bind-key C-j send-prefix -2 - Susam Pal
C-j CtrlP के साथ संघर्ष। बफर सूची का उपयोग ऊपर और नीचे बढ़ाना C-k तथा C-j क्रमश: - blockloop


मुझे मिल गया है CAPS-LOCK वैश्विक स्तर पर मैप किया गया ESC। फिर, मैं उपयोग करता हूँ M-Space (अर्थात। CAPS-LOCK+ Space) मेरे उपसर्ग के लिए।


12



बहुत अच्छा विचार, साझा करने के लिए धन्यवाद। - AhHatem


मैं स्क्रीन के लिए एक जटिल प्रणाली का उपयोग करें। मेरा डिफ़ॉल्ट भाग \ 140 \ 140 पर सेट है, जो बैकटिक है। Ctrl-A Zsh के भीतर मेरे लिए Emacs और कमांड लाइन संपादन दोनों को जटिल करता है, और मैं Ctrl-O (अधिकांश स्क्रीन क्रियाओं के लिए 2 हाथ संचालन) को नापसंद करता हूं।

मैं स्क्रीन 1 पर पुनर्निर्मित करता हूं ताकि नए सत्र 1 से शुरू होने वाले कीबोर्ड पर बाएं से दाएं से बनाए जाते हैं। इससे मुझे लगातार या संदर्भ विंडो पर विचार करने के लिए स्क्रीन 0 आरक्षित करने की अनुमति मिलती है। विंडोज़ के बीच स्वैप करने के लिए यह बहुत तेज़ एक हैडेंट (बैकटिक) 1, (बैकटिक) 2, (बैकटिक) 3 है।

यूनिक्स पर्यावरण में बैकटिक का उपयोग करने के साथ समस्या तब होती है जब खोल / पर्ल स्क्रिप्ट कोड को काटने और पेस्ट करने का प्रयास किया जाता है। इस कारण से मैं अपने बचने के चरित्र के बीच स्विच करने के लिए F11 / F12 bindkey।

bindkey -d -k F1        escape ^O^O # bound to F11
bindkey -d -k F2        escape \140\140 # bound to F12

जब मैं कट और पेस्ट ऑपरेशन कर रहा हूं, तो इससे बचने के लिए Ctrl-O पर भाग निकल जाएगा। मुझे लगता है कि एक डबल टिक मारना आसान है, और अधिकांश स्क्रीन ऑपरेशंस के लिए एक अच्छा व्यापार बंद है।

इस उत्तर को एक नए समाधान के साथ संशोधित करना जो F12 को मारकर मोड को टॉगल करने और मोड को इंगित करने के लिए कैप्शन का उपयोग करने की अनुमति देता है।

## command characters
escape \140\140                 # default is `

## sets caption and escape toggle
bindkey -d -k F2 process a     # bound to F12

## initial caption
caption always '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{-b .c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '

## registers to toggle bindkeys
register a "\140:eval 'bindkey -d -k F2 process b' 'process c' 'escape \\017\\017'^M"
register b "\017:eval 'bindkey -d -k F2 process a' 'process d' 'escape \\140\\140'^M"

## registers to change captions
register c "\140:caption string '%{= kW}%?%F%{+b mW}%:%{= kK}%? %= %?%F%{.c}ALT%{-}%? | %-w%{KW}%n* %t%? @%u%?%{-}%+w '^M"
register d "\017:caption string '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{.c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '^M"

12



रचनात्मक समाधान। मैं प्रसन्न हूँ। - staticsan
बाइंड-की-एन एफ 11 सेट-जी प्रीफिक्स `बाइंड-की-एन एफ 12 सेट-जी प्रीफिक्स सी-ओ टीएमयूक्स के लिए अपडेट अगर अन्य इसे अनुकूलित करना चाहते हैं। - milkypostman
क्या tfux में prefix + other_key combo के लिए किसी प्रकार का न्यूनतम टाइमआउट सेट करने का कोई तरीका है, इसलिए कोड चिपकाते समय यह किसी भी कमांड को ट्रिगर नहीं करता है, लेकिन कीबोर्ड से बैकटिक + कुंजी टाइप करते समय ऐसा होता है क्योंकि बैकटिक और दूसरी कुंजी के बीच विराम लंबा था ? - sickill


मैं उपयोग करता हूं Ctrl-Q में tmux और यह अब तक अच्छी तरह से काम किया है। मुझे उल्लेख करना है, हालांकि, यह खोल प्रवाह नियंत्रण के साथ संघर्ष करता है। डिफ़ॉल्ट रूप से, Ctrl-Qइसका उपयोग रोकने के बाद आउटपुट को फिर से सक्षम करने के लिए किया जाता है Ctrl-S। गलती से मारने के कुछ समय बाद एक अटक गया खोल से हैरान हो गया Ctrl-S, मैंने प्रेस नहीं करना सीखा है Ctrl-S

(कोई प्रवाह प्रवाह को पूरी तरह से बंद कर सकता है stty -ixon, या विभिन्न कुंजी बांधने के लिए stty start तथा stty stop।)

# tmux.conf
unbind C-b
set -g prefix C-q

11



मैंने इस बांध को अपनाया है और मुझे यह बहुत सुविधाजनक लगता है। धन्यवाद! - aymericbeaumet
मेरा पसंदीदा भी, क्योंकि मैं हमेशा टर्मिनल नियंत्रण प्रवाह सामग्री को अक्षम करता हूं। - Jack O'Connor
के लिए emacs में प्रयुक्त quote-inserted। नमूना उपयोग (emacs में): अगर मैं अगले टैब चरित्र की खोज करना चाहता हूं - <Ctrl-s>+<Ctrl-q>+<TAB> - nhed


मुझे आरक्षित करना पसंद है ^Space बहुत विशेष / सामान्य संचालन के लिए क्योंकि मुझे यह टाइप करने का सबसे आसान उपसर्ग माना जाता है, लेकिन अभी मैं इसे मैप करने की कोशिश कर रहा हूं prefix में tmux

यह आपके ऑब्जेक्ट को तुरंत उस कमांड पर कूदने के लिए छोड़ देता है जिसे आप टाइप करना चाहते हैं। कोशिश करो।


6



यह लंबे समय तक नहीं रहा - मैं वापस ^ जे हूँ। ^ स्पेस कमांड के समान है जो मैं ओएसएक्स-स्तरीय ऐप्स (स्पॉटलाइट, क्विकसिल्वर, डीटीerm) का आह्वान करने के लिए उपयोग करता हूं। - terrace
मैं भी सी-जे का उपयोग करता हूं। मैं अपने ~ / .tmux.conf में उपयोग करता हूं: set -g prefix2 C-j; bind-key C-j send-prefix -2 - Susam Pal
मैं सी-स्पेस का भी उपयोग करता हूं, इसका उपयोग लगभग कहीं और नहीं किया जाता है। - mahdix
सी-स्पेस मेरे लिए बिल्कुल सही है, क्योंकि मैं Chromebook पर हूं: डी - Eric Nguyen


एक बेल्ट सुझाव: ctrl-sctrl-s कई फायदे हैं:

  1. घर की पंक्ति पर।
  2. अभी भी करीब ctrl-a (वास्तव में, अधिकांश टाइपर्स के लिए यह उसी दो अंगुलियों का उपयोग करेगा जिनका उपयोग उन्होंने किया था ctrl-a), इसलिए मांसपेशी स्मृति स्विच से ctrl-a सेवा मेरे ctrl-s मामूली है - मेरे लिए, यह पहली कोशिश करने के लगभग एक घंटे के भीतर दूसरी प्रकृति बन गया।
  3. मुक्त हो जाना ctrl-a Emacs-style "लाइन की शुरुआत में वापस" या vim-style "increment number" संचालन के लिए। या हे, एम्बेडेड स्क्रीन इंस्टेंस को नियंत्रित करने के लिए उपसर्ग वर्णों से बचने के बारे में चिंता करने की आवश्यकता के बिना एक tmux फलक के अंदर स्क्रीन चलाने के लिए। (मैं अक्सर स्थानीय टीएमक्स का उपयोग करके दूरस्थ सर्वरों में एसएसएच सत्र वाले पैन के साथ ऐसा करता हूं, जिसमें मैं स्क्रीन चलाता हूं)
  4. किसी अन्य सामान्य रूप से उपयोग की जाने वाली टर्मिनल कार्यक्षमता के लिए बचने या आवश्यकताओं को ओवरराइड नहीं करता है। कुछ भी तो नहीं आज का उपयोग करने वाले अधिकांश लोग ctrl-s पर हैं!

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

इसलिए यदि आप वास्तव में स्क्रीन / टीएमयूक्स (उदाहरण के लिए) कच्चे लिनक्स टर्मिनल का उपयोग नहीं कर रहे हैं, बल्कि जीयूआई-आधारित टर्मिनल से, तो मैं अनुशंसा करता हूं ctrl-s एक कोशिश; यह tmux में ज़िपिंग कर रहा है और स्क्रीन मेरे लिए बहुत सुविधाजनक है।


6



Ctrl-s आगे की खोज है, क्योंकि जब मैं Ctrl-r के साथ दूर जाता हूं :) - Jack O'Connor
कंसोल आउटपुट को रोकने के लिए Ctrl-S सामान्य है (उर्फ "फ्रीजिंग")। जब मैंने इसे रीपैप करने का प्रयास किया तो यह मुझे थोड़ा सा लगा। - Dave