මම tmux කවුළු නැවත සකසන්නේ කෙසේද?


447

දී screen, මට C-a :number 0කවුළු ලැයිස්තුවේ ඉහළට කවුළුවක් ගෙනයාමට ටයිප් කළ හැකි අතර අනෙක් සියලුම කවුළු එකකට පහළට තල්ලු කරන්න. සමාන විධාන අනුක්‍රමය tmuxකුමක්ද? මම මෑන් පිටුව දෙස බැලුවෙමි, නමුත් මම මේ කාරණය අවුල් සහගතය.


108
C-b, .කවුළුවක් ප්‍රතිසංස්කරණය කිරීමට ඔබට ඉඩ දෙයි.
සමාවයවිකතාව

7
බොහෝ පිළිතුරු කියවමින්, OP හි ප්‍රශ්නයට පහසු විසඳුමක් මට තවමත් නොපෙනේ: දී ඇති කවුළුවක් 0 වන ස්ථානයට ගෙන යන්නේ කෙසේද සහ ඉතිරි සියල්ල දකුණට හරවන්නේ කෙසේද. මෙය සිදු කිරීම සඳහා මට සෑම කෙනෙකුම අතින් මාරු කළ යුතුද? මට අවශ්‍ය වී ඇත්තේ මම වැරදීමකින් කළ පියවරක් අහෝසි කිරීමටයි (සහ කුමක් දැයි මට විශ්වාස නැත) මම සිතන්නේ කවුළුව 0 කවුළුව 8 වෙත ගෙන ගොස් අනෙක් සියල්ල වමට මාරු කළ බවයි.
nealmcb

1
withnealmcb මට ඉදිරිපත් කළ හැකි පහසුම දෙය නම් පාදක දර්ශකය 1 ට සැකසීම, නැවත සකස් කිරීම, ඉන්පසු ඔබේ කවුළුව හිස් 0 තව් වෙත ගෙන යාම: superuser.com/a/1155999/674549
eMBee

වත්මන් කවුළුවේ වෙනස swap-window -s numberසහ swap-window -t numberහුවමාරු කිරීම සඳහා, මගේ පිළිතුර මෙතැනින් බලන්න .
qeatzy

Tmux කවුළු පරාසය මාරුවීම සඳහා bash ශ්‍රිතයක් සඳහා මෙම පිළිතුර බලන්න , උදා, [2-5] [0-6] කවුළු.
qeatzy

Answers:


501

මෙම swap-windowවිධානය මඟින් ඔබ අවශ්ය දේ ආසන්නතම වේ.

"උපසර්ගය:" (එනම් Ctrl+ B, :පෙරනිමියෙන්) ඔබව tmux-command විමසුමට ගෙන එයි. එහිදී ඔබ ඇතුළු වන්නේ:

swap-window -s 3 -t 1

කවුළු අංක 3 සහ කවුළු අංක 1 ඔවුන්ගේ ස්ථාන මාරු කිරීමට ඉඩ දීමට.

වත්මන් කවුළුව ඉහළ කවුළුව සමඟ මාරු කිරීමට, කරන්න:

swap-window -t 0

දර්ශක 0 හි කවුළුවක් නොමැති යැයි සිතිය නොහැකි අවස්ථාවක, කරන්න:

move-window -t 0

(පෙරනිමියෙන් මෙන් පාදක දර්ශකය 0 නම්).

ඔබට පහත දැක්වෙන දේ එකතු කිරීමෙන් ඔබට එම විධානය යතුරකට බැඳිය හැකිය (උදාහරණයක් ලෙස "ඉහළට" T) ~/.tmux.conf:

bind-key T swap-window -t 0

7
ඔබගේ සංස්කරණයට ස්තූතියි, නමුත් move-windowලබා දී ඇති දර්ශකයේ වෙනත් කවුළුවක් නොමැති නම් පමණක් ක්‍රියාත්මක වේ. එබැවින් බොහෝ විට, ක්‍රියා move-window -t 0නොකරනු ඇත, මන්දයත් සාමාන්‍යයෙන් දැනටමත් එම ස්ථානයේ තවත් කවුළුවක් ඇති බැවිනි.
matlehmann

