Tmux এ মাউস সহ শেল আউটপুট স্ক্রোল করুন


255

মাউস স্ক্রোলিং tmux এ কাজ করে না যখন আমি tmux ছাড়াই শেল চালাই (জিনোম টার্মিনালে) works দেখে মনে হচ্ছে tmux মাউস স্ক্রোল ইভেন্টগুলি প্রেরণ করে যেন আমি উপরে / ডাউন কী টিপলাম। তবে আমি এটি শেল আউটপুট ইতিহাস যদিও স্ক্রোল করতে চান । Tmux এর মতো কাজ করার কোনও উপায় আছে?

দ্রষ্টব্য: কী-বোর্ডটি কীভাবে স্ক্রোল করতে হয় তা আমি জানি ( এখানে অন্য প্রশ্নের জন্য ধন্যবাদ )।

আমি tmux এর দুটি সংস্করণে মাউস স্ক্রোলিংয়ের চেষ্টা করেছি:


1
আমি মনে করি বুকজারের উত্তরটি আপনার সমস্যার সমাধান করতে পারে tmux 1.5 এবং আরও নতুন এর জন্য।
কিনান

উত্তর:


252

আউটপুটটির ইতিহাসের মধ্যে স্ক্রোল করতে আপনি ^b+ ব্যবহার করবেন [আপনি পৃষ্ঠায় এম + ভি এবং পৃষ্ঠায় নীচে ^ ভি ব্যবহার করতে পারবেন। আমি যদি আপনি বাস্তব ব্যবহার করতে পারেন জানি না PgUpএবং PgDownযদিও। আমার টার্মিনালটি এই কীগুলি টিএমউকে পাঠায় না। পরিবর্তে এটি নিজেই স্ক্রোল করে tmux ইতিহাসে নয়।

অনুলিপি মোড থেকে প্রস্থান করতে, ESC টিপুন

এই মোড (নামক কপি মোড) সংবাদ মাধ্যমে আপনার মাউস ব্যবহার করতে ^b+ + : এবং নিম্নোক্ত লিখুন:

setw -g mouse on

দ্রষ্টব্য: tmux <2.1 এ, বিকল্পটির নাম দেওয়া হয়েছিল mode-mouse, এবং নেইmouse

এখন আপনি যখন অনুলিপি মোডে পরিবর্তন করবেন আপনি তার মাধ্যমে স্ক্রোল করতে আপনার মাউস ব্যবহার করতে পারেন। আপনি চাইলে এই কমান্ডটি আপনার ~ / .tmux.conf এ রাখতে পারেন যদি আপনি tmux চালানোর সময় এটি লোড হয়।

আপডেট: tmux 1.5 হিসাবে এই বিকল্পটি স্ক্রোল হুইল ব্যবহার করে স্বয়ংক্রিয়ভাবে অনুলিপি মোডে স্যুইচ করে tmux স্ক্রোলব্যাক বাফারটি ফিরে স্ক্রোল করে। এটা প্রথম হিট করার প্রয়োজন নেই Ctrl-B+ + [কোনো আরও অনেক কিছু। প্রম্পটে ফিরে স্ক্রোল করা কপি মোডটি স্বয়ংক্রিয়ভাবে শেষ হয়।


1
মনে রাখবেন যে আপনার যদি ইতিমধ্যে চলমান tmux সার্ভার থাকে তবে আপনাকে কনফিগার ফাইলটি পুনরায় লোড করতে হতে পারে। blog.sanctum.geek.nz/reloading-tmux-config tmux উত্স-ফাইল ~ / .tmux.conf
অ্যালান

7
ওএস এক্সে আমার জন্য কাজ করছে না
আইন

2
@ আইন - ওএস এক্স এর এখন 11 টি বড় সংস্করণ রয়েছে Which আমরা কোন সংস্করণটি সম্পর্কে ঠিক কথা বলছি?
রামহাউন্ড

10
Tmux> = 2.1 এর জন্য @ ড্যানিআর এর উত্তর দেখুন (বর্তমানে বেশ নিচে)।
joelostblom

3
set -g mouse onmacOS tmux 2.1 এ আমার জন্য কাজ করেছেন
মিগুয়েল মোটা

123

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

6
ধন্যবাদ, এখন প্যানগুলি নির্বাচন করে ইত্যাদি কাজ করে তবে স্ক্রোলিং হয় না। আবার স্ক্রোলিংয়ের কাজ করার জন্য, এটি ব্যবহার করুন: github.com/NHDaly/tmux-scrol-copy-mode
মাহদি

1
দুর্দান্ত - এটি এমনকি সাইগউইনে কাজ করে - উইন্ডোজ 7
জিএমডাব্লুডি

@ মাহদী এটি অক্সে কাজ করে না বলে মনে হচ্ছে। কোন ইঙ্গিত?
ডিটিটিআইডি

2
bindtmux 2.3 এ আর প্রয়োজন হবে বলে মনে হচ্ছে না
থেরন লুহন

2
জন্য +1 set -g mouse on। পূর্ববর্তী মন্তব্যটি সঠিক। বাঁধনের আর দরকার নেই।
ডাকুসান

63

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

আপনারা চান এমন আচরণ! মাউস স্ক্রোল অনুলিপি মোড সক্ষম করে, কেবল শেল বিকল্প বাফারকে স্ক্রোল করে না। এটাই আমার জন্য পর্দা থেকে টিএমউক্সে স্যুইচ করার উত্সাহ ছিল । Shift + PgUp এর সাথেও একই আচরণ করার কোনও বিকল্প আছে?
কিনান

1
@ কেনান: আমি ব্যক্তিগতভাবে এটি করতে চাপ দিয়েছি C-A PgUp। আপনি পৃষ্ঠা-আপ কীটি সরাসরি এর সাথে আবদ্ধ করতে পারেন tmux bind-key -n PPage copy-mode -u। আপনার স্থানীয় টার্মিনাল থেকে যদি এটি বেঁধে রাখা হয় তবে অনুরূপ থাইংটি শিফট + পৃষ্ঠাআপের জন্য কাজ করা উচিত।
বুকজোর

1
এটি একটি অদ্ভুত আচরণের ফলাফল করে যেখানে আমি কমান্ড লাইনে ফিরে স্ক্রোল করি, তখন আমি সিএলআইতে একটি অতিরিক্ত অক্ষর সন্নিবেশ করি, যার ফলস্বরূপ আমার প্রথম কমান্ডটি ত্রুটিযুক্ত হয়। এটা বেশ বিরক্তিকর।
ক্রিস আর

মনে রাখবেন, তবে এটি মাউসের সাহায্যে স্ক্রোলটি ট্রিগার করার জন্য সূক্ষ্মভাবে কাজ করে, এটি মধ্য-ক্লিকের মাধ্যমে পাঠ্য আটকানোর জন্য অদ্ভুত আচরণের কারণ হয়। ট্রেডঅফ গ্রহণযোগ্য ছিল না বলে আমি সিবি পিজি-আপ / ডাউন (ডিফল্ট) প্রেফারিং শেষ করেছি।
h7r

@ ক্রিসআরআর আমি এটি বেশ খানিকটা পেয়েছি এবং এটি বেশ সামঞ্জস্যপূর্ণ নয়। এটি কি একটি [এম [এম # এম [এম [এম # [এম [এম # [এম [এম # [এম স্ট্রিংয়ের ধরণ?
এলিজা লিন

53

আপনার .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 থেকে নেওয়া


escape-timeসেটিংয়ের জন্য +1
ডাকসান

অন্য কারও জন্য ভাবছেন, .tmux.conf ফাইলটি আপনার হোম ডিরেক্টরিতে স্থাপন করা হয়েছে।
ব্যবহারকারী2647513

15

কেউ (আমি হারিয়ে যাওয়া উত্স থেকে) নিম্নলিখিতটিতে যোগ করার পরামর্শ দিয়েছে ~.tmux.conf:

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

এটি কীভাবে কাজ করে বা এটি কী করে সে সম্পর্কে আমার কোনও ধারণা নেই তবে এটি এখন আমাকে tmux কপির মোডে প্রবেশ না করে টিএমক্স সেশনের ভিতরে মাউস হুইল দিয়ে স্ক্রোল করতে দেয়; আমি শুধু চাকা স্ক্রোল এবং বিএএম! এটা কাজ করে। নোট করুন যে আমি টার্মিনাল.এপ ব্যবহার করছি তবে আমার মনে আছে যে ওপি উত্তরটি বিশেষভাবে ব্যবহারের জন্য দিয়েছে gnome-terminal


1
জেড, আপনাকে ধন্যবাদ! আপনার পরামর্শ জিনোম-টার্মিনালেও কাজ করে। আমি এই সেটআপটি কিছু সময়ের জন্য ব্যবহার করার চেষ্টা করব। তবে এর অসুবিধা রয়েছে: মাউস স্ক্রোলিং এখন প্রত্যাশার মতো কাজ করে না less। যদি আমি lessভিতরে লোড করি তবে tmuxমাউস স্ক্রোলিংটি খোলার ফাইলটিকে স্ক্রোল করে না less। এটি পুরো টার্মিনালটি স্ক্রোল করে। আশ্চর্যের বিষয় হল, আপনার সেটআপের সাথে vimঅভ্যন্তরের আশানুরূপ আচরণ করে tmux
ব্যবহারকারী31494

2
নোট করুন যে tmux 1.5 হিসাবে এটি setw -g mode-mouse onঅপশনটি ছাড়িয়ে যায় , যা মাউস হুইল ব্যবহার করে অনুলিপি মোড স্ক্রোলব্যাক করে।
কিনান

3
ব্যাখ্যাটি হ'ল এই বিকল্পটি টার্মিনালের বিকল্প স্ক্রিনে স্ক্রোল লকটি অক্ষম করে, যা বেশিরভাগ ক্ষেত্রেই পছন্দসই যেহেতু বিকল্প স্ক্রিন বাফার (vi, কম, tmux ইত্যাদি) তাদের নিজস্ব স্ক্রোলিং ক্ষমতা সরবরাহ করে। Tmux এ এই লকটি ওভাররাইড করা টার্মিনালের বিকল্প স্ক্রিন বাফারটিকে স্ক্রোল করার অনুমতি দেয় যা কয়েকটি ক্ষেত্রে ব্যতীত পছন্দসই ফলাফল দেয় না। বিকল্প স্ক্রিনের ব্যাখ্যা থেকে উদ্ধৃতিটির জন্য এই উত্তরটি দেখুন man xterm
কিনান

হায়রে, এই iTerm কাজ করে না
Suan

আইটির্ম 2
কীথ স্মাইলি

5

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

এই নতুন চাকা বাইন্ডিং ক্ষমতা সহ আপনার পছন্দসই সংবেদনশীল আচরণ করতে মাউস হুইলটিকে স্ক্রিপ্ট করা সম্ভব।


আমি এখন ফলকের সীমান্তে মাউসওয়েল তৈরির ধারণাটি নিয়ে কিছুটা আকর্ষণীয় করছি interesting সম্ভবত আমি যা করব তা হ'ল সীমান্তের মানচিত্র হুইল নয় তবে স্ট্যাটাসলাইনটি পেরিয়ে গেলে tmux উইন্ডোটিকে চক্র করার জন্য ম্যাপ করুন।
স্টিভেন লু

আপনার গিথুবের লিঙ্কটি কী? আমি আপনার প্রচেষ্টা অবিরত রাখতে চাই! আরেকটি বৈশিষ্ট্য যা আমি সন্ধান করছি তা হ'ল ডাবল ক্লিক করে শব্দটি এক্স ক্লিপবোর্ডে অনুলিপি করা, যেমন এটি টিমাক্সের বাইরে রয়েছে।
জোয়েটউইডল

@ জোয়েটউইডল আমি github.com/NHDaly/tmux-better-mouse-mode এর জন্য আমি উচ্চ পরামর্শ দিচ্ছি , আমার অন্য উত্তরটি দেখুন
স্টিভেন লু

3

জিনোম-টার্মিনাল কিছু "ঝরঝরে" নিয়মিত "স্ক্রোলিং" এর শর্তে মাউস স্ক্রোল ইভেন্টগুলিকে উপরে এবং ডাউন তীর কীগুলিতে অনুবাদ করে কিছু ঝরঝরে কৌশল করে। উদাহরণস্বরূপ, যখন আপনি কিছু ব্যবহার করে পাঠ্য দেখতে less(এই বিশেষ ঘটে যখন আপনি একজন মানুষ পড়ি), আপনি ব্যবহার করে আপনি সামগ্রী স্ক্রল করতে পারেন j, kএবং নির্দেশক তীরচিহ্নগুলি। তবে এছাড়াও , এর সাথে gnome-terminal, আপনি মাউস স্ক্রোলিং দ্বারা এটি করতে পারেন, উল্লিখিত কৌশলটির জন্য ধন্যবাদ।

সুতরাং আমি অনুমান করি tmuxযে টার্মিনালের কিছু "ক্যাপচারিং" ঠিক তেমনই রয়েছে less- এবং একই পদ্ধতিতে gnome-terminalকিকগুলিতে: মাউস স্ক্রোলিং আপ / ডাউন তীর কী প্রেসগুলিতে অনুবাদ করে।

আপনি প্রোফাইল সেটিংসে এই বৈশিষ্ট্যটি বন্ধ করতে পারেন এবং যে কোনও পরিস্থিতিতে নিয়মিত স্ক্রোলিং পেতে পারেন। শুধু "স্ক্রলিং" ট্যাবে গত চেকবক্সটি অচিহ্নিত: চেকবক্স


Uldtko ব্যাখ্যার জন্য আপনাকে ধন্যবাদ! তবে এটি মাউস স্ক্রোলিং সমস্যায় সহায়তা করে না। হ্যাঁ, বিকল্পটি বন্ধ হয়ে গেলে gnome-terminalট্রিপল ^[[Aএবং ^[[Bমাউস-স্ক্রোল প্রেরণ বন্ধ করে দেয় । এটি ভাল tmux( ^[[A^[[A^[[Aকিছু প্রোগ্রামে কোনও কুৎসিত নয়, কোনও কুশলী কমান্ড-ইতিহাস-স্ক্রোলিং নয়) তবে এখন lessমাউস-স্ক্রোলটিতে স্ক্রোলিং বন্ধ করে দেয়।
ব্যবহারকারী31494

1
ইউক্রেনিয়? ( iচরিত্রগুলির দ্বারা অনুমান করা )
দোটানকোহেন

1

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

নতুন টিমাক্সগুলির জন্য মাউস নিয়ন্ত্রণের কনফিগার এবং বৈশিষ্ট্য সমৃদ্ধ প্রয়োগ। অত্যন্ত বাঞ্ছনীয়.

আপনি সম্ভবত ব্যবহার করতে চান

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

এটি সঙ্গে।


আমি এটি ইনস্টল করেছি তবে মাউসের সাহায্যে পাঠ্যটি হাইলাইট করতে এবং অনুলিপি করতে পারছি না। আপনি কি এটি করতে সক্ষম?
জোনাথঙ্কিং

হ্যাঁ আপনার কাছে সম্ভবত অন্যান্য মাউস সম্পর্কিত টিএমक्स কনফিগারেশন উপস্থিত রয়েছে যা এটির সাথে দ্বন্দ্ব রয়েছে।
স্টিভেন লু

0

একটি সুন্দর সন্তুষ্টিজনক স্ক্রোলিং আচরণ পেতে আপনি অন্যান্য উত্তরগুলি থেকে বাধ্যতামূলক ধারণাগুলি একত্রিত করতে পারেন: টার্মিনালে স্বয়ংক্রিয়ভাবে অনুলিপি মোডে Vim পরিবর্তনগুলিতে কাজ করে এবং যখন আপনি নীচে পৌঁছান তখনও আপনাকে নিজের মাউসভিয়েলটি মানুষের মধ্যে কম ব্যবহার করার অনুমতি দেয় journal

আমার কোড:

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

আপনি অন্যান্য কমান্ড যুক্ত করতে পারেন যার জন্য গ্রেপ -e 'ম্যান' অংশে স্ক্রোল করার জন্য তীর কীগুলি প্রয়োজন

আমি একাধিকবার প্রেরণ-কীগুলি যুক্ত করেছি, তাই মাউসওহেলের একটি টিক একবারে 4 টি লাইন স্ক্রোল করবে


0

আপনি যদি ইতিমধ্যে কোনও টিএমএক্স সেশনে থাকেন তবে আপনি কমান্ডটি চালাতে পারেন

set mouse on

অনুস্মারক: কমান্ডগুলি চালাতে, আপনার উপসর্গটি ব্যবহার করুন :

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.