Tmux හි මූසිකය සමඟ ෂෙල් ප්‍රතිදානය අනුචලනය කරන්න


279

මම tmux නොමැතිව ෂෙල් ධාවනය කරන විට (Gnome Terminal හි) මවුස් අනුචලනය tmux හි ක්‍රියා නොකරයි. මම ඉහළ / පහළ යතුරු එබූවාක් මෙන් tmux විසින් මූසික අනුචලන සිදුවීම් යවන බව පෙනේ. නමුත් ෂෙල් ප්‍රතිදාන ඉතිහාසය වුවද එය අනුචලනය කිරීමට මට අවශ්‍යය . Tmux මේ ආකාරයට වැඩ කිරීමට ක්‍රමයක් තිබේද?

සටහන: යතුරුපුවරුව සමඟ අනුචලනය කරන්නේ කෙසේදැයි මම දනිමි ( මෙහි තවත් ප්‍රශ්නයකට ස්තූතියි ).

මම tmux අනුවාද දෙකකින් මූසික අනුචලනය කිරීමට උත්සාහ කළෙමි:


1
මම හිතන්නේ බක්සෝර්ගේ පිළිතුර tmux 1.5 සහ නවතම දේ සඳහා ඔබේ ගැටලුව විසඳයි.
kynan

Answers:


274

