سؤال إخراج قذيفة التمرير مع الماوس في tmux


لا يعمل التمرير بالماوس tmux الطريقة التي تعمل بها عند تشغيل shell بدون tmux (في Gnome Terminal). يبدو أن tmux يرسل أحداث تمرير الماوس كما لو قمت بالضغط على المفاتيح لأعلى / لأسفل. ولكن أريد أن التمرير على الرغم من قذيفة انتاج التاريخ. هل هناك طريقة لجعل tmux تعمل مثل هذا؟

ملحوظة: أنا أعرف كيفية التمرير مع لوحة المفاتيح (شكرا ل سؤال آخر هنا).

حاولت تمرير الماوس في نسختين من tmux:


228
2017-11-12 14:02


الأصل


أعتقد أن إجابة bukzor يحل مشكلتك ل tmux 1.5 وأحدث. - kynan


الأجوبة:


للتمرير داخل محفوظات الإخراج التي ستستخدمها ^b + [  يمكنك بعد ذلك استخدام M + V لصفحة لأعلى و ^ V لأسفل الصفحة. لا أعرف ما إذا كان يمكنك استخدام الحقيقي صفحة الى الأعلى و PgDown على أية حال. لا ترسل طرفي هذه المفاتيح إلى tmux. بدلاً من ذلك ، يقوم بتمرير نفسه وليس تاريخ tmux.

للخروج من وضع النسخ ، اضغط على ESC

لاستخدام الماوس الخاص بك في هذا الوضع (يسمى وضع النسخ) اضغط ^b + : وأدخل ما يلي:

setw -g mouse on

ملاحظة: في tmux <2.1 ، تم تسمية هذا الخيار mode-mouse، و لا mouse

الآن عند التغيير إلى وضع النسخ يمكنك استخدام الماوس للتمرير خلاله. يمكنك وضع هذا الأمر في ~ / .tmux.conf إذا كنت تريد ذلك فيتم تحميله في كل مرة تقوم بتشغيل tmux.

تحديث: اعتبارًا من tmux 1.5 ، يقوم هذا الخيار باستخدام عجلة التمرير تلقائيًا للانتقال إلى وضع النسخ والتمرير للخلف إلى المخزن المؤقت tmux scrollback. ليس من الضروري أن تضرب أولاً Ctrl-B + [ أي أكثر من ذلك. يؤدي التمرير مرة أخرى إلى الموجه أيضًا إلى إنهاء وضع النسخ تلقائيًا.


214
2017-12-01 18:48



لاحظ أنه قد يتعين عليك إعادة تحميل ملف التهيئة إذا كان لديك خادم tmux قيد التشغيل بالفعل. blog.sanctum.geek.nz/reloading-tmux-config  tmux source-file ~ / .tmux.conf - Allan Nienhuis
لا يعمل بالنسبة لي على OS X. - Ain
Ain - يوجد الآن 11 إصدارًا رئيسيًا من OS X. ما الإصدار الذي نتحدث عنه بالضبط؟ - Ramhound
بالنسبة إلى tmux> = 2.1 ، راجع الإجابة DannyRe @ (حاليًا بعيد جدًا). - joelostblom
set -g mouse on عملت بالنسبة لي على macOS tmux 2.1 - Miguel Mota


هناك بعض التغييرات لـ Tmux 2.1

  • تم إعادة كتابة وضع الماوس. لم يعد هناك الآن خيارات من أجل:

    • الماوس بتغيير-جزء
    • الماوس حدد-جزء
    • الماوس حدد النافذة
    • وضع الماوس

    بدلاً من ذلك ، هناك خيار واحد فقط: "الماوس" الذي يقوم بتشغيل دعم الماوس تماما.

ممكن حدوثه

set -g mouse on
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"

114
2017-10-19 11:02



شكرا ، واختيار الألواح الآن ، وما العمل ، ولكن التمرير لا. لإجراء التمرير مرة أخرى ، استخدم هذا: github.com/NHDaly/tmux-scroll-copy-mode - Mahdi
رائع - هذا يعمل حتى على cygwin - tmux على WINDOWS 7 - WD11
Mahdi يبدو أن هذا لا يعمل على osx. أي تلميحات؟ - SolidSnake
SolidSnake: لا أتذكر مواجهة أية مشكلات في استخدام هذا المكون الإضافي. عملت بسلاسة ، لقد قمت بتمكين وضع الماوس ثم قمت بتثبيته. يجب عليك إعادة تحميل تهيئة tmux باستخدام tmux source-file ~/.tmux.conf - Mahdi
bind لا يبدو أنه ضروري بعد الآن على tmux 2.3 - Theron Luhn


يتيح لك الإصدار الحالي من tmux (1.5) تعيين خيار وضع الماوس ببساطة ، ويسمح لك بالتمرير باستخدام عجلة الماوس.

         mode-mouse [on | off]
                 Mouse state in modes.  If on, the mouse may be used to
                 enter copy mode and copy a selection by dragging, to
                 enter copy mode and scroll with the mouse wheel, or to
                 select an option in choice mode.

في بلدي. tmux.conf:

set-window-option -g mode-mouse on

61
2017-11-15 20:05



هذا هو السلوك الذي تريده حقًا! التمرير بالماوس تمكين وضع النسخ ، وليس فقط التمرير في المخزن المؤقت البديل قذيفة. وكان هذا في النهاية الحافز على التحول من شاشة إلى tmux لي. هل هناك خيار للحصول على نفس السلوك أيضًا مع Shift + PgUp؟ - kynan
kynan: أنا شخصيا فقط اضغط C-A PgUp للقيام بذلك. يمكنك ربط مفتاح الصفحة مباشرة مع tmux bind-key -n PPage copy-mode -u. يجب أن يعمل العمل المماثل على shift + pageup إذا قمت بإلغاء ارتباطه من الطرفية المحلية الخاصة بك. - bukzor
وينتج عن ذلك سلوك غريب حيث ، عندما أتنقل إلى سطر الأوامر ، أحصل على حرف إضافي تم إدخاله في CLI ، والذي ينتج عادة عن أول أمر تم تشويهي. انها مزعجة جدا. - Chris R
لاحظ أنه على الرغم من أن ذلك يعمل بشكل جيد لتشغيل التمرير بالماوس ، فإنه يؤدي إلى سلوك غريب عند تحديد النص الذي سيتم لصقه بنقرة متوسطة. انتهيت من إعداد C-b pg-up / down (الافتراضي) نظرًا لأن المقايضة لم تكن مقبولة. - h7r
ChrisR أحصل على هذا قليلا جدا وليس متسقة تماما. هل هو [M [M # [M [M # [M [M # [M [M # [M نوع من الخيط؟ - Elijah Lynn


جرب هذا في .tmux.conf الخاص بك

# Make mouse useful in copy mode
setw -g mode-mouse on

# Allow mouse to select which pane to use
set -g mouse-select-pane on

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

# Scroll History
set -g history-limit 30000

# Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on

# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50

مأخوذ من http://brainscraps.wikia.com/wiki/Extreme_Multitasking_with_tmux_and_PuTTY


51
2017-10-24 16:55



+1 لـ escape-time ضبط - Dakusan


اقترح شخص ما (من مصدر فقدت) إضافة ما يلي ~.tmux.conf:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

ليس لدي أي فكرة عن كيفية عمله أو ما يفعله ، ولكن هذا يتيح لي الآن التمرير باستخدام عجلة الماوس داخل جلسة tmux دون الحاجة إلى إدخال وضع النسخ tmux؛ أنا فقط انتقل عجلة القيادة وباء! إنها تعمل. لاحظ أنني أستخدم terminal.app ، لكني أتذكر أن OP أعطت الإجابة خصيصًا للاستخدام مع gnome-terminal.


14
2018-06-22 17:10



جيد ، شكرا لك! تعمل نصيحتك في gnome-terminal أيضًا. سأحاول استخدام هذا الإعداد لبعض الوقت. ولكن له عيوب: تمرير الماوس الآن لا يعمل كما هو متوقع في less. إذا قمت بتحميل less في داخل tmux، تمرير الماوس لا التمرير فتح الملف في less. يقوم بتمرير المحطة بالكامل. الغريب، vim يتصرف كما هو متوقع في الداخل tmux مع الإعداد الخاص بك. - user31494
لاحظ أنه اعتبارا من tmux 1.5 يتم استبدال هذا من قبل setw -g mode-mouse on الخيار ، الذي يقوم بنسخ اسكولربت باستخدام عجلة الفأرة. - kynan
التفسير هو أن هذا الخيار يعطل قفل التمرير على الشاشة البديلة للمطراف ، وهو أمر مرغوب في معظم الحالات لأن التطبيقات التي تطلب المخزن المؤقت للشاشة البديلة (vi ، أقل ، tmux إلخ) توفر إمكانيات التمرير الخاصة بها. تجاوز هذا القفل في tmux يسمح التمرير المخزن المؤقت للشاشة البديلة في المحطة التي لا تعطي النتيجة المرجوة في جميع الحالات باستثناء بضع حالات. نرى هذا الجواب للحصول على الاقتباس من man xterm شرح شاشة بديلة. - kynan
للأسف ، هذا لا يعمل في iTerm - Suan
لقد حصلت على نتائج إيجابية مع هذا في iTerm 2 - Keith Smiley


يقدم tmux 2.1 روابط الماوس الجديدة.

كتبت هذه الروابط فقط اليوم. إنه يربط عجلة الفأرة بسلاسة عندما لا تكون في Vim ، لأن Vim قادر على تفسير رموز عجلة الفأر الخام (لأغراض مثل اختيار نافذة Vim للتمرير لك اعتمادا على أي الماوس الخاص بك قد انتهى).

وهذا يعني أنه بإمكاننا استخدام الماوس في النهاية فقط لعرض صفحات متعددة للإنسان وأي شيء آخر يقبل مفاتيح الأسهم. يمكنك تمديد وسلسلة if المنطق حسب الضرورة لتنفيذ المزيد من المنطق لتطبيقاتك.

bind -n WheelUpPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Up"
bind -n WheelDownPane if "[[ #{pane_current_command} =~ vim ]]" "select-pane -t = ; send-keys -M" "select-pane -t = ; send-keys Down"

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


5
2017-12-15 23:44



أنا الآن مجرد نوع من اللعب مع فكرة جعل الماوس على حدود جزء القيام بشيء مثير للاهتمام. ربما ما سأفعله هو عدم رسم خريطة للعجلة على الحدود ، ولكن قم بتعيينها لدورة نوافذ tmux عند الانتهاء من وضعية الحالة. - Steven Lu
ما هو الرابط إلى جيثب الخاص بك؟ أود أن مواكبة جهودك! ميزة أخرى أنا أتطلع هو أن يكون النقر المزدوج نسخ الكلمة إلى الحافظة X ، كما يفعل خارج Tmux. - joeytwiddle
joeytwiddle أوصي بشدة github.com/NHDaly/tmux-better-mouse-mode، انظر جوابي الآخر - Steven Lu


يقوم Gnome-terminal ببعض الخداع الأنيق لترجمة أحداث تمرير الماوس إلى أعلى وأسفل مفاتيح الأسهم في ظروف التمرير المقيد "المعتاد". على سبيل المثال ، عند عرض بعض النص باستخدام less (يحدث هذا على وجه الخصوص عندما تقرأ رجلاً) ، يمكنك تمرير المحتوى باستخدام j، kومفاتيح الأسهم. لكن أيضامع gnome-terminal، يمكنك القيام بذلك باستخدام تمرير الماوس ، وذلك بفضل الخدعة المذكورة.

لذا أعتقد tmux يفعل بعض "التقاط" من المحطة تماما مثل less - ونفس الآلية في gnome-terminal kicks in: تمرير الماوس يتحول إلى مفتاح السهم لأعلى / لأسفل.

يمكنك إيقاف تشغيل هذه الميزة في إعدادات الملف الشخصي والحصول على التمرير العادي في أي ظرف من الظروف. ما عليك سوى إلغاء تحديد مربع الاختيار الأخير في علامة التبويب "التمرير": the checkbox.


3
2017-12-07 07:03



شكرا لك على التفسير ، uldtko! لكنه لا يساعد مع مشكلة التمرير الماوس. نعم ، مع إيقاف تشغيل الخيار ، gnome-terminal توقف ارسال الثلاثي ^[[A و ^[[B على تمرير الماوس. انه جميل tmux (لا قبيحة ^[[A^[[A^[[A في بعض البرامج ، لا تمرير التاريخ القبيح ، لكن الآن less يتوقف التمرير على تمرير الماوس. - user31494
الأوكرانية؟ (التخمين من قبل i الشخصيات) - dotancohen


https://github.com/NHDaly/tmux-better-mouse-mode

تنفيذ شكلي وميزة الغنية للتحكم الماوس لأحدث tmuxes. ينصح به بشده.

من المرجح أنك تريد استخدامها

set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"

معها ايضا.


0
2018-01-02 23:48