ඒක හරි, මම ඒක වැඩි දියුණු කරන්නම්.
zakkak

2
ඔබට බැලීමට අවශ්‍ය විය හැකිය movew.
මාර්සෙලෝ රොමානි

4
එසේම, bind-key L swap-window -t -1එය අවසාන කවුළුව බවට පත් කිරීම සඳහා.

වත්මන් කවුළුවේ වෙනස swapw -s numberසහ swapw -t numberහුවමාරු කිරීම සඳහා, මගේ පිළිතුර මෙතැනින් බලන්න .
qeatzy

290

ගරෙත්ගේ පිළිතුරට එකතු කරමින් ඔබට පහත යතුරු බන්ධන භාවිතා කළ හැකිය

bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

Ctrl + Shift + Left එබීමෙන් (වත්මන් කවුළුව වමට ගෙන යනු ඇත. ඒ හා සමානව දකුණට. නවීකරණයක් (Cb) භාවිතා කිරීම අවශ්‍ය නොවේ.

Tmux 3.0 අනුවාදය සඳහා, ඔබ පහත යතුරු බන්ධන භාවිතා කළ යුතුය

bind-key -n C-S-Left swap-window -t -1\; select-window -t -1
bind-key -n C-S-Right swap-window -t +1\; select-window -t +1

11
මෙය -1සහ +1වාක්‍ය ඛණ්ඩය වාඩිලාගෙන සිටින දර්ශකවල ගැටළුව විසඳීමට උපකාරී වේ. tmux ඔබ වෙනුවෙන් අනෙක් කවුළු මාරු කරනු ඇති අතර සිදුවීම් අවසානය දක්වා / ස්වයංක්‍රීයව ආරම්භ වේ. මෙය හොඳම පිළිතුරයි.
බ්‍රයන්පිරිස්

1
Tmux කවුළු පහසුවෙන් ගෙනයාමට මට ඇති නොහැකියාව සති කිහිපයක් තිස්සේ මට දෝෂාරෝපණය කර ඇත. මෙය කවුළු සමඟ ගනුදෙනු කිරීම එතරම් පහසු කරයි! මෙම මෑත කාලීන tmux පරිවර්තනයෙන් බොහෝ ස්තූතියි.
calvinf

11
හොඳ ඉඟියක්, කැමැත්තක් bind-key S-Left swap-window -t -1දක්වන්න, එබැවින් මට <prefix> shift + ඊතලය කළ හැකිය, මන්ද වැඩසටහන් සඳහා යතුරු බන්ධන අවුල් කිරීමට මා අකමැති බැවිනි.
demure

4
අකුරු භාවිතා කරන්නේ නම් ඔබට සීඑස් නොව ලොකු අකුරක් භාවිතා කළ යුතුය:bind-key -n C-H swap-window -t -1
මැතිව් මිචෙල්

2
සීඑස්-වම / දකුණ යතුර බැඳීමේ අදහසට මම කැමතියි. කෙසේ වෙතත්, මම මෙය මගේ මැක් (10.12.4 සියෙරා) හි tmux 2.3 සමඟ උත්සාහ කරන විට, එය ක්‍රියා නොකරයි. එය Terminal.app හෝ වෙනත් පද්ධති සැකසුම් මගින් ග්‍රහණය කර ඇත්දැයි මට විශ්වාස නැත. ඕනෑම උදව්වක් අගය කරනු ඇත!
සිහින දකින

68

Tmux සමාන :number 42වේ :move-window -t 42.


9
මෙය Cb ට බැඳී ඇත.
vedang

1
ස්තූතියි! මෙය පිළිගත් පිළිතුරට වඩා හොඳය.
ආශේ

6
RArlenCuss ඇත්තටම පිළිතුරු දෙකම හොඳ සහ ප්‍රයෝජනවත් වේ. තිරය: අංකය භාවිතා කරමින් ඔබට කවුළු මාරු කළ හැකි බව ඔබට පෙනේ, tmux: move-window භාවිතා කර ඔබට කවුළුව නැවත ස්ථානගත කළ හැක්කේ ඉලක්ක දර්ශකය භාවිතයේ නොමැති නම් පමණි. ඉතින්, imo, දෙකම: swap-window සහ: move-window කවුළු ස්ථාන පාලනය කිරීම අවශ්‍ය වේ :)
වික්ටර් ෆරාස්ඩාගි

