Tmux හි කවුළුව “උපරිම කිරීම”


252

සමහර විට එය tmux හි කවුළුව උපරිම කර එය පෙර ප්‍රමාණයට යථා තත්වයට පත් කිරීම ඉතා ප්‍රයෝජනවත් වනු ඇත.

මම අත්පොත කියවා ඇති අතර මට ක්‍රමයක් සොයාගත නොහැක. මා ඉදිරිපත් කර ඇති දෙය නම්, කවුළුව “උපරිම” පළලට ප්‍රතිනිර්මාණය කිරීම සඳහා යතුරක් බැඳ තැබිය හැකි අතර, එය පෙර නියම කළ පළලකට යථා තත්වයට පත් කිරීම සඳහා තවත් යතුරකි.

ඇත්ත වශයෙන්ම මෙය එහි අඩුපාඩු ඇති බැවින් කිසිවෙකුට වඩා හොඳ අදහසක් තිබේදැයි මම කල්පනා කරමි.

Answers:


63

tmux 1.8 සහ පසුව

දැන් ස්වදේශීය සහාය, පහත පිළිතුරෙන් :

1.8 අනුවාදයේ -Z ධජය ප්‍රමාණය වෙනස් කිරීම සඳහා එකතු කරන ලදි. මෑන් පිටුවෙන්:

-Z සමඟ, සක්‍රිය කවුළුව විශාලනය (මුළු කවුළුවම වාඩිලාගෙන) සහ නොකැඩූ (පිරිසැලසුමෙහි එහි සාමාන්‍ය පිහිටීම) අතර ටොගල් කර ඇත.

පැරණි tmux (මුල් පිළිතුර)

තවත් විකල්පයක් වනුයේ break-paneපසුව භාවිතා කිරීමයි join-pane. සිට man පිටුව :

break-pane [-d] [-t target-pane]
                   (alias: breakp)
             Break target-pane off from its containing window to make it the
             only pane in a new window.  If -d is given, the new window does
             not become the current window.

join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
                   (alias: joinp)
             Like split-window, but instead of splitting dst-pane and creating
             a new pane, split it and move src-pane into the space.  This can
             be used to reverse break-pane.

එබැවින් ඔබට ඔබේ කවුළුව තෝරාගෙන කළ හැකි break-paneඅතර පසුව ඔබ උපරිම කළ අනුවාදය සමඟ එය නැවත සම්බන්ධ කළ join-paneහැකිය - එය නැවත ක්‍රියාත්මක කිරීමට පෙරනිමි තර්ක කිහිපයක් අවශ්‍ය විය හැකිය, නැතහොත් පසුව නැවත සකස් කරන්න.

බැඳීමේ කවුළුව tmux 1.3 හි ඇති නමුත් 1.1 නොවන බව සලකන්න. (1.2 ගැන විශ්වාස නැත, සමාවෙන්න).

හා සාධාරණ බව සඳහන් කිරීම ටර්මිනේටර් (චිත්රක (GTK පදනම්) පර්යන්තය multiplexer) එම විශාලන දෙයක් කරන්න පුළුවන්. (Ctrl-Shift-X යනු පෙරනිමි යතුරු බැඳීමයි). ඇත්ත වශයෙන්ම එය tmux කරන බොහෝ දේ නොකරයි ...


34
1.8 අනුවාදය අනුව වඩා හොඳ විසඳුමක් ඇත (ටයිලර් හොලියන්ගේ පිළිතුර බලන්න).
momeara

1
වඩා හොඳ පිළිතුරට පෙර මෙය උත්සාහ කරන අයට, වැඩ කිරීමට සම්බන්ධ වීමේ කවුළුව ලබා ගැනීම සඳහා: join-pane -t:{previous}පෙර කවුළුව සඳහා හෝ join-pane -t:0එය නැවත කවුළුව 0 වෙත සම්බන්ධ කිරීම.
යථාර්ථවාදී

