it-swarm.asia

ما هو تسلسل البادئة / الهروب الأقل تعارضًا للشاشة أو tmux؟

يذهب الشاشة مع Ctrl+A. tmux من ناحية أخرى - كما تم تطويره داخل الشاشة - يستخدم Ctrl+B. ومع ذلك ، يتم استخدام كل من ضغطات المفاتيح أيضًا في المحررين ، والأصداف ، وما إلى ذلك. وبالتالي ، فإن اختيار أحدهما يقلل من تجربة المستخدم ووظائف هذه الأدوات عند استخدامها داخل tmux أو الشاشة.

ما هي البادئة التي تتعارض بشكل أقل مع روابط البرامج والبرامج الأخرى؟

91
Flow

أعتقد أن ^\ (a.k.a. ^|) هو الأفضل إذا كان في وضع مناسب على تخطيط لوحة المفاتيح. استخداماتها في البرامج الأخرى نادرة جدًا:

  • إرسال SIGQUIT إلى عملية
  • إحباط أو أثناء حلقات في Shell عندما يتم اعتراض ^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
cjay

بالنسبة للأشخاص الذين يرغبون في استخدام backtick كهروب في tmux ، فأنت تريد إضافة:

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

هذا الأخير مهم ، وإلا لا يمكنك كتابة backtick لأغراض أخرى :-)

47
Ned Ruggeri

من المعروف أيضًا أن Ctrl + A يسبب مشاكل في Emacs ، بما في ذلك Bash في وضع Emacs. يبدو أن هذه ليست مشكلة بالنسبة لك.

Ctrl + O هو الخيار الآخر الذي رأيته. من الناحية التطبيقية ، هذا هو الإعداد الافتراضي في RatPoison (هذا هو مدير نافذة X لا يحتاج إلى ماوس). لقد استخدمت Ctrl + O عند استخدام الشاشات المتداخلة: Ctrl + O للشاشة الخارجية و Ctrl + A للشاشات الداخلية. عملت بشكل جيد ، ولكن كيندا خائفة زملائي. :-)

كنت أفكر فقط ، وإذا كنت تستخدم vi بدلاً من Emacs ، فهناك بعض البدائل. على سبيل المثال ، لا تستخدم Ctrl + G كثيرًا.

20
staticsan

لدي CAPS-LOCK معين على مستوى العالم إلى ESC. بعد ذلك ، أستخدم M-Space (أي. CAPS-LOCK + Space) للبادئة.

13
Nathan Speed

يمكنني استخدام نظام معقد للشاشة. تم ضبط الهروب الافتراضي الخاص بي على\140\140 ، وهو backtick. يعمل Ctrl-A على تعقيد كلاً من Emacs وتعديل سطر الأوامر بالنسبة لي داخل Zsh ، وأنا لا أحب Ctrl-O (عمليتان يدويتان لمعظم إجراءات الشاشة).

أعود إلى الشاشة 1 بحيث يتم إنشاء جلسات عمل جديدة من اليسار إلى اليمين على لوحة المفاتيح بدءًا من 1. وهذا يسمح لي بحجز الشاشة 0 لما أراه بنوافذ ثابتة أو مرجعية. إنه سريع جدًا لفتة واحدة إلى (backtick) 1 ، (backtick) 2 ، (backtick) 3 للتبديل بين الإطارات.

تكمن مشكلة استخدام backtick في بيئة يونيكس عند محاولة قص ولصق رمز البرنامج النصي Shell/Perl. لهذا السبب ، أرتبط المفتاح F11/F12 للتبديل بين شخصيتي المميزة.

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
Darren Hall

أستخدم 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
simonair

أرغب في حجز ^Space للعمليات الخاصة/الشائعة جدًا لأنني أجد أنه البادئة الأسهل للكتابة ، لكن الآن أحاول تعيينها كـ prefix في tmux .

فإنه يترك أصابعك حرة للقفز على الفور إلى الأمر الذي تريد كتابته. جربه.

6
terrace