1
ක්‍රමලේඛන ගුරුවරයෙකුගෙන් පිළිතුරක් ලබා ගැනීම සඳහා +1 (නිවැරදි වීම සඳහාද). සක්‍රීය කවුළුවක වැඩ කිරීමට මට ලබා ගත හැකි එකම ක්‍රමය මෙයයි
ඉංජිනේරු ඩේව්

6
tmux ගේ :move-windowවේ නොහැකි තිරය ගේ සමාන :number. :numberගමනාන්තය තිබේ නම් හුවමාරු :move-windowවේ, එම අවස්ථාවේදී අසමත් වේ. ඔබ තෝරා ගත යුත්තේ :move-windowසහ:swap-window
පයික්

17

මම මේ වගේ කවුළු අලුත්වැඩියා කරනවා:

Ctrl+ b, .,222

වත්මන් tmuxකවුළුව (සියලුම කවුළු) අංක 222 බවට පත් කරයි.


සබැඳි: මම අවට දේවල් මාරු කරන විට මම කිරීමට කැමැත්තෙමි

Ctrl+b :new-session -d -s "reading"

එහි සිට මම ද භාවිතා කළ හැකිය Ctrl+ b, ., readingකියවීමේ සැසිය වෙත වත්මන් කවුළුව (එකවර සියලු ඵලවිපාක) ගමන්. ඔබට Ctrl+ සමඟ සැසි අතර සැරිසැරීමට හැකිය b, sඔබ සැසිය තුළ සැරිසරන ආකාරය Ctrl+ b, w.

HTH


12

ඔබ සමාන ක්රියාත්මක කළ හැකි screenගේ numberඅතර තෝරා ගන්නේ බව බාහිර ෂෙල් තිර රචනය භාවිතා විධාන swap-windowහා move-window. ඔබට එය යතුරකට බැඳ තැබිය හැකිය:

bind < command-prompt -p index "run-shell '~/.tmux.number.sh %%'"

~/.tmux.number.sh:

#!/bin/bash
if [ $# -ne 1 -o -z "$1" ]; then
    exit 1
fi
if tmux list-windows | grep -q "^$1:"; then
    tmux swap-window -t $1
else
    tmux move-window -t $1
fi

2
ඉතා හොඳ විසඳුමක්, විශිෂ්ට ලෙස වැඩ කිරීම! මම පිරිසිදු කිරීම සඳහා සුළු සංස්කරණ සිදු -Fකර මගේ tmux අනුවාදය විසින් නොපිළිගන්නා විකල්පය ඉවත් කළෙමි .
haridsv

8

ඕනෑම හැඳුනුම්පතකට යාමට swap-window භාවිතා කිරීම: [තිරයේ ආසන්නතම: අංක]

# window movement / renumbering like in screen's :number
bind-key m command-prompt -p "move window to:"  "swap-window -t '%%'"

[චලනය සඳහා m -> උපසර්ගය-එම් යතුර ඔබා 3 කියන්න. . කවුළුව 3 දක්වා ප්‍රතිසංස්කරණය කිරීමට]


1
මෙය දැනටමත් හොඳයි, නමුත් ඊටත් වඩා හොඳ වනු ඇත: swap-window කරන්න, එය අසමත් වුවහොත්, චලනය වන කවුළුව වෙත ආපසු යන්න
nisc

5

සිට වඩාත් සරල විසඳුම manවන්නේ පෙරනිමි බන්ධන භාවිතා කිරීමයි:

{           Swap the current pane with the previous pane.
}           Swap the current pane with the next pane.

6
tmux කවුළු සහ කවුළු වෙනස් වේ.
මාර්සෙලෝ රොමානි

5
මෙය මට අවශ්‍ය දේ ලබා ගැනීමට තවමත් මට උදව් විය
lkraav

මෙම ප්‍රශ්නය කවුළු නොවන කවුළු ගැන ය
mbigras

5

අෂිෂ් අරිගාගේ පිළිතුර 1.9a සහ ඊට පහළින් ක්‍රියා නොකරයි. මම භාවිතා <හා >පහත දක්වා ඇති මාර්ගය එකතු කිරීම මඟින්, පිළිවෙළින් හුවමාරු කවුළුව වම් හා දකුණු කිරීමට, .tmux.conf.

# swap window to left or right
bind-key -r < swap-window -t -1
bind-key -r > swap-window -t +1

3

byobuTmux සඳහා ඔබේ එතීම ලෙස භාවිතා කරන ඔබ සඳහා, ඔබට පෙර හෝ ඊළඟ කවුළුව සමඟ වත්මන් කවුළුව මාරු කළ හැකිය:

Ctrl-Shift-F3
Ctrl-Shift-F4

මෙම යතුරු සඳහා අර්ථ දක්වා ඇති යතුරු බන්ධනය byobuඋනන්දුවක් දැක්විය හැකිය:

bind-key -n    C-S-F3 swap-window -t :-1
bind-key -n    C-S-F4 swap-window -t :+1

භේදවලට පමණ ගමන් සඳහා විශාල, කෙටි මාර්ග වනු ඇත තුල යම් කවුළුව.
පැබ්ලෝ ඒ

2

මා භාවිතා කරන ප්‍රවේශය අෂිෂ්ගේ පිළිතුර ටිකක් පයික් සමඟ ඒකාබද්ධ කරයි; පළමු හෝ අවසාන කවුළුව ගෞරවනීය ලෙස හැර, කවුළුව එකක් වමට හෝ දකුණට ගෙන යන ඉක්මන් කුඩා ෂෙල් ඇමතුමකට මා සතුව alt-left සහ right ඊතලය ඇත. මා එසේ කළේ, ඔබ අන්තිම කවුළුවේදී swap +1 නිකුත් කරන විට (හෝ පළමු කවුළුවේදී swap -1), ඔබ අපේක්ෂා කළ පරිදි නැවත නැවත ලූපය වෙනුවට එය තවමත් හුවමාරු වනු ඇත:

0:one 1:two 2:three 3:zero*

බවට පත්වේ

0:zero* 1:two 2:three 3:one

වෙනුවට

0:zero* 1:one 2:two 3:three

එබැවින්, කවුළුව ලැයිස්තුවේ අද්දරට පැමිණි විට මා භාවිතා කරන විධානයන් ක්‍රියා කිරීම නවත්වයි:

bind-key -n M-Left run-shell 'tmux list-windows | head -n 1 | grep -q active || tmux swap-window -t -1'
bind-key -n M-Right run-shell 'tmux list-windows | tail -n 1 | grep -q active || tmux swap-window -t +1'

අත්තනෝමතික අංකයකින් ආරම්භ වන කවදාවත් කිසිදු හිඩැස් නොමැති කවුළු ලැයිස්තුවක් ලබා ගැනීම සඳහා මෙය පහසුවෙන් පාදක දර්ශකය සහ ප්‍රතිසංස්කරණ කවුළු සමඟ ඒකාබද්ධ කළ හැකිය .

ඔබ මා වැනි පාදක දර්ශක 1 භාවිතා කරන්නේ නම් සහ ඔබ කවදාවත් කවුළු 999 ට වඩා ඉහළට යනු ඇතැයි ඔබ නොසිතන්නේ නම්, එය නිසි ලෙස පෙරළීමට ඔබට කුඩා උපක්‍රමයක් භාවිතා කළ හැකිය, නමුත් විධාන ටිකක් ඉදිමී ඇත:

set -g base-index 1
set -g renumber-windows on
bind-key -n M-Left run-shell 'if tmux list-windows | head -n 1 | grep -q active ; then tmux move-window -t 999 \; move-window -r \; refresh-client -S ; else tmux swap-window -t -1 ; fi'
bind-key -n M-Right run-shell 'if tmux list-windows | tail -n 1 | grep -q active ; then tmux move-window -t 0 \; move-window -r \; refresh-client -S ; else tmux swap-window -t +1 ; fi'

මෙය ක්‍රියාත්මක වන්නේ අවසාන කවුළුව භාවිතයට නොගත් දර්ශකය -0 වෙත තාවකාලිකව ගෙනයාම සහ නැවත 1 සිට ආරම්භ කර නැවත සකස් කිරීම සඳහා move-window -r අමතන්න . පළමු කවුළුව අවසානයට ගෙන යන විට එය සමානව ක්‍රියා කරයි; ඔබ කිසි විටෙකත් භාවිතා නොකරන විශාල සංඛ්‍යාවක් තෝරා ගැනීමෙන්, චලනය-කවුළුව -ආර් නැවත වෙඩි තබන විට ඔබ අපේක්ෂා කළ පරිදි සියල්ල අංකනය වන බව සහතික කරයි . ඔබ නැවුම්-සේවාදායක -S ගැන කල්පනා කරන්නේ නම් , එය අවශ්‍ය වන්නේ සමහර විට, චලනය-කවුළුවෙන් නැවත සකස් කිරීම නිසියාකාරව ක්‍රියාත්මක වන අතර, තවත් වෙනස්කම් සිදු වන තුරු තත්ව තීරුව යාවත්කාලීන නොවනු ඇත. තත්ව තීරුව (-S) නැවුම් කිරීමට බල කිරීමෙන් ඔබ මෙය වළක්වයි.

මෙම ප්‍රවේශය සමඟ මට සොයාගත හැකි එකම ගැටළුව නම්, swap-window මඟින් ඔබ අවසන් වරට භාවිතා කළ කවුළුව ඔබ මාරු කළ කවුළුවට ව්‍යංගයෙන් වෙනස් කරනු ඇත. මේ අනුව, ඔබ කවුළුව # 1 හි සිටී නම්, හතරවන කවුළුව වෙත මාරු වී එය පසුපසට ගෙනයන්න, ඔබ අවසන් වරට භාවිතා කළ කවුළුව # 1 වෙනුවට නව # 4 (කලින් # 3) බව ඔබට පෙනී යනු ඇත. මේ සඳහා ක්‍රමයක් ඇති බවක් නොපෙනේ.


2

base-indexඔබේ කවුළු සඳහා ආරම්භක අංකය වෙනස් කිරීමට ඔබට භාවිතා කළ හැකිය . ඔබ නියම නම් base-indexකිරීමට 1, එවකට move-window -rදී ආරම්භ කවුළු සියල්ල renumber ඇත 1මේ අනුව, ධනයේ 0එහි තව් බවට කවුළුවක් ගමන්:

set base-index 1
move-window -r
move-window -t 0

සිදු වූ විට, ඔබ නැවත සකස් කළ හැකි base-indexකිරීමට 0ඔබ භාවිතා කිරීමට අවශ්ය නම් move-window -rපසුව ඔබේ කවුළුව ගමන් තොරව0


2

tmux-වේදනාව පාලනය සපයයි ctrl-b >සහ ctrl-b <දකුණු ඉලක්කගත කවුළුව ගමන් සහ ඒ අවට ඉතිරි, ඔතන.


Tmux 2.5 හි මට වැඩ කරන්නේ නැත
දිමිත්‍රි ෆ්‍රෑන්ක්

1
M දිමිත්‍රි ෆ්‍රෑන්ක් ඕප්ස්, හරි, මගේ නරක. එයට හේතුව github.com/tmux-plugins/tmux-pain-control
pepper_chico

ස්තූතියි! ඒවා දෙක අතින් සැකසීමට කළමනාකරණය කර ඇත, නමුත් ප්ලගිනය වෙනත් ආකාරවලින්ද හොඳ පෙනුමක් ඇත.
දිමිත්‍රි ෆ්‍රෑන්ක්

1

දෙකම swap-window -s 5සහ swap-window -t 55 වන කවුළුව සමඟ වත්මන් කවුළුව මාරු කරන්න, නමුත් විවිධ අර්ථකථන සමඟ.

swap-window -s 5

  • කවුළු 5 වැඩසටහන වත්මන් ජයග්‍රාහී අංකය සමඟ ක්‍රියාත්මක වේ.
  • මෑත කවුළු අංකය නොවෙනස්ව පවතී.
  • එකම විධානය නැවත පෙර තත්වයට පෙරළෙනු ඇත.

swap-window -t 5

  • වත්මන් වැඩසටහන අංක 5 සමඟ ක්‍රියාත්මක වේ.
  • වත්මන් කවුළු අංකයට මෑතදී අභිබවා යාම.

මෙම numberතුළ swap-window -s numberහා -t numberදෙකම විය හැකි පරම , උදා, 5, සහ සාපේක්ෂ , උදා, -1, +2.

පහත දැක්වෙන PS හි බලපෑම නිරූපණය කරන tmux statusline හි උපුටා ගැනීමකිswap-window -s 5

මෑත:
[0] 0:vim- 1:mpl 2:py2* 3:numpy 4:plot 5:mc

දැන්, පසුව last-window:
[0] 0:vim* 1:mpl 2:py2- 3:numpy 4:plot 5:mc

පසු swapw -s 5:
[0] 0:mc* 1:mpl 2:py2- 3:numpy 4:plot 5:vim

තවත් swapw -s 5:
[0] 0:vim* 1:mpl 2:py2- 3:numpy 4:plot 5:mc

තවත් last-window:
[0] 0:vim- 1:mpl 2:py2* 3:numpy 4:plot 5:mc


Tmux කවුළු පරාසය මාරුවීම සඳහා bash ශ්‍රිතයක් සඳහා මෙම පිළිතුර බලන්න , උදා, [2-5] [0-6] කවුළු.
qeatzy

1

Tmux කවුළුවෙන්, කවුළුව 0 1 සමඟ හුවමාරු කර ගැනීමට පහත සඳහන් දේ උත්සාහ කරන්න:

$ tmux swap-window -d -s 0 -t 1


0

'තේරීම් කවුළුව' විධානයට නව යතුරු සංයෝජනයක් බැඳීමට ඔබට අවශ්‍ය යැයි මම සිතමි.

ඔබ දැනටමත් මෑන් පිටුව කියවා ඇති බව මම දනිමි, නමුත් ඔබ එය නැවත යොමු කළ යුතුය. bind-key විධානයක් එක් කිරීමට ඔබේ ~ / .tmux.conf ගොනුව වෙනස් කළ යුතුය.

විශේෂයෙන්, පහත 4 වන පිටුව බලන්න.

tmux man පිටුව


choose-windowවත්මන් කවුළුව නව ස්ථානයකට ගෙන යන බවක් නොපෙනේ.
dan

එසේම, choose-windowදැනටමත් බැඳී ඇත C-B w.
kynan

0

මම භාවිතා කරන ක්‍රමය මෙයයි. ඔබට තවමත් කවුළුවක් වාඩිලාගෙන සිටින දර්ශකයකට ගෙන යා නොහැක, නමුත් ඔබට එකක් ඉහළ (භාවිතයට නොගත් දර්ශකයකට) ගෙන ගොස් පෙර දර්ශකය තිබූ පරතරය තුළ නැවත සකස් කළ හැකිය.

ඔබට කවුළු 3 ක් ඇති බවත් හතරෙන් එකක් එකතු කිරීමට අවශ්‍ය බවත් නමුත් කලින් තිබූ ස්ථානයේ 3 ක් ඇති බවත් පවසන්න.

ඔබ නව කවුළුවක් එක් කිරීමට පෙර: Tmux උපසර්ගය පසුව. චලනය විධානය විවෘත කරයි. 4 ටයිප් කර 3 හි දර්ශකය දැන් 4 බවට පත්වේ, පසුව තවත් කවුළුවක් එක් කරන්න, එය දර්ශක 3 හි ඇති අතර ඔබේ පැරණි කවුළුව තවමත් දර්ශක 4 හි පවතිනු ඇත.


ප්‍රයෝජනවත් ඉඟියක් වුවද, මෙය ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත.
ජෑන් ඩොගන්

0

පළමුව, tmux විධාන මාධ්‍යය විවෘත කර මුදා හරින්න:

Ctrl + b 

සත්‍ය කවුළුව දකුණු කවුළුවට (රවුම් අනුපිළිවෙලට) වෙනස් කිරීමට, කරන්න:

}