2
C-b- zපිළිතුර බොහෝ දෙනා සොයන පිළිතුරයි.
user1717828

506

මෙය දැන් ස්වදේශීය tmux අංගයකි.

1.8 අනුවාදය -Zධජය එකතු කිරීම දුටුවේය resize-pane. මෑන් පිටුවෙන්:

-Z සමඟ, ක්‍රියාකාරී කවුළුව විශාලනය කළ (මුළු කවුළුවේම වාසය කරයි) සහ විශාලනය නොකළ (පිරිසැලසුමෙහි එහි සාමාන්‍ය පිහිටීම) අතර ටොගල් කර ඇත.

එය බැඳී තියෙන්නේ tmux-prefix- z(OS X මෙහෙයුම් පද්ධතිය මත බරපැනක් හරහා) මගේ ස්ථාපනය මත පෙරනිමියෙන්.


4
මෙය විශිෂ්ටයි, මගේ .tmux.conf වෙත එකතු කර ඇති අතර දැන් ඊට වඩා තරල අත්දැකීමක් තිබේ: bind-key z resize-pane -Z
St-Ste-Ste-

ගැඹුරට ඇඟවීම සඳහා ගිලී ඇති කවුළුවල දාර කෙසේ හෝ දැකිය හැකිද? මම විශාලනය කර ඇති බව මට අමතක වන අතර "ඉසෙඩ් මාතෘකාව" එතරම් ප්‍රකට නොවේ.
lkraav

බන්සන්ලැබ්ස් හි වැඩ කරයි.
Mateusz Piotrowski

නියමයි. එය සැබවින්ම ක්‍රියාත්මක වේ
sayem siam


49

ඉතින් මම දන්නවා ඔබ මීට ටික කලකට පෙර මෙය ඇසූ බව ... නමුත් මම අද සිට තිරයේ සිට මාරු වූයේ නැහැ!

මම එකම ගැටලුවකට මුහුණ දුන්නෙමි, මෙන්න මම එය විසඳූ ආකාරය:

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

ඔබගේ කාර්ය ප්‍රවාහය මගේ හා සමාන නම් (එනම් ඔබ කවුළුවක් උපරිම කර, යම් වැඩක් කරන්න, වහාම එය අවලංගු කරන්න) මෙය ඔබට විශාල ලෙස ක්‍රියා කළ යුතුය.


(එය පැහැදිලි නැතිනම්, මෙය ඔබගේ මුල් කවුළුව තුළ පිරිසැලසුම පවත්වා ගෙන යයි ... උපරිම කිරීමෙන් හා උපරිම නොකිරීමෙන් පසුව එය හරියටම සමාන වේ.)
රයන්

2
එකම යතුරු පුවරුව දෙකටම සිතියම් ගත කරන්නේ කෙසේදැයි යම් අදහසක් තිබේද? වගේ දෙයක් bind c-m select-window -t tmux-zoom ? <minimize> : <maximize>. නමුත් දැන් මට මෙම ක්‍රියාව වෙනත් තැනක නිර්වචනය කිරීමට අවශ්‍යයි, පිරිසිදුකම සහ සාධාරණත්වය වෙනුවෙන් bind c-m :max_or_min. එය කළ හැකිද? මට සෙවීම දුෂ්කර ය. (මම බොහෝ විට වැරදි විධානයකට පහර දී අතිරේක හිස් 'tmux-zoom' කවුළු නිර්මාණය කරන බව මට පෙනේ.)
chadoh

7
මෙය මට වැඩ කළේ 'පැහැදිලි && දෝංකාරය TMUX ZOOM && read' උපරිම කිරීමෙන් ඉවත් කළ විට පමණි.
එපීලි

තුන්වන උපරිමය මා වෙනුවෙන් ක්‍රියා කරයි, නමුත් අවම කිරීමේ ක්‍රියාව මුල් කවුළුව මරා දමයි, උපරිම කවුළුව අතහැර දමයි.
pararoid

