සියලුම tmux අනුචලන ගොනුවකට ලියන්න


227

Tmux සැසියක ඇති සියලුම අනුචලන ලිපිගොනු ගොනුවකට ලිවිය හැක්කේ කෙසේද?

capture-panel වත්මන් තිරය අල්ලා ගත හැකිය, නමුත් සම්පූර්ණ අනුචලනය නොවේ.

Answers:


59

මෙය history-limitඔබගේ ඔබ විසින් සකසා ඇති වටිනාකම මත රඳා පවතී .tmux.conf- පෙරනිමිය 2000; ඔබට තවත් ග්‍රහණය කර ගැනීමට අවශ්‍ය නම්, ඔබට පැහැදිලිවම පේළි ගණන සැකසිය යුතුය.

සම්පූර්ණ අනුචලනය ග්‍රහණය කර ගැනීම සඳහා, පිටපත් ප්‍රකාරය ඇතුළත් කරන්න, සම්පූර්ණ අනුචලනය තෝරන්න, එය බෆරයට යොදන්න, ඉන්පසු එය ඔබගේ ගොනුවට අලවන්න.

ඔබ මෙය ඉටු කරන්නේ කෙසේද යන්න mode-keysඔබ කැමති විකල්පය, vi හෝ emacs මත රඳා පවතී . man tmuxඅදාළ යතුරු විස්තර කරන ප්‍රයෝජනවත් වගුවක් ඇත.

.tmux.confමෙය සරල කිරීම සඳහා මගේ පහත සඳහන් දෑ ඇත :

unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

සම්පූර්ණ අනුචලනය අල්ලා ගැනීමේ ක්‍රියාවලිය පහත පරිදි වේ:

PrefixEsc : පිටපත් ප්‍රකාරයට ඇතුළු වීමට

v : දෘශ්‍ය තේරීම ආරම්භ කිරීමට (ඔබ දැනටමත් තිරයේ පතුලේ ඇතැයි උපකල්පනය කරන්න)

gg : අනුචලන පිටුවේ ඇති සියල්ල අල්ලා ගැනීමට

y : එය බෆරයට දැමීම

Prefixc : තවත් tmux කවුළුවක් විවෘත කරන්න

vim scrollback.txt

i : ඇතුළු කිරීමේ මාදිලිය vim ලෙස ඇතුළත් කරන්න

Prefixp : ගොනුවට අලවන්න

ප්‍රයෝජනවත් විය හැකි තාවකාලික ගොනුවකට බෆරය පිටපත්xsel කරන්නේ කෙසේද යන්න විස්තර කරන පිළිතුරක් ද මෙහි ඇත.


2
මෙය වඩාත්ම ගැටළු සහගතය… Vim හි ඇතුළු කිරීමේ මාදිලියට ඇලවීම සියලු ආකාරයේ ගැටලු ඇත, උදා: ඔබ ස්වයංක්‍රීය ඉන්ඩෙන්ටේෂන් සක්‍රීය කර ඇති විට. මගේ තෘප්තියට අනුව වැඩ කිරීමට මට මෙය කිසි විටෙකත් ලැබුණේ නැත.
කොන්රාඩ් රුඩොල්ෆ්

14
ඔබ :set pastevim හි භාවිතා කරන්නේ නම් , ස්වයංක්‍රීය ඉන්ඩෙන්ටේෂන් හෝ ඇතුළු කිරීම් මත පදනම් වූ යතුරු බැඳීම් එකතු කිරීම vim නොසලකා හරිනු ඇත.
tlunter

ලස්සන ඉඟියක්!
jasonwryan

පෙරනිමි යතුරු බන්ධන සමඟ මෙය කළ හැකිද?
daveloyall

avdaveloyall ඇත්ත වශයෙන්ම, මම මගේ ඇතුළත් කළ යතුරුපුවරු විකල්ප භාවිතා නොකරන්න .tmux.conf...
jasonwryan

282