اقتراح متأخر: ctrl-s. ctrl-s لديه عدد من المزايا:

  1. على صف المنزل.
  2. لا تزال قريبة من ctrl-a (في الواقع ، بالنسبة لمعظم الطابعات ، ستستخدم نفس الإصبعين اللذين استخدموهما في ctrl-a) ، وبالتالي فإن تبديل الذاكرة العضلية من ctrl-a إلى ctrl-s هو أمر تافه - بالنسبة لي ، أصبحت الطبيعة الثانية في غضون حوالي ساعة من أول تحاول ذلك.
  3. يحرر ctrl-a لنمط emacs "العودة إلى بداية السطر" أو عمليات "رقم الزيادة" على غرار vim. أو مهلا ، لتشغيل الشاشة داخل جزء tmux دون الحاجة إلى القلق بشأن الهروب من أحرف البادئة للتحكم في مثيل الشاشة المضمن. (غالبًا ما أقوم بذلك باستخدام tmux محلي مع أجزاء تحتوي على جلسات ssh إلى خوادم بعيدة ، حيث أقوم بتشغيل الشاشة)
  4. لا يتجاوز أو يضيف متطلبات الهروب إلى أي وظيفة طرفية أخرى شائعة الاستخدام. لا شيء الغالبية العظمى من الناس يستخدمون اليوم على ctrl-s!

بطبيعة الحال ، السبب في عدم وجود شيء على ctrl-s هو أنه في الجهاز الطرفي ، يستخدم بشكل تقليدي للتحكم في التدفق ، ويعود تاريخه إلى الأيام التي سبقت استخدام أدوات الترحيل مثل more و less. أنا متأكد من أن بعض برامج واجهة المستخدم الرسومية في مكان ما ما زالت به وظيفة التحكم في التدفق ممكنة بشكل افتراضي ، لكنني لم أصطدم بالفعل بواحد ؛ يبدو أن برامج واجهة المستخدم الرسومية التي جربتها كلها تتجاهلها تمامًا بشكل افتراضي ، مما يجعل تركيبة المفاتيح المناسبة متاحة للاستخدامات الأكثر إنتاجية.

لذلك إذا كنت لا تستخدم في الواقع شاشة/tmux من الداخل (على سبيل المثال) محطة Linux خام ، ولكن بدلاً من محطة تعتمد على واجهة المستخدم الرسومية (GUI) ، فإنني أوصي بتجربة ctrl-s ؛ انها مصنوعة من zip حول في tmux وشاشة أكثر ملاءمة بالنسبة لي.

6
Trevor Powell

لقد سمعت عن استخدام (backtick) ثم عليك فقط كتابته مرتين للحصول على backtick الفعلي. قد يكون أفضل للمستخدمين vi الذين اعتادوا على الإجراء (إلا إذا كنت تفعل الشيء Caps lock).

4
bluehavana

أوصي بـ C-j ، الذي لا يتداخل كثيرًا مع vi أو emacs. بشكل أساسي ، أتفق مع تعليق من Susam Pal ، والذي يبدو جديراً بالظهور كإجابة ، حيث يبدو أن الآخرين لديهم صراعات كبيرة من وجهة نظري.

أستخدم C-j كمفتاح البادئة الخاص بي لأن C-j مرادف لـ j أو في Vim ولا أحد يستخدم C-j لنقل سطر واحد لأسفل في Vim. لدي هذا في بلدي ~/.tmux.conf:

set -g prefix2 C-j; bind-key C-j send-prefix -2

4
nealmcb

قد يكون مفتاح دون صراع C-z، لأنه يستخدم عادة لإرسال البرنامج إلى الخلفية لمتابعة شيء آخر على Shell الذي بدأه. أنا لا أفعل هذا عندما يكون لدي tmux.

4
Josuah Demangeon

بالنسبة لتخطيط لوحة المفاتيح Programmer Dvorak ، من الجيد استخدام مفتاح ناقص (شرطة) كبادئة ، أي ctrl + -.
المفتاح ناقص في موضع مفتاح اقتباس واحد في تخطيط qwerty. أيضا لقد قبعات قفل وظيفة مفتاح كمفتاح السيطرة. التالي هو tmux conf ، لتعيينه كبادئة:

unbind C-b
set -g prefix C-_
bind C-_ send-prefix
bind - last-window

