सवाल Tmux में माउस के साथ स्क्रॉल खोल आउटपुट


माउस स्क्रॉलिंग में काम नहीं करता है tmux जब मैं tmux (जीनोम टर्मिनल में) के बिना खोल चलाता हूं तो यह काम करता है। ऐसा लगता है कि tmux माउस स्क्रॉल इवेंट भेजता है जैसे कि मैंने ऊपर / नीचे कुंजी दबाई। लेकिन मैं खोल के बावजूद स्क्रॉल करना चाहता हूँ उत्पादन इतिहास। क्या इस तरह tmux काम करने का कोई तरीका है?

ध्यान दें: मुझे पता है कि कुंजीपटल के साथ स्क्रॉल कैसे करें (धन्यवाद एक और सवाल यहाँ)।

मैंने tmux के दो संस्करणों में माउस स्क्रॉलिंग की कोशिश की:

  • 0.8-5hardy1 (चालू Ubuntu 8.04 (हार्डी हेरॉन))
  • 1.3-1 (चालू उबंटू 10.10 (मावेरिक मीरकट))

228
2017-11-12 14:02


मूल


मुझे लगता है कि bukzor का जवाब tmux 1.5 और नए के लिए आपकी समस्या हल करता है। - kynan


जवाब:


आउटपुट के इतिहास के भीतर स्क्रॉल करने के लिए आप उपयोग करेंगे ^b + [  इसके बाद आप पृष्ठ पर एम + वी का उपयोग कर सकते हैं और ^ वी पृष्ठ पर नीचे जा सकते हैं। मुझे नहीं पता कि आप असली उपयोग कर सकते हैं या नहीं PgUp तथा PgDown हालांकि। मेरा टर्मिनल इन चाबियों को tmux पर नहीं भेजता है। इसके बजाय यह स्वयं को स्क्रॉल करता है, न कि tmux इतिहास।

कॉपी मोड से बाहर निकलने के लिए, ईएससी दबाएं

इस मोड में अपने माउस का उपयोग करने के लिए (कॉपी मोड कहा जाता है) दबाएं ^b + : और निम्नलिखित दर्ज करें:

setw -g mouse on

नोट: tmux <2.1 में, विकल्प का नाम दिया गया था mode-mouse, और नहीं mouse

अब जब आप प्रतिलिपि मोड में बदल जाते हैं तो आप इसके माध्यम से स्क्रॉल करने के लिए अपने माउस का उपयोग कर सकते हैं। यदि आप चाहते हैं तो आप इस आदेश को अपने ~ / .tmux.conf में डाल सकते हैं ताकि जब भी आप tmux चलाते हैं तो यह लोड हो जाता है।

अद्यतन करें: Tmux 1.5 के रूप में यह विकल्प स्क्रॉल व्हील का उपयोग करके स्वचालित रूप से कॉपी मोड पर स्विच करता है और tmux scrollback buffer को वापस स्क्रॉल करता है। पहली बार हिट करना जरूरी नहीं है Ctrl-B + [ और भी प्रॉम्प्ट पर वापस स्क्रॉल करने से कॉपी मोड स्वचालित रूप से समाप्त हो जाता है।


214
2017-12-01 18:48



ध्यान दें कि यदि आपके पास पहले से चल रहा Tmux सर्वर है तो आपको कॉन्फ़िगरेशन फ़ाइल को फिर से लोड करना पड़ सकता है। blog.sanctum.geek.nz/reloading-tmux-config  tmux स्रोत फ़ाइल ~ / .tmux.conf - Allan Nienhuis
ओएस एक्स पर मेरे लिए काम नहीं कर रहा है। - Ain
@ ऐन - अब ओएस एक्स के 11 प्रमुख संस्करण हैं। हम किस संस्करण के बारे में बात कर रहे हैं? - Ramhound
Tmux> = 2.1 के लिए, @ डैनीआर का जवाब देखें (वर्तमान में काफी दूर)। - joelostblom
set -g mouse on मैकोज़ tmux 2.1 पर मेरे लिए काम किया - Miguel Mota


टीएमक्स 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
भयानक - यह सिग्विन पर भी काम करता है - विंडोज 7 पर tmux - WD11
@ महदी यह ओएसएक्स पर काम नहीं कर रहा है। कोई संकेत? - 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
@ किनान: मैं व्यक्तिगत रूप से बस प्रेस करता हूं C-A PgUp ऐसा करने के लिए। आप पेज-अप कुंजी को सीधे बांध सकते हैं tmux bind-key -n PPage copy-mode -u। यदि आप इसे अपने स्थानीय टर्मिनल से अनइंड करते हैं तो समान थिग्न शिफ्ट + पेजअप के लिए काम करना चाहिए। - bukzor
इसका परिणाम एक अजीब व्यवहार में होता है, जहां मैं कमांड लाइन पर वापस स्क्रॉल करता हूं, मुझे सीएलआई में एक अतिरिक्त चरित्र डाला जाता है, जो आम तौर पर मेरे पहले कमांड में विकृत हो जाता है। यह बहुत परेशान है। - Chris R
ध्यान दें कि, हालांकि यह माउस के साथ स्क्रॉल को ट्रिगर करने के लिए ठीक काम करता है, यह मध्य-क्लिक के साथ चिपकाने के लिए टेक्स्ट का चयन करते समय अजीब व्यवहार का कारण बनता है। ट्रेडफॉफ स्वीकार्य नहीं होने के बाद से मैंने सी-बी पीजी-अप / डाउन (डिफ़ॉल्ट) preffering समाप्त हो गया। - h7r
@ChrisR मुझे यह थोड़ा सा मिलता है और यह काफी संगत नहीं है। क्या यह एक [एम [एम # [एम [एम # [एम [एम # [एम [एम # [एम प्रकार का स्ट्रिंग है? - 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@'

मुझे नहीं पता कि यह कैसे काम करता है या यह क्या करता है, लेकिन अब यह मुझे टीएमयूक्स के कॉपी मोड में प्रवेश किए बिना टीएमयूक्स सत्र के अंदर माउस व्हील के साथ स्क्रॉल करने की अनुमति देता है; मैं बस पहिया और बीएएम स्क्रॉल! यह काम करता हैं। ध्यान दें कि मैं टर्मिनल.एप का उपयोग कर रहा हूं, लेकिन मुझे याद है कि ओपी ने विशेष रूप से उपयोग के लिए उत्तर दिया था 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, less, tmux इत्यादि) का अनुरोध करने वाले अनुप्रयोग अपनी स्क्रॉलिंग क्षमता प्रदान करते हैं। Tmux में इस लॉक को ओवरराइड करना स्क्रॉलिंग की अनुमति देता है टर्मिनल के वैकल्पिक स्क्रीन बफर जो कुछ मामलों में वांछित परिणाम नहीं देता है। देख यह जवाब से उद्धरण के लिए man xterm वैकल्पिक स्क्रीन समझाओ। - kynan
हां, यह iTerm में काम नहीं करता है - Suan
ITerm 2 में इसके साथ सकारात्मक परिणाम हुए हैं - Keith Smiley


टीएमयूक्स 2.1 नए माउस बाइंड पेश करता है।

मैंने अभी इन बाइंडों को आज लिखा है। यह विम में नहीं होने पर तीर के लिए माउस व्हील को निर्बाध रूप से बांधता है, क्योंकि विम कच्चे माउस व्हील कोड को समझने में सक्षम है (उद्देश्यों के लिए जैसे कि आपके लिए कौन सा माउस आपके ऊपर है, इस पर निर्भर करता है कि कौन सी विम विंडो आपके लिए स्क्रॉल करे)।

इसका मतलब है कि हम अंततः एकाधिक मैन पेज देखने के लिए माउस का उपयोग कर सकते हैं और जो कुछ भी तीर कुंजियों को स्वीकार करता है। आप विस्तार और श्रृंखला कर सकते हैं 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
आपके गितूब का लिंक क्या है? मैं आपके प्रयासों के बराबर रखना चाहता हूं! एक और विशेषता जो मैं ढूंढ रहा हूं वह है कि एक्स क्लिपबोर्ड पर शब्द को दो बार क्लिक करें, जैसे यह टीएमयूक्स के बाहर करता है। - joeytwiddle
@joeytwiddle मैं अत्यधिक अनुशंसा करता हूं github.com/NHDaly/tmux-better-mouse-mode, मेरा दूसरा जवाब देखें - Steven Lu


जीनोम-टर्मिनल प्रतिबंधित "सामान्य" स्क्रॉलिंग की स्थितियों में ऊपर और नीचे तीर कुंजी पर माउस स्क्रॉल ईवेंट का अनुवाद करने वाली कुछ साफ चालबाजी करता है। उदाहरण के लिए, जब आप कुछ पाठ का उपयोग कर देखते हैं less (यह विशेष रूप से होता है जब आप एक आदमी पढ़ रहे हैं), आप सामग्री का उपयोग कर स्क्रॉल कर सकते हैं j, k, और तीर कुंजी। परंतु भी, साथ में gnome-terminal, आप माउस स्क्रॉलिंग के साथ ऐसा कर सकते हैं, उल्लिखित चाल के लिए धन्यवाद।

तो मुझे लगता है tmux टर्मिनल के कुछ "कैप्चरिंग" की तरह ही करता है less - और एक ही तंत्र में gnome-terminal इसमें शामिल है: माउस स्क्रॉलिंग ऊपर / नीचे तीर कुंजी प्रेस में अनुवाद करता है।

आप इस फीचर को प्रोफ़ाइल सेटिंग्स में बंद कर सकते हैं और किसी भी परिस्थिति में नियमित स्क्रॉलिंग प्राप्त कर सकते हैं। बस "स्क्रॉलिंग" टैब में अंतिम चेकबॉक्स को अनमार्क करें: 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





एक सुंदर संतोषजनक स्क्रॉलिंग व्यवहार प्राप्त करने के लिए आप बाध्यकारी विचारों को अन्य उत्तरों से जोड़ सकते हैं: विम में काम करता है टर्मिनल में स्वचालित रूप से प्रतिलिपि मोड में परिवर्तन करता है और जब आप नीचे पहुंचते हैं तो इसे छोड़ देता है अभी भी आप अपने मूसहेल का उपयोग आदमी, कम और जर्नल में कर सकते हैं।

मेरा कोड:

bind -n WheelUpPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Up Up Up Up"  "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"
bind -n WheelDownPane if -t = "test $(echo #{pane_current_command} |grep -e 'man' -e 'less' -e 'journalctl')" "select-pane -t = ; send-keys Down Down Down Down"  "if-shell -F -t = '#{?mouse_any_flag,1,#{pane_in_mode}}' 'send-keys -M' 'select-pane -t = ; copy-mode -e; send-keys -M'"

आप अन्य आदेश जोड़ सकते हैं जिन्हें grep -e 'man' भाग में स्क्रॉल करने के लिए तीर कुंजियों की आवश्यकता होती है

मैंने कई बार प्रेषण कुंजी जोड़ दी, इसलिए मूसहेल पर एक टिक एक समय में 4 लाइनों को स्क्रॉल करेगा


0
2018-02-12 23:02