සරල උත්තරයක්, හුදෙක් භාවිතය සඳහා බලා අයට prefix+ :, එසේ නම් ටයිප් capture-pane -S -3000+ return(ආදේශ 3000මෙම පිටපත් එම ආරක්ෂණ රේඛාවන් ඔබ බේරා ගැනීමට කැමතියි කෙසේ වෙතත් බොහෝ රැහැන් සමග.).

එසේ නම්, ගොනුව, හුදෙක් භාවිතා කිරීම ප්රේරක බේරා ගැනීමට prefix+ :නැවත, සහ ටයිප් save-buffer filename.txt+ returnවෙනුවට, filenameඔබ කැමති ඕනෑම දෙයක් සමග.

(පෙරනිමියෙන් prefixවේ ctrl + b.)


16
save-buffer filename.txt(වත්මන් නාමාවලියෙහි) /නොව ගොනුව සුරකින බවක් පෙනේ pwd. ඒ වෙනුවට, මම නිරපේක්ෂ ලිපිගොනු මාර්ගයක් ලබා දුන් අතර එය චමත්කාරජනක ලෙස ක්‍රියා
කළෙමි

20
<<amount-of-buffer-lines-you-want-to-save>> ඉදිරිපිට MINUS බව අමතක නොකරන්න
යොර්ඩන් ජෝර්ජිව්

11
මෙහි හොඳම පිළිතුර මෙයයි. ඔයාට බොහෝම ස්තූතියි.
ජෙසී ඇට්කින්සන්

7
ඔව්, ඔබ දිනයි. මෙය ඉහළම පිළිතුර විය යුතුය.
wordsforthewise

2
+ n> 1 ඉහළට නැගීමට පිවිසීමෙන් පසු, මෙම පිළිතුර මට ප්‍රයෝජනවත් වූ අවම වශයෙන් දෙවන අවස්ථාව මෙය බව පෙනේ. XD
L0j1k

165

සමග tmux 1.5, එම capture-paneවිධානය පිළිගන්නා -Sහා -Eඅල්ලා ගැනීම පිළිබඳ ආරම්භක හා අවසාන පේළි නියම කිරීමට, ඉතිහාසයේ රේඛා නියම කිරීමට negative ණ අගයන් භාවිතා කළ හැකිය. ඔබ දත්ත බෆරයක ඇති පසු, ඔබට එය සුරැකිය හැක save-buffer.

.tmux.confලිපිගොනු නාමය සඳහා විමසුමක් සහිතව ඒ සියල්ල ආවරණය කරන උදාහරණ බන්ධනයක් (සුදුසු ) මෙන්න :

bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'

මෙය ඉතිහාසයේ පේළි 32768 ක් සහ දැනට ප්‍රදර්ශනය කර ඇති රේඛා ග්‍රහණය කරයි. Tmux 1.6 සමඟ ආරම්භ කර , ඔබේ කවුළුවෙහි 32Ki රේඛාවලට වඩා ගැඹුරු ඉතිහාසයක් තිබේ නම් (සාමාන්‍යයෙන් 2Gi රේඛා දක්වා) ඔබට INT_MIN දක්වා අංක භාවිතා කළ හැකිය. දී ආරම්භ tmux 2.0, ඔබ භාවිතා කළ හැකිය capture-pane -S -, "ඉතිහාසයේ මුල සිට ආරම්භ" එයින් අදහස් කරන්නේ (එනම් කිසිදු විශාල, දෘඪ-කේතනය සෘණ සංඛ්යාවක්).


සටහන: සුරකින ලද ගොනුවේ ඇති පේළි ගණන සෑම විටම කවුළුවෙහි ඉතිහාස සීමාවට සහ එහි උසට සමාන නොවේ.

කවුළුවක ඉතිහාස බෆරය පිරී ඇති විට, එක් පේළියක් පමණක් ඉවතලීම වෙනුවට tmux පැරණිම 10% පේළි ඉවතලයි . මෙයින් අදහස් කරන්නේ කවුළුවක history ලදායී ඉතිහාස ගැඹුර සමහර විට එහි වින්‍යාසගත සීමාවෙන් 90% ක් තරම් අඩු වනු ඇති බවයි.