قد تتساءل ، لماذا يتم استخدام تسطير أسفل السطر بدلاً من ناقص؟ ارجع إلى Tmux: كيف أرتبط بـ C - (تحكم ناقص)؟
بالنسبة إلى qwerty ، يمكنك تطبيق كيف يمكنني ربط مفتاح بادئة tmux بحل C - '؟ ، من أجل الاحتفاظ بنفس الاختصار .

أود أن أقول إن هذه بادئة مثالية إذا كنت تستخدم Vim/Neovim. نظرًا لأن البادئات ، مثل ctrl + a أو ctrl + b ، تقوم بوظيفة الظل (تداخل) Vim ، بأي من الاتجاهين.

3
Vladimir Bauer

أعتقد أن أفضل حل هو ^ C. يستخدم Emacs ^ C كمفتاح بادئة ، وأجد أنه عندما أحتاج إلى كتابة ^ C في Shell ، فغالبًا ما أكتب اثنين على أي حال. :-)

unbind-key C-b
set -g prefix C-c
bind-key C-c send-prefix
2
user114905

شخصياً ، b بعيد جدًا عن Ctrl بالنسبة لي. عندما أستخدم tmux ، أقوم دائمًا بتغيير الرابط من C-b إلى C-a. التعارض الرئيسي مع C-a هو تحديد الكل ، لكنني لم أجد أن ذلك يمثل مشكلة مع البرامج التي أستخدم tmux معها.

2
DaveParillo

كمستخدم GNU emacs و zsh و MS Windows ، أستخدم Control-T. (على سبيل المثال في .screenrc :)

الهروب "^ T ^ T"

نعم يوجد في Control-T شيء مرتبط به ، مثل القائمة المنسدلة في الاستعداد لأوبونتو ، أو تبديل الحرف في Emacs.

لقد تجاهلت C-o لأنه يتطلب يدين بالنسبة لي.

2
piyo

أستخدم Caps Lock ، وعلى OSX تحتاج إلى القيام ببعض الأشياء الخاصة لجعلها تعمل.

https://Gist.github.com/burtlo/3788048

2
Brad Parks

يمكنك استخدام backtick. لا تدعم بعض الإصدارات الأقدم من tmux backtick ، ​​لذا يمكنك القيام بما يلي للتغلب على الحل البديل (من شأنه أن يضيف C-`و C- @ و C-space كما لو كانت الفوقية في نفس الوقت):

# meta prefix - @ - backtick
unbind C-b
set -g prefix [email protected]
bind [email protected] send-prefix
bind [email protected] last-window

عادةً ما أعيد رسم خريطة CapsLock إلى Ctrl ، لذلك من المنطقي أكثر مع backtick.

1
Alex

تستخدم معظم الإجابات هنا Ctrl كجزء من مجموعة مفاتيح.
عندما استخدمت Ctrl ، بدأت إصبع الخنصر تؤلمني لأنني كنت مضطرًا دائمًا لنشره إلى Ctrl.
أستخدم Alt-j الذي أكتبه بإبهامي الأيسر وبإصبعي الأيمن وهو مريح للغاية. لم أجد أي تصادمات مع أي برنامج آخر حتى الآن.

unbind C-b
set-option -g prefix M-j
1
wullxz

يعجبني اقتراح ربط ctrl-\كبادئة ، لكن لكي أجعل هذا العمل يعمل على Linux Mint 12 ، كان علي الهروب من المكان الربط في الأسفل. خلاف ذلك ، لن يستغرق الأمر. انظر .tmux.conf هنا: استخدام tmux مع كل من emac و vim

0
justingordon

أعتقد أن مستخدمي Mac سيجدون § أكثر ملاءمة من backtick.

على لوحة المفاتيح غير التابعة لنظام Mac ، يتم وضع backtick في نفس المفتاح مثل § على لوحات مفاتيح Mac. لذلك ، لتجربة نفس الراحة التي يتمتع بها الأشخاص الذين يقترحون استخدام backtick ، ​​استخدم علامة الفقرة على لوحة مفاتيح Mac.

يعد استخدام backtick على لوحات مفاتيح Mac أمرًا صعبًا حيث إنه يقع بالقرب من مفتاح التحول الأيسر (⇧) والتحكم (⌃) و (⌥) مفاتيح alt. على MacBooks حتى بالقرب من مفتاح fn- الأيسر.

0
nanitous