ප්‍රතිදානයේ ඉතිහාසය තුළට අනුචලනය කිරීම සඳහා ඔබ භාවිතා කරනු ඇත ^b+ [ එවිට ඔබට පිටු ඉහළට M + V සහ පිටු පහළට ^ V භාවිතා කළ හැකිය. මම දන්නේ නැහැ ඔබ සැබෑ භාවිතා කළ හැකි නම් නෑ PgUpසහ PgDownවුවත්. මගේ ටර්මිනලය මෙම යතුරු tmux වෙත යවන්නේ නැත. ඒ වෙනුවට එය අනුචලනය වන්නේ ටීඑම්එක්ස් ඉතිහාසය නොවේ.

පිටපත් ප්‍රකාරයෙන් පිටවීමට, ESC ඔබන්න

මෙම ප්‍රකාරයේදී ඔබේ මූසිකය භාවිතා කිරීමට (පිටපත් ප්‍රකාරය ලෙස හැඳින්වේ) ^b+ ඔබා : පහත සඳහන් දෑ ඇතුළත් කරන්න:

setw -g mouse on

සටහන: tmux <2.1 හි, විකල්පය නම් කරන ලදී mode-mouse, නැතmouse

දැන් ඔබ පිටපත් ප්‍රකාරයට වෙනස් වන විට ඔබේ මූසිකය හරහා එය අනුචලනය කළ හැකිය. ඔබට අවශ්‍ය නම් මෙම විධානය ඔබගේ ~ / .tmux.conf තුළට දැමිය හැකිය, එවිට ඔබ tmux ධාවනය කරන සෑම අවස්ථාවකම එය පටවනු ලැබේ.

යාවත්කාලීන කිරීම: tmux 1.5 වන විට මෙම විකල්පය මඟින් අනුචලන රෝදය ස්වයංක්‍රීයව පිටපත් ප්‍රකාරයට මාරු වී tmux අනුචලන බෆරය ආපසු අනුචලනය කරයි. එය පළමු පහර කිරීම අවශ්ය නොවේ Ctrl-B+ [තවත්. නැවත විමසුමට අනුචලනය කිරීමෙන් පිටපත් ප්‍රකාරය ස්වයංක්‍රීයව අවසන් වේ.


2
ඔබට දැනටමත් ක්‍රියාත්මක වන tmux සේවාදායකයක් තිබේ නම් වින්‍යාස ගොනුව නැවත පූරණය කිරීමට සිදුවනු ඇති බව සලකන්න. blog.sanctum.geek.nz/reloading-tmux-config tmux source-file ~ / .tmux.conf
Allan Nienhuis

7
OS X හි මා වෙනුවෙන් වැඩ නොකරයි.
Ain

2
InAin - OS X හි ප්‍රධාන සංස්කරණ 11 ක් දැන් තිබේ. අපි හරියටම කතා කරන්නේ කුමන අනුවාදය ගැනද?
රැම්හවුන්ඩ්

10
Tmux> = 2.1 සඳහා, @ DannyRe ගේ පිළිතුර බලන්න (දැනට තරමක් පහළට).
joelostblom

3
set -g mouse onmacOS tmux 2.1
Miguel Mota

128

Tmux 2.1 සඳහා යම් වෙනස්කම් තිබේ

  • මවුස් මාදිලිය නැවත ලියා ඇත. දැන් සඳහා විකල්ප නොමැත:

    • මූසික-ප්‍රමාණය-කවුළුව
    • මූසිකය තෝරන්න කවුළුව
    • මූසිකය තෝරන්න-කවුළුව
    • mode-mouse

    ඒ වෙනුවට ඇත්තේ එක් විකල්පයක් පමණි: මූසික සහාය මුළුමනින්ම සක්‍රිය කරන 'මූසිකය'.

එය වෙන්න පුළුවන්

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-scroll-copy-mode
Mahdi

1
නියමයි - මෙය සිග්වින් මතද ක්‍රියාත්මක වේ - වින්ඩෝස් 7 හි tmux
GWD

Ahmahdi මෙය osx මත ක්‍රියා නොකරන බව පෙනේ. ඉඟි තිබේද?
DiTTiD

3
bindtmux 2.3 හි තවදුරටත් අවශ්‍ය නොවන බව පෙනේ
Theron Luhn

5
සඳහා +1 set -g mouse on. පෙර අදහස් දැක්වීම නිවැරදි ය. බන්ධනය තවදුරටත් අවශ්‍ය නොවේ.
ඩකුසන්

65

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 සමඟ එකම හැසිරීම ලබා ගැනීමට විකල්පයක් තිබේද?
kynan

1
ynkynan: මම පෞද්ගලිකව ඒ C-A PgUpසඳහා බල කරනවා. ඔබට පිටු-යතුර කෙලින්ම බැඳ තැබිය හැකිය tmux bind-key -n PPage copy-mode -u. ඔබ ඔබේ දේශීය පර්යන්තයෙන් එය බැඳ නොගන්නේ නම්, ඒ හා සමාන මාරුව මාරුව + පිටුව සඳහා වැඩ කළ යුතුය.
bukzor

1
මෙහි ප්‍රති results ලය අමුතු හැසිරීමක් වන අතර, මම නැවත විධාන රේඛාවට අනුචලනය කරන විට, සීඑල්අයි වෙත අමතර අක්ෂරයක් ඇතුළත් කර ඇති අතර, එහි ප්‍රති results ලය වන්නේ මගේ පළමු විධානය අක්‍රීය වීමයි. ඒක හරිම කරදරයක්.
ක්‍රිස් ආර්

මූසිකය සමඟ අනුචලනය අවුලුවාලීමට මෙය කෙසේ වෙතත්, මැද ක්ලික් කිරීම සමඟ පෙළ ඇලවීම තෝරාගැනීමේදී එය අමුතු හැසිරීමට හේතු වන බව සලකන්න. වෙළඳාම පිළිගත නොහැකි බැවින් මම Cb pg-up / down (සුපුරුදු පරිදි) කැමති වීම අවසන් කළෙමි.
h7r

H ක්‍රිස්ආර් මට මෙය තරමක් දුරට ලැබෙන අතර එය තරමක් අනුකූල නොවේ. එය [M [M # [M [M # [M [M # [M [M # [M] නූල් වර්ගයක්ද?
එලියා ලින්

60

ඔබගේ .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
ඩකුසන්

1
වෙනත් ඕනෑම කෙනෙකුට පුදුම වීමට නම් .tmux.conf ගොනුව ඔබගේ නිවාස නාමාවලියෙහි තබා ඇත.
user2647513

මූසික සැකසුම් යන්තම් ආදේශ කරන්නset -g mouse on
Shital Shah

16

කවුරුහරි (මට අහිමි වූ ප්‍රභවයකින්) පහත සඳහන් දෑ එකතු කිරීමට යෝජනා කළේය ~.tmux.conf:

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

එය ක්‍රියා කරන්නේ කෙසේද යන්න හෝ එය කරන්නේ කුමක් දැයි මට අදහසක් නැත, නමුත් මෙය දැන් tmux හි පිටපත් ප්‍රකාරයට ඇතුළු නොවී tmux සැසියක් තුළ මූසික රෝදය සමඟ අනුචලනය කිරීමට මට ඉඩ දෙයි; මම රෝදය අනුචලනය කර BAM! එය වැඩ කරනවා. මම ටර්මිනල් ඇප් භාවිතා කරන බව සලකන්න, නමුත් මට මතකයි OP විශේෂයෙන් භාවිතා කිරීම සඳහා පිළිතුර ලබා දුන් බව gnome-terminal.


1
ජෙඩ්, ස්තූතියි! ඔබේ උපදෙස් gnome-terminal හි ද ක්‍රියාත්මක වේ. මම මෙම සැකසුම යම් කාලයක් සඳහා භාවිතා කිරීමට උත්සාහ කරමි. නමුත් එයට අවාසියක් ඇත: මූසික අනුචලනය දැන් බලාපොරොත්තු වූ පරිදි ක්‍රියා නොකරයි less. මම lessඇතුලත tmuxපටවන්නේ නම් , මූසික අනුචලනය මඟින් විවෘත කළ ගොනුව අනුචලනය නොකරයි less. එය මුළු පර්යන්තයම අනුචලනය කරයි. පුදුමයට කරුණක් නම්, ඔබේ සැකසුම සමඟ vimඇතුළත අපේක්ෂා කළ පරිදි හැසිරෙන්න tmux.
user31494

2
Tmux 1.5 වන විට මෙය setw -g mode-mouse onවිකල්පය මගින් අභිබවා යන බව සලකන්න , එය මූසික රෝදය භාවිතයෙන් පිටපත් මාදිලියේ අනුචලනය කරයි.
kynan

3
පැහැදිලි කිරීම නම්, මෙම විකල්පය මඟින් ටර්මිනලයේ විකල්ප තිරයේ ඇති අනුචලන අගුල අක්‍රීය කරන අතර, විකල්ප තිර බෆරය (vi, less, tmux ආදිය) ඉල්ලා සිටින යෙදුම් ඔවුන්ගේම අනුචලන හැකියාවන් ලබා දෙන බැවින් බොහෝ අවස්ථාවන්හිදී එය යෝග්‍ය වේ. Tmux හි මෙම අගුල අභිබවා යාම මඟින් ටර්මිනලයේ විකල්ප තිර බෆරය අනුචලනය කිරීමට ඉඩ සලසයි . විකල්ප තිරය පැහැදිලි කිරීමෙන් උපුටා ගැනීමක් සඳහා මෙම පිළිතුර බලන්න man xterm.
kynan

අහෝ, මෙය iTerm
Suan

ITerm 2
Keith Smiley

5

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"

මෙම නව රෝද බන්ධන හැකියාව සමඟ ඔබ කැමති ඕනෑම සන්දර්භය සංවේදී හැසිරීමක් කිරීමට මූසික රෝදය ස්ක්‍රිප්ට් කළ හැකිය.


මම දැන් පෑන් මායිමේ මූසික වීල් සෑදීමේ අදහස සමඟ සෙල්ලම් කරමින් සිටිමි. බොහෝ විට මම කරන්නේ මායිමේ රෝදය සිතියම් ගත කිරීම නොව, තත්ව රේඛාව ඔස්සේ සිදු කළ විට එය tmux කවුළු චක්‍රීය කිරීමට සිතියම් ගත කිරීමයි.
ස්ටීවන් ලූ

ඔබගේ ගිතුබ් වෙත ඇති සම්බන්ධය කුමක්ද? මම කැමතියි ඔබේ උත්සාහයෙන් වැළකී සිටීමට! මා සොයන තවත් ලක්‍ෂණයක් නම්, Tmux වලින් පිටතදී මෙන් X ක්ලික් පුවරුවට වචනය දෙවරක් ක්ලික් කිරීමයි.
joeytwiddle

@joeytwiddle මම ඉතා නිර්දේශ කරමි github.com/NHDaly/tmux-better-mouse-mode , මගේ අනෙක් පිළිතුර බලන්න
ස්ටීවන් ලූ

5

ඔබ දැනටමත් tmux සැසියක සිටී නම් ඔබට විධානය ක්‍රියාත්මක කළ හැකිය

set mouse on

මතක් කිරීම: විධාන ක්‍රියාත්මක කිරීමට, ඔබේ උපසර්ගය භාවිතා කරන්න :.


ස්තූතියි මා වෙනුවෙන් වැඩ කළා :)
සොහෙල් අහමඩ්

3

සීමිත "සුපුරුදු" අනුචලන තත්වයන් යටතේ ග්නෝම්-ටර්මිනලය විසින් මූසික අනුචලන සිදුවීම් ඉහළ සහ පහළ ඊතල යතුරු වෙත පරිවර්ථනය කරයි. උදාහරණයක් ලෙස, ඔබ භාවිතා අකුරු බැලීම විට less(ඔබ මිනිසෙකු කියවීම කරන විට මෙම විශේෂිත සිදු), ඔබ අන්තර්ගතය භාවිතා අනුචලනය කළ හැකි j, kසහ යතුරු arrow. නමුත් , සමග gnome-terminal, ඔබට එම මූසිකය අනුචලනය සමග, කළ හැකි සඳහ උපක්රමය ස්තුති.

ඒ නිසා මම හිතන්නේ tmuxටර්මිනලය සමහර “ග්‍රහණය කර ගැනීම” වගේමයි less- සහ gnome-terminalපයින් ගැසීමේ එකම යාන්ත්‍රණය : මූසික අනුචලනය ඉහළ / පහළ ඊතල යතුරු එබීම් වලට පරිවර්තනය කරයි.

ඔබට මෙම අංගය පැතිකඩ සැකසුම් තුළ අක්‍රිය කර ඕනෑම අවස්ථාවක නිතිපතා අනුචලනය කළ හැකිය. "අනුචලන" පටිත්තෙහි ඇති අවසාන පිරික්සුම් කොටුව සලකුණු නොකරන්න : පිරික්සුම් කොටුව.


පැහැදිලි කිරීම සඳහා ස්තූතියි, උල්ඩ්කෝ! නමුත් එය මූසික අනුචලන ගැටලුවට උදව් නොකරයි. ඔව්, විකල්පය අක්‍රිය කර ඇති විට, gnome-terminalත්‍රිත්ව ^[[Aසහ ^[[Bමූසික-අනුචලනය යැවීම නතර කරයි . එය වඩාත් හොඳයි tmux( ^[[A^[[A^[[Aසමහර වැඩසටහන් වල කැත නැත, කැත විධාන-ඉතිහාසය-අනුචලනය නැත), නමුත් දැන් lessමූසික-අනුචලනය මත අනුචලනය කිරීම නවත්වයි.
user31494

1
යුක්රේනියානු? ( iඅක්ෂර අනුව අනුමාන කිරීම )
dotancohen

1

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

නව tmux සඳහා මූසික පාලනය වින්‍යාසගත කළ හැකි සහ විශේෂාංග වලින් පොහොසත් කිරීම. බෙහෙවින් නිර්දේශිතයි.

ඔබට භාවිතා කිරීමට අවශ්‍ය විය හැකිය

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

ඒ සමඟම.


මම මෙය ස්ථාපනය කළ නමුත් මූසිකය සමඟ පෙළ ඉස්මතු කර පිටපත් කිරීමට මට තවදුරටත් නොහැකි ය. ඔබට මෙය කළ හැකිද?
jonathanking

ඔව්, ඔබට මූසිකය හා සම්බන්ධ වෙනත් tmux වින්‍යාසය සමඟ ගැටුම් ඇති විය හැක.
ස්ටීවන් ලූ

0

සෑහීමකට පත්විය හැකි අනුචලන හැසිරීමක් ලබා ගැනීම සඳහා ඔබට වෙනත් පිළිතුරු වලින් බන්ධන අදහස් ඒකාබද්ධ කළ හැකිය: ටර්මිනලය තුළ ස්වයංක්‍රීයව පිටපත් කිරීමේ මාදිලියේ වෙනස්වීම් වලින් ක්‍රියා කරන අතර ඔබ පහළට ළඟා වූ විට එයින් පිටව යයි.

මගේ කේතය:

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

අනෙක් පිළිතුරු කිසිවක් මා තුළ මුළුමනින්ම ක්‍රියාත්මක වූයේ නැත. මට මූසික විකල්පය සක්‍රීය කිරීමට සිදු විය, භාවිතා set -g mouse onකර පසුව Shift + Mouse Wheelටර්මිනලය හරහා අනුචලනය කිරීමට භාවිතා කරන ලදී.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.