मैं tmux में कैसे स्क्रॉल करूं?


1292

मैंने अभी-अभी tmux का उपयोग करना शुरू किया है, और मुझे यह वास्तव में पसंद है, लेकिन मुझे उन बफ़र्स / पैन / विंडो में स्क्रॉल करने में सक्षम होना चाहिए जो मेरे पास हैं। मुझे परवाह नहीं है कि यह माउस के साथ काम करता है या नहीं। जब मैं tmux man पेज को खोजता हूं, तो मुझे "स्क्रॉल" शब्द के केवल दो उदाहरण दिखाई देते हैं, और दोनों को कॉपी मोड के साथ करना होता है। क्या कॉपी मोड में प्रवेश करने के सभी ओवरहेड के बिना स्क्रॉल करने का एक तरीका है?


8
आप किस ओवरहेड से चिंतित हैं? copy-modeइतिहास को देखने का तरीका है (और वैकल्पिक रूप से सामग्री को कॉपी करना)।
क्रिस जॉन्सन

2
मेरे लिए आप स्क्रॉल मोड और q छोड़ने के लिए
f7 दबा सकते हैं

7
set -g mode-mouse onप्रति @ chaiyachaiya का जवाब मेरे लिए विजेता था
पीटर बर्ग

जवाबों:


1567

