Bir tmux oturumundaki tüm geri izleme dosyalarını bir dosyaya nasıl yazabilirim?
capture-panel Geçerli ekranı kaplayabilir, ancak geri kaydırma işleminin tamamını değil.
Bir tmux oturumundaki tüm geri izleme dosyalarını bir dosyaya nasıl yazabilirim?
capture-panel Geçerli ekranı kaplayabilir, ancak geri kaydırma işleminin tamamını değil.
Yanıtlar:
Bu history-limit, sizin için belirlediğiniz değere bağlıdır .tmux.conf- varsayılan değer 2000'dir; Daha fazla fotoğraf çekmek istiyorsanız, satır sayısını açıkça ayarlamanız gerekir.
Geri kaydırma işleminin tamamını yakalamak için, kopya moduna girin, geri kaydırma işleminin tamamını seçin ve arabelleğe kopyalayın, ardından dosyanızı yapıştırın.
Bunu nasıl başaracağınız mode-keys, tercih ettiğiniz seçeneğe, vi veya emacs'e bağlı olacaktır . man tmuxilgili tuşları tanımlayan faydalı bir tabloya sahiptir.
Bunu .tmux.confbasitleştirmek için içimde aşağıdakiler var :
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
Tam kaydırma işlemini yakalamak için işlem şöyledir:
PrefixEsc : kopyalama moduna girmek için
v : görsel seçime başlamak için (ekranın altında olduğunuzu varsayarak)
gg : geri kaydırmadaki her şeyi yakalamak için
y : Tamponun içine yerleştirmek için
Prefixc : başka bir tmux penceresi aç
vim scrollback.txt
i : vim'deki ekleme moduna gir
Prefixp : dosyaya yapıştır
Tamponun,xsel bunun yararlı olabileceği geçici bir dosyaya nasıl kopyalanacağını açıklayan bir cevap da var .
:set pasteVim'de kullanırsanız , vim otomatik girintiler veya herhangi bir insert tabanlı keybinder eklemeyi göz ardı eder.
.tmux.conf...
Basit bir cevap arayanlar için, sadece prefix+ tuşlarını kullanın :, sonra capture-pane -S -3000+ yazın return( 3000kaydetmek istediğiniz çok satırla değiştirin .) Bu satırları ara belleğe kopyalar.
Sonra, sadece kullanmak, bir dosyaya tampon kaydetmek için prefix+ :tekrar ve yazın save-buffer filename.txt+ returnyerine filenamedilediğiniz ile.
(Varsayılan prefixolarak ctrl + b.)
save-buffer filename.txtDosyayı /değil pwd(mevcut dizin) içine kaydediyor gibi görünüyor . Bunun yerine, mutlak bir dosya yolu
İle tmux 1.5, capture-panekomut kabul -Sve -Eyakalama başlangıç ve bitiş çizgileri belirtmek için; negatif değerler geçmişe ait satırları belirtmek için kullanılabilir. Verileri bir arabellekte aldıktan sonra, onu kaydedebilirsiniz save-buffer.
İşte her .tmux.confşeyi dosya adı için bir bilgi istemi ile tamamlayan (uygun ) bir bağlayıcı :
bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Bu (en fazla) 32768 tarih satırını ve şu anda görüntülenen satırları yakalar. İle başlayarak tmux senin bölmesi 32Ki hatları (genellikle 2Gi hatlarına kadar) daha derin bir geçmişi vardır eğer 1.6, sen INT_MIN aşağı numaralarını kullanabilirsiniz. Tmux 2.0'dan başlayarak, capture-pane -S -“tarihin başlangıcından başla” (yani büyük, kodlanmış negatif sayılar yok) anlamına gelir.
Not: Kaydedilen dosyadaki satır sayısı her zaman bölmenin geçmiş sınırına ve yüksekliğine eşit olmaz.
Bir bölmenin geçmiş arabelleği dolduğunda, tmux , yalnızca bir satırı atmak yerine satırların en eski% 10'unu atar. Bu, bölmenin etkin tarih derinliğinin bazen yapılandırılan limitinin% 90'ı kadar düşük olacağı anlamına gelir.
tmux server-info | head -1versiyonunuzu görmek için kullanabilirsiniz . tmux -Vtmux * 1.4 ve sonrasında çalışır.
[PrefixKey] : , tmux komut satırına ulaşmak için bir işlem yapın ve ardından tüm satırı yapıştırın, o zaman sadece [Prefix] P büyük P olur ve gitmeniz iyi olur.
@ Jasonwryan'ın cevabından biraz farklı gibi görünen ve config dosyasındaki hiçbir şeyi değiştirmeyen standart anahtar bağlantılarım vardı .
Aşağıda benim için çalıştı tarifi. Belki tmux config'de herhangi bir değişiklik yapmak istemiyorsanız ve sadece geri kaydırma işleminin bir kısmını hızlıca kopyalamak istiyorsanız, onu faydalı bulacaksınız.
Prefix== Ctrl+btmux'umda (tmux 1.6, debian 7).
Komut satırından çalıştırabileceğiniz bir şey istiyorsanız (tmux önek tuşlarınızı kullanmak yerine), çalıştırmayı deneyin:
tmux capture-pane -pS -1000000
Eğer onu çalıştırırsanız ve hiçbir şey yapmıyor gibi göründüğü için, tam olarak ekranınızdakileri gösterdiği için aynı görünüyor.
Elbette bir dosyaya da aktarabilirsiniz:
tmux capture-pane -pS -1000000 > file.out
tmuxKılavuz sayfasına bakın ve capture-paneyapabileceğiniz daha fazla şey için arama yapın (rengi korumak istemeniz durumunda kaçış dizilerini yakalama veya yeni bir çizgi içermediğinde birden fazla görsel çizginin birleştirilmesini isteyip istemediğinizi belirtme gibi)
İşte bunu sağlayan bir tmux eklentisi:
https://github.com/tmux-plugins/tmux-logging
Kurduktan sonra tüm kaydırma izini ile kaydedin prefix + alt-shift-p.
Bir tmux oturumundaki tüm geri izleme dosyalarını bir dosyaya nasıl yazabilirim?
Bunu ~ / .tmux.conf dosyasında kullanıyorum ve şimdi çalışan kabuğumdan çıktığımda, bölme çıktısı benzersiz bir günlük dosyasına kaydedildi:
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'