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


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

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


86


الأصل


"أي واحد يتعارض مع البرامج الأخرى؟" ليس له علاقة بالرأي. - iconoclast
بعد تغيير ~/.tmux.conf لا تنسَ إعادة تشغيل خادم tmux حتى تسري التغييرات (superuser.com/q/188491/105108). - ks1322


الأجوبة:


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

  • إرسال SIGQUIT لعملية
  • إجهاض ل أو أثناء حلقات في قذيفة عندما ^C يتم اعتراضها
  • toggle-input-method في إيماكس

لا أعرف أي استخدامات أخرى. يجب الحرص على عدم قتل العمليات خارج نطاق الخطأ tmux أو screen بعد التعود عليه. حدث لي مرة واحدة فقط في بضع سنوات رغم ذلك.

~/.tmux.conf

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

~/.screenrc

escape ^|^|

46



حاولت هذا ولكن tmux يشكو من استخدام C-`. Can I escape the `شخصية بطريقة ما؟ - Jason
فقط لندع شخص آخر يعرف ، يجب أن تكتب 'C-\' بدلاً من `C- \` في تكوين tmux. - gns-ank
لا تنس أن 'tmux source-file / path/to/tmux.conf' عند الانتهاء لتجربة الإعدادات الجديدة - user72923
ولكن بعد ذلك أتعود على عادة هذا الأمر ، وعندما أنسى أنني في الشاشة ، أبدأ بإرسال SIGQUITs عن طريق الخطأ ... - Kache
"إذا كانت في وضع مناسب على تخطيط لوحة المفاتيح" بشكل افتراضي ، فهل يعني ذلك أن هناك بعض إعادة الضبط الشائعة التي تستخدمها والتي تجعل C- \ ملائمة؟ - storypixel


بالنسبة إلى الأشخاص الذين يرغبون في استخدام ميزة Backtick كالتنقل في tmux ، ستحتاج إلى إضافة:

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

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


43



يبدو أن Backtick فكرة جيدة حتى تلصق في بعض SQL ... - Synchro
Synchro على tmux 1.8 ليست مشكلة بعد الآن بفضل خيار "إعداء الوقت" الذي يتم تشغيله افتراضيًا (يتم تعيينه إلى 1 مللي ثانية). انظر هنا: sourceforge.net/p/tmux/tmux-code/ci/... - sickill
لقد وجدت هذا السؤال يبحث عن بدائل ل backtick لأنها بدأت تسبب مشاكل بعد اعتدت على استخدام backticks بدلا من $() في القذائف. أيضا يصبح ألم عند بدء كتابة الكثير من Markdown. لقد كنت استخدمه لعدة سنوات ، ولكن للأسف سآخذ لتغييره الآن. - 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


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

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

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


20



بالنسبة لمستخدمي Emacs ، يبدو أن Ctrl + O هو أفضل اختيار: في emacs ، "افتح خطًا جديدًا في المؤشر" وفي bash "أعد تسلسل الأوامر". - Flow
يمكنك إجراء 1+ إذا كنت موافقًا مع عمليات ctrl اليمنى ، وهذا يبدو وكأنه نسخة احتياطية جيدة. أنا ليفي نفسي ؛-) - DaveParillo
أعتقد أن Ctrl + O يكسر vim - Mu Qiao
أنا أتفق معMuQiao. يستخدم Ctrl-o في Vim للانتقال إلى موضع المؤشر القديم (أي ما يعادل زر الرجوع في العديد من IDE) ، وهي ميزة أستخدمها كثيرًا أثناء تصفح التعليمات البرمجية في Vim. Ctrl-b مرادف لـ PageUp في Vim. لا أستخدم Ctrl-b مطلقًا في Vim. لذلك بالنسبة لمستخدمي Vim مثلي ، فإن Ctrl-b لا يزال خيارًا أفضل من Ctrl-o. أستخدم C-j كمفتاح البادئة الخاص بي لأن C-j مرادف لـ j أو <Down> في Vim ولا أحد يستخدم C-j لنقل سطر واحد لأسفل في Vim. لدي هذا في ~ / .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 ، وهو backtick. يعقد Ctrl-A كلاً من Emacs وتحرير سطر الأوامر بالنسبة لي داخل Zsh ، وأنا أكره Ctrl-O (عمليتان من أجل معظم إجراءات الشاشة).

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

تكون المشكلة في استخدام backtick في بيئة unix عند محاولة قص ولصق رمز البرنامج النصي shell / perl. لهذا السبب أنا bindkey 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



الحل الإبداعي. أنا معجب. - staticsan
bind-key -n F11 set -g prefix `bind-key -n F12 set -g prefix C-o Updates for tmux in case others want to adapt this. - milkypostman
هل هناك طريقة لتعيين نوع من المهلة البسيطة للبادئة + التحرير والسرد other_key في tmux حتى عند لصق التعليمات البرمجية فإنه لا يشغل أي أمر ولكن عند كتابة backtick + key من لوحة المفاتيح يفعل ذلك لأن الإيقاف المؤقت بين backtick والمفتاح الآخر كان أطول ؟ - 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



لم يدم طويلاً - لقد عدت إلى ^ j. ^ الفضاء مشابه جدًا للأوامر التي أستخدمها لاستدعاء تطبيقات على مستوى OSX (Spotlight ، QuickSilver ، DTerm). - terrace
أستخدم C-j أيضا. هذا ما أستخدمه في ~ / .tmux.conf: set -g prefix2 C-j; bind-key C-j send-prefix -2 - Susam Pal
أنا أيضا استخدام C-Space ، لا يتم استخدامه في أي مكان آخر تقريبا. - mahdix
تعد مساحة C مثالية بالنسبة لي ، فأنا أستخدم Chromebook: D - Eric Nguyen


اقتراح متأخر: 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 من داخل (على سبيل المثال) محطة لينكس خام ، ولكن بدلا من محطة تعتمد على واجهة المستخدم الرسومية ، ثم أوصي إعطاء ctrl-s المحاولة انها مصنوعة عن طريق سوستينغ في tmux والشاشة أكثر ملاءمة بالنسبة لي.


6



Ctrl-s هو البحث إلى الأمام ، عندما أذهب إلى الآن مع Ctrl-r :) - Jack O'Connor
يعتبر Ctrl-S شائعًا لإيقاف إخراج وحدة التحكم (ويعرف أيضًا باسم "التجميد"). هذا بت لي عندما حاولت إعادة رسمها. - Dave