පිළිතුරට ස්තූතියි… නමුත් මගේ tmux අනුවාදය පිළිගන්නේ -Sනැත capture-pane(එය 1.3-2 ලෙස පෙනේ, එය එසේ වුවත් dpkg, මට අනුවාද අංකයක් පෙන්වීමට tmux ලබා ගන්නේ කෙසේදැයි මට සිතාගත නොහැක…)
ඩේවිඩ් වොල්වර්

1
ඔබ බොහෝ විට ධාවනය කරන්නේ tmux 1.3; tmux server-info | head -1ඔබේ අනුවාදය බැලීමට ඔබට බොහෝ විට භාවිතා කළ හැකිය . tmux -Vtmux * 1.4 සහ ඊට පසුව ක්‍රියා කරයි.
ක්‍රිස් ජොන්සන්

1
මෙය මා විසින් සොයාගෙන ඇති වඩාත්ම ප්‍රයෝජනවත් tmux විධාන වලින් එකකි.
කෙනී

1
ඔබ දැනටමත් ඔබේ tmux කවුළුව තුළ සිටින අතර නැවත ආරම්භ කිරීමට අවශ්‍ය නොවන්නේ නම් [PrefixKey] : tmux විධාන රේඛාවට පිවිසීමට කරන්න, ඉන්පසු මුළු පේළියම අලවන්න, එවිට ඔබ [Prefix] P එය කරන්නේ ප්‍රාග්ධන P වන අතර ඔබ යන්න හොඳයි.
අලි

1
Tmux ස්වාරක්ෂක ගොනුවේ ගොනුවේ නම ඉල්ලීමට වඩා ස්වයංක්‍රීයව ජනනය කළ හැකිද? එබැවින් ඔබ කෙටිමඟ ධාවනය කරන සෑම දෙයක්ම වෙනත් ගොනුවකට සුරකිනු ඇත, උදාහරණයක් ලෙස ගොනු නාමයේ වත්මන් කාලය සමඟ.
user779159

33

ඔබට විධාන රේඛාවෙන් ධාවනය කළ හැකි යමක් අවශ්‍ය නම් (ඔබේ tmux උපසර්ග යතුරු භාවිතා කරනවා වෙනුවට) ධාවනය කිරීමට උත්සාහ කරන්න:

tmux capture-pane -pS -1000000

ඔබ එය ධාවනය කර එය කිසිවක් නොකරන බව පෙනේ නම්, එයට හේතුව එය ඔබගේ තිරයේ ඇති දේ හරියටම ප්‍රතිදානය කිරීමයි, එබැවින් එය සමාන වේ.

ඇත්ත වශයෙන්ම, ඔබට එය ගොනුවකට නල කළ හැකිය:

tmux capture-pane -pS -1000000 > file.out

බලන්න tmuxman පිටුව හා සෙවීමට capture-pane(නඩුවේ ග්රහණ පලා අනුක්රමය මෙන් ඔබ වර්ණ ආරක්ෂා කිරීමට අවශ්ය නම්, හෝ ඔබ විසින් ඔවුන් නව රේඛාවක් අඩංගු නොවන විට බහු දෘශ්ය රැහැන් එකතු කිරීමට අවශ්ය දැයි නියම) ඔබට කළ හැකි තවත් දේවල් සඳහා


1
මෙය ඉතා ප්‍රයෝජනවත් වේ, විශේෂයෙන් පිළිගත් පිළිතුර තවදුරටත් ක්‍රියාත්මක නොවන බැවින්.
piojo

මෙම -pඉතා tmux බෆරය stdout කිරීමට තර්කය ප්රතිදානයන් වෙනුවට.
palswim

22

මට සම්මත යතුරු බන්ධන ඇති අතර එය ason ජේසන්ව්රියන්ගේ පිළිතුරට වඩා ටිකක් වෙනස් වූ අතර වින්‍යාසයේ කිසිවක් වෙනස් නොවීය.