සත්‍ය කවුළුව වමට වෙනස් කිරීමට:

{
  • SHIFTඑබූ විට }හෝ භාවිතා කිරීමට අමතක නොකරන්න {.

2
සමහර අවස්ථා වලදී නිසැකවම උපකාරී වේ, නමුත් මෙය කවුළුවක් තුළ ඇති කවුළු නැවත සකස් කරයි (කවුළු නැවත සකස් කිරීමට වඩා).
පසුගාමී කප්පාදුව

0

එය වටින දේ සඳහා:

"TUI" එකක ඇති සියලුම කවුළු ඇණවුම් කිරීමට හැකි වන පරිදි මම මෙම ස්ක්‍රිප්ට් එකට හැක් කළෙමි. එය ඔබගේ සියලු කවුළු තාවකාලික ගොනුවක ලැයිස්තුගත කරයි, එය ඔබගේ පෙරනිමි සංස්කාරකය සමඟ විවෘත කරයි (ඔබ $ EDITOR සකසා ඇතැයි උපකල්පනය කරයි). මෙයින් පසු ඔබට රේඛා නැවත පිළිවෙලට කළ හැකි අතර ඔබ ගොනුව සුරකින හා වසා දැමූ පසු, කවුළු ඒ අනුව නැවත සකසනු ලැබේ. (මෙය සිදු කිරීමේදී කොමිස් ඇණවුම් කිරීමට සමාන වේ git rebase -i)

#!/bin/bash

# Usage: tmux-mv    
#   Move your tmux windows around in an editor

tmpfile=$(mktemp)
tmux list-windows > $tmpfile
$EDITOR $tmpfile

# Move all windows to 50..x in the order you just specified
# Assumes you don't have 50 windows already(!)
cat $tmpfile | awk -F ":" '{ print " -s " $1 " -t 5" NR-1 }' |\
  xargs -I {} sh -c 'tmux move-window -d {}'

# Move them back down, retaining the order
tmux move-window -d -r
rm $tmpfile

එය බොහෝ විට වැඩි දියුණු කළ හැකිය, විශේෂයෙන්:

සටහන : විධානය ක්‍රියාත්මක කිරීමෙන් පසු ඔබව වෙනත් කවුළුවකට ගෙන යනු ඇත.

එහි gif එකක් ක්‍රියාත්මක වේ (github)


0

මෙහි කිසිදු පිළිතුරක් මා සෑහීමකට පත් නොවූ නිසා මම තිර රචනයක් ලිව්වෙමි (වර්ග කිරීම) screenකවුළු චලනය වන හැසිරීම අනුකරණය කරයි tmux.

එය ගමනාන්තය කවුළුව අංකය යන්න හඳුනාගන්නා කුඩා කුඩා කවුළු අංකය හෝ විශාල 1-N incrementally සිට විශාලතම කවුළුව අංකය වඩා, එසේ නම්, ඒ nudges අයිතිය හෝ ඉතිරි සියලුම අනෙකුත් කවුළු (පිළිවෙළින්) සහ නැවත සංඛ්යා ඔවුන් . මෙය move-windowවිධානය සමඟ සිදු කෙරේ .

කවුළුව අංකය නම් වන අතර ඒ අතර කුඩා / විශාලතම අංක (එනම්, අනුමාන, දැනට පවතින කවුළුව අංකය තරග), එය හුදෙක් ඔවුන්ට හුවමාරු ගිවිසුම් swap-windowවිධාන.

පිටපත මෙන්න:

#!/usr/bin/env bash
# Filename: ~/tmux-windowswap
# Function that provides improved window-swapping functionality for tmux
maxwin="$(tmux list-windows | cut -d: -f1 | sort -nr | head -n1)"
minwin="$(tmux list-windows | cut -d: -f1 | sort -n | head -n1)"
# Error checking
if [[ -z $2 ]]; then
  echo "Error: No window specified."
elif [[ ! $2 =~ ^-?[0-9]+$ ]]; then
  echo "Error: Bad window number specified."
# Bigger than everything; slide it to the far right, then renumber
elif [[ $2 -gt $maxwin ]]; then
  i=0 # intialize
  tmux move-window -t:$(($maxwin+1))
  winlist="$(tmux list-windows | cut -d: -f1 | xargs)"
  for n in $winlist; do
    i=$(($i+1)) # increment
    tmux move-window -s:$n -t:$i
  done
# Smaller than everything; slide it to the far left, then renumber
elif [[ $2 -lt $minwin ]]; then
  tmux move-window -t:0
  winlist=($(tmux list-windows | cut -d: -f1 | xargs | rev))
  i=${#winlist[@]} # initialize; start at highest indexed window
  for n in ${winlist[@]}; do
    tmux move-window -s:$n -t:$i
    i=$(($i-1)) # decrement
  done
# In-between; just a simple swap
else
  tmux swap-window -t:$2
fi

ඉන්පසු, මෙම සරල යතුරු බන්ධනය ඔබගේ .tmux.conf:

bind m command -p "Send window to:"  "run -b '~/tmux-windowswap #I %1'"

සටහන : screenකවුළු මාරු කිරීමේ හැසිරීම මනාව අනුකරණය කිරීම සඳහා, ඔබ කවුළුවක් පවතින කවුළු අංකයකට ගෙන යන විට, එය එම කවුළුවේ ස්ථානය ගත යුතු අතර අනෙක් සියලුම කවුළු දකුණට තල්ලු කර ඇත. එසේ කිරීම සඳහා මෙම පිටපත වෙනස් කිරීම තරමක් සරල වනු ඇත.


0

විධාන රේඛාව අවශ්‍ය නොවේ (එය Ctrl+ bසහ පසුව :)

ඔබේ කවුළු වටා ගෙනයන්න

Ctrl+ b+:

ඉන්පසු නව (නිදහස්) කවුළු අංකය ඇතුළත් කර පහර දෙන්න Enter

දැන් නොමිලේ කවුළු අංකයක් තිබේ නම්, කවුළුවක් නැවත සකස් කිරීමට Ctrl+ b+ භාවිතා කරන්න ..

(ඉඟිය: ඔබ කුමන ධාවන පථය ලිහිල් කරන්නේ නම් ඔබේ කවුළු Ctrl+ b+ සමඟ ,නම් කරන්න)

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.