Ctrl- bतब [आप अपने सामान्य नेविगेशन कुंजियों का उपयोग स्क्रॉल करने के लिए कर सकते हैं (जैसे। Up Arrowया PgDn)। qस्क्रॉल मोड छोड़ने के लिए दबाएँ ।

वैकल्पिक रूप से आप प्रेस कर सकते हैं Ctrl- b PgUpसीधे कॉपी मोड में जाएं और एक पेज ऊपर स्क्रॉल करें (जो कि ऐसा लगता है जैसे आप ज्यादातर समय चाहते हैं)

में viमोड (नीचे देखें), आप भी पेज ऊपर / नीचे लाइन लाइन द्वारा उपयोग करते हुए स्क्रॉल कर सकते हैं Shift- kऔर Shift- j(यदि आप स्क्रॉल मोड में पहले से ही कर रहे हैं)। अनशिफ्टेड, कर्सर पेज के बजाय चलता है।

मैन पेज के कुछ अंश :

tmux को डिफ़ॉल्ट रूप से, उप-कमांड की कुंजी संयोजन, 'C-b' (Ctrl-b) का उपयोग करके कमांड क्लाइंट द्वारा नियंत्रित किया जा सकता है।

 The default command key bindings are:

[           Enter copy mode to copy text or view the history.

Function                     vi              emacs
--------                     --              -----
Half page down               C-d             M-Down
Half page up                 C-u             M-Up
Next page                    C-f             Page down
Previous page                C-b             Page up
Scroll down                  C-Down or C-e   C-Down
Scroll up                    C-Up or C-y     C-Up
Search again                 n               n
Search again in reverse      N               N
Search backward              ?               C-r
Search forward               /               C-s

साथ ही एक गुच्छा अधिक। ध्यान दें कि आपको C-bदो बार प्रेस करना है यदि आप उस पेज के लिए उपयोग करते हैं जो C-bकमांड कुंजी के रूप में बंधा हुआ है। एक दोहराने मोड के साथ कॉपी मोड कमांड को प्रीफ़ैडिंग की जानकारी के लिए मैन पेज देखें।

आप कुंजी बंधन मोड का उपयोग कर सेट कर सकते हैं Ctrl- bतब

:set-window-option mode-keys emacs

या vi


14
मुझे लगता C-b =है choose-bufferकि डिफ़ॉल्ट रूप से है। क्या आपका मतलब था C-b [(जो copy-modeडिफ़ॉल्ट रूप से है)? इसके अलावा, आप C-b PageUpपिछले पृष्ठ पर सीधे कॉपी-मोड शुरू करने के लिए भी उपयोग कर सकते हैं (बहुत आसान तब जब आप जानते हैं कि आप क्या देखना चाहते हैं / कॉपी पहले ही वर्तमान पृष्ठ को स्क्रॉल कर चुके हैं)।
क्रिस जॉन्सन

4
सही है, मेरे tmux में कोई स्क्रॉल-मोड नहीं है। आपको C-b [कॉपी मोड में प्रवेश करने की आवश्यकता है और फिर चारों ओर स्क्रॉल करने के लिए या तो emacs या vi की-बाइंडिंग का उपयोग करें। यह सिर्फ स्क्रॉल करने के लिए बहुत सारे कदम की तरह लगता है, लेकिन tmux के लाभ अभी भी इन झुंझलाहटों को पछाड़ते हैं। मैं मैकबुक पर हूं और कोई पेजयूपी कुंजी नहीं है: - \। (इसके अलावा, मैं आप की तरह
मार्कडाउन की

44
@ शादोह: अपनी मैकबुक पर ये आज़माएँ: घर: fn-LeftArrow; अंत: fn-RightArrow; पृष्ठ अप: fn-UpArrow; पृष्ठ नीचे: fn-DownArrow। कीपैक बनाने के लिए:<kbd>Ctrl</kbd>
डेनिस विलियमसन

5
मैकबुक पर, fn + अप टर्मिनल ऐप पर सीधे जाता है और कभी भी tmux को हिट नहीं करता है
Tyler

15
यदि आप स्क्रॉल मोड में हैं तो मैकबुक पर आप किसी पृष्ठ को स्क्रॉल करने के लिए fn + Shift + LeftArrow का उपयोग कर सकते हैं।
निक हैमंड

306

ठीक है, आपको स्क्रॉलिंग सेट करने के उचित तरीके पर विचार करना चाहिए: अपने में जोड़ें tmux.conf

set -g mouse on        #For tmux version 2.1 and up

या

set -g mode-mouse on   #For tmux versions < 2.1

इसने मेरे लिए विंडोज़ और पैन में काम किया। अब tmux एकदम सही है।

व्यावहारिक tmux में tmux.conf फ़ाइलों की अधिक जानकारी है।


5
जब मैं ऐसा करता हूं, तो माउस क्लिक और स्क्रॉल के कारण जिबरिश वर्ण को उस टर्मिनल के प्रॉम्प्ट क्षेत्र पर मुद्रित किया जाता है जिसका मैं tmux के साथ उपयोग कर रहा हूं। कोई विचार?
एली

22
भविष्य tmux माउस उपयोगकर्ता: टाइप करने से पहले आपको फिर से नीचे स्क्रॉल करने के लिए सहेजने के लिए, आप qस्क्रॉल मोड से बाहर निकलने के लिए हिट कर सकते हैं ।
जेजेन थॉमस

15
माउस स्क्रॉलिंग इस के साथ ठीक काम करता है, लेकिन दुर्भाग्य से मैं अब पाठ का चयन करने के लिए माउस का उपयोग नहीं कर सकता। तिल्दा और tmux का उपयोग करना।
फ्राइडेरब्लुमेले

27
ध्यान दें कि tmux 2.1 और ऊपर में, इस के साथ बदल दिया गया है set -g mouse on, और स्क्रॉलिंग स्वचालित रूप से कॉपी मोड में प्रवेश नहीं करता है जैसे कि पहले किया था।
थ्रानियो

25
महत्वपूर्ण नोट: यह सेटिंग हाइलाइटिंग और कॉपी पाठ को तोड़ती है। इस कार्यक्षमता को बनाए रखने के लिए Shift + क्लिक का उपयोग करें।
Shadoninja

141

मेरी .tmux.conf से:

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

यह देशी xterm स्क्रॉलिंग को सक्षम करता है।


28
क्या आप बता सकते हैं कि यह वास्तव में क्या करता है?
इवो

11
मुझे नहीं पता कि यह क्या करता है, लेकिन यह शुद्ध प्रतिभा है। अंत में, tmux स्क्रॉल काम करता है, याय!
अपने आप को

5
यह मेरे लिए OS X पर काम नहीं करता ...
निक


6
यदि आप togdon के उत्तर के बारे में भ्रमित हैं तो इसे देखें: superuser.com/questions/310251/… IMO, यदि आपके पास केवल एक ही फलक है, तो यह समाधान स्वीकृत उत्तर की तुलना में बेहतर काम करता है।
थमेरा

57

नवीनतम tmux 2.1 के लिए, अपने माउस के साथ स्क्रॉल करने के लिए, यह सही उत्तर है:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

यह सिर्फ अपने .tmux.conf को पुनः लोड करने के लिए पर्याप्त नहीं है, आपको अपने tmux को पुनः आरंभ करने की आवश्यकता है, उदा tmux kill-server && tmux

https://github.com/tmux/tmux/issues/145 से लिया गया


1
यह स्वीकृत उत्तर कैसे नहीं है?
मार्सेल

2
इस उत्तर के बारे में ध्यान दें "केवल पुनः लोड करने के लिए पर्याप्त नहीं होने के कारण ।tmux.conf ने मदद की" और मेरे लिए सभी tmux सत्रों से बाहर निकलने (शायद किल-सर्वर काम करेगा) ने मदद की!
कॉलिन डी

1
क्या आप इस बारे में विस्तार से बता सकते हैं कि यह कैसे काम करता है?
ऑलिगॉफ्रेन

जब माउस को क्लिक / स्क्रॉल / आदि किया जाता है तो यह माउस घटनाओं को अग्रेषित करता है। यदि फलक किसी भी अप्रत्यक्ष / बफ़र्ड अवस्था में है (केवल कॉपी-मोड?), और माउस एक बटन दबा रहा है, स्क्रॉल कर रहा है, तो अंतिम भाग पहले अप्रत्यक्ष मोड पर स्विच करके सीधे मोड में स्क्रॉल करता है। यदि उन नियंत्रणों के लिए नहीं है, तो टर्मिनल घटनाओं को इतिहास स्क्रॉलिंग के रूप में व्याख्या कर सकता है, यदि सभी पर। उस के साथ, मैं नहीं जानता कि क्या मैं कभी भी अपने पेजर और विम को एक ही समय में सही ढंग से स्क्रॉल करने में सक्षम हो गया हूं, और मैंने स्निपेट्स के एक गुच्छा की कोशिश की है।
जॉन पी

2
@chefarov - किसी अन्य उत्तर पर एक टिप्पणी के अनुसार, Shift+clickजब आप माउस मोड ऑन करते हैं, तब आप ऐसा कर सकते हैं ।
ब्रेंडन मूर

14

मेरे मामले में, OSX पर बस opt+ UpArrowऔर opt+ DownArrow


@ fixer1234 प्रश्न में लिनक्स का उल्लेख नहीं है। tmuxओएस एक्स पर भी इस्तेमाल किया जा सकता है।
slhck

@ श्लोक: धन्यवाद। बहुत धुंधला-आंखों वाला; दृष्टिवैषम्य में लात मारी। मैंने लिनक्स टैग के रूप में tmux टैग को गलत बताया था।
फिक्सर 1234

11

यही तरीका है कि मैंने इसे काम किया है, और जिन कारणों से मुझे लगता है कि यह डिफ़ॉल्ट तरीके से बेहतर है।

इसे आज़माने के लिए, सभी कोड अनुभागों को अंदर रखें ~/.tmux.conf

चरण 1. उपसर्ग कुंजी बदलें ताकि आपको एक बिट तक नहीं पहुंचना पड़े। 'बी' प्रतीत होता है कि एक करीबी कुंजी है, लेकिन यह दो तर्जनी (क्रमशः 'एफ' और 'जे' पर) के बीच में है। क्योंकि यह शॉर्टकट tmux में आवश्यक है, Cj ज्यादा बेहतर है क्योंकि इसमें जीरो हैंड मूवमेंट (कुंजी को हिट करने के अलावा) शामिल है।

set -g prefix C-j
unbind C-b
bind C-j send-prefix

चरण 2. 'एस' (कॉपी-मोड में प्रवेश करने के लिए) है: 1) करीब (ऊपर जैसा ही कारण), 2) दूसरे हाथ को शामिल करता है (तुलना करें: बॉक्सिंग में 1-2, या lsकिसी निर्देशिका में फ़ाइलों को देखने की आज्ञा ), और 3) "स्क्रॉल" के लिए महामारी के रूप में सोचा जा सकता है (हालांकि कॉपी-मोड केवल स्क्रॉल करने के बारे में नहीं है)।

bind s copy-mode

चरण 3. अंतिम भाग, वास्तविक स्क्रॉलिंग। Emacs उपयोगकर्ताओं के लिए 'P' और 'N' इस उद्देश्य से परिचित हैं। वे करीब हैं, सहज ('पी' कीबोर्ड पर 'एन' से ऊपर है), और मेनेमोनिक ("पिछले" और "अगले")। यदि आप बस Emacs में कुछ स्क्रॉलिंग करते हैं, और फिर tmux पर जाते हैं, तो यह उन शॉर्टकट्स को समझ में आता है।

हालांकि, मैंने पाया कि 'मैं' और 'के' और भी बेहतर हैं - वे 'पी' और 'एन' की तुलना में भी करीब हैं, और सहज (एक ही कारण के लिए); के रूप में mnemonics के लिए - के रूप में स्क्रॉल करने के लिए इस तरह की एक आम बात है, mnemonics वास्तव में कोई फर्क नहीं पड़ेगा क्योंकि शॉर्टकट जल्द ही आपके मस्तिष्क को बाईपास करेगा और मांसपेशियों की स्मृति में प्रवेश करेगा।

bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down

7

मैंने इसके लिए बहुत कुछ खोजा और मेरे लिए सबसे अच्छा समाधान इस विस्तृत मार्गदर्शिका में बताए अनुसार काम करता है: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

इन बाइंडिंग को ~ / .tmux.conf में जोड़ें:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

लागू किए गए उपरोक्त दृष्टिकोण के साथ, आप एक विंडो में पैन से कॉपी कर सकते हैं और साथ ही प्रीफिक्स + का उपयोग करते हुए प्रत्येक फलक में ज़ूम इन कर सकते हैं ।

एक महत्वपूर्ण विवरण जो माउस मोड के साथ गायब था, कॉपी करने के लिए एक क्षेत्र का चयन करने से पहले Shift दबाएं । यह इसे tmux copy बफर के बजाय पारंपरिक टर्मिनल बफर में कॉपी कर देगा। ( https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues )


7

मैं आपके अधिकांश tmux माउस से संबंधित समस्याओं को हल करने के लिए tmux-better-mouse-mode प्लगइन की कोशिश करने की सलाह दूंगा।

यह Tmux 2.1+ और नए set-option -g mouse onदृष्टिकोण के साथ संगत है ।


1
धन्यवाद, यह मेरे लिए सबसे अच्छा समाधान है। यह मेरे सभी माउस व्हील बाइंडिंग को कवर करता है जिसे मैंने मैन्युअल रूप से जोड़ा है (इसलिए मुझे अब उनकी आवश्यकता नहीं है), और दो हत्यारे-विशेषताएं हैं जो मुझे बहुत पसंद scroll-without-changing-paneथीं : के साथ संयोजन में scroll-without-changing-paneऔर emulate-scroll-for-no-mouse-alternate-buffer। अब मेरे tmux उपयोग का अनुभव तरीका है, बेहतर तरीका है।
1126 पर सेलुडु

6

केवल एक चीज जो मेरे लिए काम करती है वह निम्नलिखित में डाल रही है ~/.tmux.conf

# 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"

(प्रभावी होने के लिए आपको इसे रीबूट करना पड़ सकता है)

अपडेट करें:

मैंने पाया कि यदि आप "xterm" से पुट्टी कनेक्शन> डेटा> टर्मिनल-टाइप को "पोटीन" (कुछ स्वरूपण मुद्दों को ठीक करने के लिए) में सेटिंग बदलते हैं तो यह समाधान काम करना बंद कर देता है।

अपडेट 2:

यदि आप अपने टर्मिनल प्रकार के रूप में "पोटीन" चाहते हैं तो इसका उपयोग करें: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"


2
यह वास्तव में iPhone ऐप में मेरी स्क्रॉलिंग समस्या को हल करता है।
नैथेनकिलकैपिटल

नवीनतम मैंने कोशिश की यह किसी भी अधिक काम नहीं कर रहा था, लेकिन यह काम किया। अजीब। set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
जूल

4

यह मेरे लिए काम किया:

vim ~/.tmux.conf
set -g mode-mouse on      ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf

2
संस्करण 2.1 (18 अक्टूबर 2015) के बाद से विकल्प होना चाहिएset -g mouse on
नाओको

+1 वास्तव में कॉन्फ़िगरेशन फ़ाइल को पूर्ण पथ प्रदान करने के लिए। @ chaiyachaiya का जवाब एकदम सही होगा।
जॉन मैकफ़ारलेन

1

FWIW, मैकबुक / OSX Mojave पर, इसके बाद ctrl+[:

  • up arrow लाइन के लिए
  • down arrow नीचे लाइन के लिए
  • fn + up arrow पेज के लिए
  • fn + down arrow पेज के लिए नीचे
  • दृश्य विधा को छोड़ने के लिए क्ष

0

मेरे लिए काम करने वाली एक ही चीज़ थी # ~ # .tmux.conf सेट -g मोड-माउस ऑन ### इस सेटिंग को vim के साथ डालें, फिर फाइल को सोर्स करें। tmux source-file ~ / .tmux.conf


क्या आप इसे अधिक स्पष्ट बनाने के लिए कुछ स्वरूपण का उपयोग कर सकते हैं? EDIT बटन का उपयोग करें और फिर सहायक प्रारूपों को जोड़ने के लिए संपादक में उपलब्ध विकल्पों को देखें।
Music2myear

-2
  • Ctrl+ A- स्क्रॉल करना शुरू करने के लिए
  • Ctrl+ C- स्क्रॉल करना बंद करने के लिए

3
सवाल का उपयोगी जवाब देने के लिए यह पोस्ट बहुत छोटी है। यह पहले से ही पोस्ट किए गए उत्तरों के लिए बहुत कम नई जानकारी जोड़ता है; यह कैसे स्क्रॉल करने के बारे में कुछ नहीं कहता (केवल कॉपी मोड में और बाहर कैसे बदलना है)। साथ ही, डिफ़ॉल्ट कमांड उपसर्ग कुंजी संयोजन Ctrl-B( Ctrl-AGNU स्क्रीन के लिए डिफ़ॉल्ट है)।
एंथनी जोगेगन

1
यकीन नहीं होता अगर इस जवाब के लेखक ने भी सवाल को समझा। यह बेकार है और सिर्फ गलत है।
विक

2
मैं देख रहा हूँ कि इतने लंबे समय तक स्क्रॉलिंग को कैसे रोका जाए, इसे इंगित करने के लिए धन्यवाद!
प्रात:
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.