පහත දැක්වෙන්නේ මා වෙනුවෙන් වැඩ කළ වට්ටෝරුවයි. ඔබට tmux වින්‍යාසයේ කිසිදු වෙනසක් කිරීමට අවශ්‍ය නැතිනම් සමහර අනුචලන ඉක්මනින් පිටපත් කිරීමට අවශ්‍ය නම් ඔබට එය ප්‍රයෝජනවත් වනු ඇත.

Prefix== Ctrl+bමගේ tmux හි (tmux 1.6, debian 7).

  1. තෝරාගත් මාතය ඇතුළත් කරන්න: Prefix+ [.
  2. තේරීම ආරම්භ කරන්න : Space.
  3. Vim සංචලනය භාවිතයෙන් අවශ්‍ය පෙළ ඉස්මතු කරන්න (නිදසුනක් ලෙස, ggප්‍රතිදාන ඉතිහාසයේ ආරම්භයට ළඟා වීමට ඊතල යතුරු හෝ ඔබන්න ).
  4. භාවිතයෙන් අභ්‍යන්තර ක්ලිප් පුවරුවේ පිටපත් කරන්න Enter. ඔබ පිටපත් ප්‍රකාරයෙන් ඉවත් වනු ඇත.
  5. Vim භාවිතා කර ඕනෑම ගොනුවක් විවෘත කරන්න (බොහෝ විට නව tmux පටිත්තෙහි) සහ Prefix+ භාවිතා කිරීමට පෙර ඔබ පිටපත් කළ අන්තර්ගතය අලවන්න ].
  6. එවිට ඔබට එම ගොනුවේ පූසා කරන්න හෝ ඔබට අවශ්‍ය ආකාරයට ප්‍රතිදානය භාවිතා කළ හැකිය.

මගේ tmux ඉමාක්ස් මාදිලියේ පවතින බව නිරාකරණය කිරීමට මිනිසා tmux මට උදව් කළේය, එබැවින් ඉහත යතුරු බන්ධන කිසිවක් ක්‍රියාත්මක නොවීය. man tmux, නැවතත්, භාවිතා කළ යුතු දේ වර්ග කිරීමට මට උදව් කළේය. නමුත් මා කළ ලොකුම වැරැද්ද නම්, මම අන්තර්ගතය සුරකින ලද ධාරකයා මම tmux ධාවනය කරන ධාරකයා නොවීමයි, එබැවින් මම වැරදි ධාරකයේ සුරකින ලද ගොනුව සොයමින්
සිටියෙමි

15

මෙය සක්‍රීය කරන tmux ප්ලගිනයක් මෙන්න:

https://github.com/tmux-plugins/tmux-logging

ඔබ එය ස්ථාපනය කිරීමෙන් පසුව, සම්පූර්ණ අනුචලනය සමඟ සුරකින්න prefix + alt-shift-p.


6

මෙය සැබවින්ම ඉතා පහසුය. විධානය මාදිලිය, මාධ්ය විසින් ඇතුලත් කරන්න prefix keyනම් :. එසේ කරන්නේ capture-pane -S -<line number you want to dump> නම්save-buffer <filepath>

එම ගොනුවේ සියලුම අනුචලන ප්‍රතිදානය අඩංගු වේ. ආරක්ෂිත හේතුවක් නිසා ඔබ පසුව බෆරය මකා දැමිය යුතුය.


3

Tmux සැසියක ඇති සියලුම අනුචලන ලිපිගොනු ගොනුවකට ලිවිය හැක්කේ කෙසේද?

මම මෙය මගේ ~ / .tmux.conf හි භාවිතා කරමි , දැන් මම මගේ ධාවන කවචයෙන් පිටවන විට, කවුළු ප්‍රතිදානය අද්විතීය ලොග් ගොනුවකට සුරකිනු ඇත:

set -g remain-on-exit
set-hook pane-died 'capture-pane -S - -E - ; save-buffer "$HOME/logs/tmux/tmux-saved.#{host_short}-#{session_id}:#{window_id}:#{pane_id}-#{pane_pid}-#{client_activity}.log"; delete-buffer; kill-pane'                        
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.