මේ ආකාරයේ වැඩ, නමුත් මට මගේ පිරිසැලසුම නැති වී යයි .. කෙසේ වෙතත්!
ජෝන් හන්ට්

25

වැඩි දියුණු කළ විශාලනය. දැන් කෙනෙකුට ධූරාවලියෙන් පවා බහු කවුළු විශාලනය කළ හැකිය. පහත දැක්වෙන දේ කර ඔබේ tmux සේවාදායකය නැවත පූරණය කිරීමෙන් පසු (මගේ නඩුවේ Ctrl-r) ඔබට ඔබේ xයතුර විශාලනය කිරීමට සහ කවුළුව විශාලනය කිරීමට බැඳී ඇත. නව කවුළුවක කවුළුව විවෘත කිරීමෙන් විශාලනය ලබා ගත හැකි අතර, විශාල කවුළුවක් එහි මුල් කවුළුව වෙත ගෙන යාමෙන් විශාලනය ලබා ගත හැකිය. ඔබ විශාලන කවුළුව බෙදීම අවසන් කළහොත්, ඔබට විශාලන කවුළුවේ කවුළුවලට විශාලනය කර නැවත විශාලනය කළ හැකි කවුළුව වෙත විශාලනය කළ හැකිය. විශාලනය කිරීම සිදුවන්නේ ඔබ විශාල කවුළුවක් තුළ තනි කවුළුවක සිටී නම් පමණි.

ඔබගේ අවසානයට පහත සඳහන් දෑ එක් කරන්න ~/.tmux.conf

~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"

පහත ගොනුව එක් කරන්න

~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
    inzoom="";
fi
if [ $inzoom ]; then
    lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
    lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
    tmux select-window -t $lastwindow;
    tmux select-pane -t $lastpane;
    tmux swap-pane -s $currentwindow;
    tmux kill-window -t $currentwindow;
else
    newwindowname=zoom@$currentwindow@$currentpane;
    tmux new-window -d -n $newwindowname;
    tmux swap-pane -s $newwindowname;
    tmux select-window -t $newwindowname;
fi

4
තනි උඩු යටිකුරු කිරීමක් පමණක් ද? මෙම පිළිතුර නියමයි! ඉතා හොඳින් ක්‍රියා කරයි, හොඳ නව ක්‍රියාකාරිත්වයක් හඳුන්වා දෙයි, එය දැන් මා භාවිතා කළ පුපුරා ගිය 'ටර්මිනේටර්' වැඩසටහන සම්පූර්ණයෙන්ම ප්‍රතිස්ථාපනය කරයි.
මෝඩ මුන්කි

+1 මෙය ඇත්තෙන්ම හොඳයි! මම මෙතෙක් හමු වී ඇති හොඳම ක්‍රියාකාරී විසඳුම! ස්තූතියි !!
ආමන්ඩිනෝ

මම එකඟ වෙමි. මෙය ක්‍රියාත්මක වන අතර එය නියමයි. එය තිරය ++
බ්‍රැඩ් පාර්ක්ස්

+1. මෙය විශිෂ්ට ලෙස ක්‍රියා කරන නමුත් එය තත්පරයක භාගයක් (s 0.8s) @ රියාන්ගේ පිළිතුරට වඩා මන්දගාමී වේ, අවම වශයෙන් මගේ පද්ධතියේ. ලොකු දෙයක් නොවේ, නමුත් එය වේගවත් කිරීමට ක්‍රමයක් තිබේදැයි මම කල්පනා කරමි
ඇමීලියෝ වාස්කෙස්-රීනා

ඇත්තෙන්ම ලස්සනයි. ප්‍රයෝජනවත් මතක් කිරීම් වන විශේෂ කවුළු නම් (විශාලනය @…) සහ තනි "x" විශාලනය / පිටතට යන විධානයට මම ප්‍රිය කරමි.
එරික් ඕ ලෙබිගොට්

18

Ctrl+ b(උපසර්ගය) + zවිශේෂිත කවුළුවකට විශාලනය කිරීමට ක්‍රියා කරයි tmux 2.1. එය ඔබ නැවත Ctrl+ b+ ඔබන්න z, එය නැවත විශාලත්වයට විශාලනය කරයි. එය නව කවුළුවක් නිර්මාණය නොකරයි.

ඉහත සඳහන් කළ විසඳුම හා සසඳන විට, ඔබ විශාලනය කළ කවුළුව බෙදීමට උත්සාහ කරන්නේ නම්, එය බෙදීමට ඉඩ නොදෙන අතර, මුල් කවුළුව වෙත ගොස් ඒ වෙනුවට එම කවුළුව බෙදනු ඇත.

විශාලන කවුළු විකල්පය වඩාත් බහුකාර්ය වේ ...


2

මම මෙය කළේ එකම යතුරු පහරකින් උපරිම කිරීමට / අවම කිරීමට ය:

bind C-k run "if [[ $(tmux list-window) =~ ZOOM ]]; then tmux last-window; tmux swap-pane -s ZOOM.1; tmux kill-window -t ZOOM; else tmux new-window -d -n ZOOM; tmux swap-pane -s ZOOM.1; tmux select-window -t ZOOM;fi"

2

දැන්, ඒ සඳහා පෙරනිමි කෙටිමඟක් ඇත:

tmux-prefix+z

එය සාමාන්‍යයෙන්:

Ctrlb+z


1

'පැහැදිලි && දෝංකාරය TMUX ZOOM && කියවීම' නොමැතිව මටද වැඩ කරන්න. මෙම ස්නිපටය සමඟ මම පළමු කවුළුවෙන් එක් කවුළුවක් අවම කරන සෑම අවස්ථාවකම අතුරුදහන් වේ.


1

resize-pane -Zටොගල් වීම පිළිබඳ ගැටළුව නම්, සමහර විට එය අපේක්ෂිත ප්‍රමාණයට වඩා ප්‍රතිලෝම විශාලන ක්‍රියාකාරිත්වය සිදු කරනු ඇත, විශේෂයෙන් ස්ක්‍රිප්ට් එකකින් හෝ ඇතුළත සිට ඇමතූ විට tmux.conf.

මෙන්න වැඩ වටය:

tmux-zoom-in.sh

#!/bin/bash

# Zoom in the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8

tmux list-panes -F '#F' | grep -q Z || tmux resize-pane -Z

tmux-zoom-out.sh

#!/bin/bash

# Zoom out the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8

tmux list-panes -F '#F' | grep -q Z && tmux resize-pane -Z


0

මම උබුන්ටු 12.04 හි සිටින අතර මෙම අංගයද අවශ්‍ය විය. Tmux 1.8 සිට tmux-prefix z භාවිතා කර විශාලනය ටොගල් කිරීම සඳහා ස්වදේශීය සහාය ඇත. 12.04 දී අපට බොහෝ විට tmux 1.8 නොපෙනෙන හෙයින් මම වෙනත් dev පරිගණකයක ප්‍රභවයෙන් tmux 1.8 සම්පාදනය කර එය _tmux-1.8 ලෙස නම් කර 1.8 ද්විමය /usr/bin/_tmux-1.8 වෙත පිටපත් කර සංස්කරණය කළෙමි .bash_aliases -> අන්වර්ථය tmux = '_ tmux-1.8'.

මෙම ඉක්මන් හා අපිරිසිදු ක්‍රමය භාවිතා කිරීමේ කිසිදු ගැටළුවක් මා දැක නැති අතර tmux 1.8 12.04 ට පැමිණෙන විට / මම කිසිවක් කැඩී නැත.


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.