Yanıtlar:
tmux
Geçerli pencerenin geçmiş arabelleğini aramak için girmek için Ctrl- tuşuna basın .b [copy mode
Eğer emacs tuş bağları (varsayılan) basın kullanıyorsanız Ctrl- so zaman için basın aramak için dizeyi yazın Enter. nAynı dizgiyi tekrar aramak için basın . Geriye doğru arama yapmak için Shift- düğmesine basın n. Çıkmak için Escapeiki kez basın copy mode
. Ctrl- ' ryi ters yönde aramak için kullanabilirsiniz . tmux
Klavyenin kontrolünün kontrol altında olduğundan beri copy mode
, Ctrl- ayardan sbağımsız olarak çalışır stty ixon
( stty -ixon
Bash'de ileri aramaları etkinleştirmek için sahip olmayı severim ).
Vi tuşunu bağlama kullanıyorsanız ( Ctrl- b:set-window-option -g mode-keys vi
), tuşuna basın, /sonra aranacak dizeyi yazın ve tuşuna basın Enter. nAynı dizgiyi tekrar aramak için basın . Emacs modunda olduğu gibi geriye doğru arama yapmak için Shift- düğmesine basın n. Çıkmak için qiki kez basın copy mode
. ?Ters yönde aramak için kullanabilirsiniz .
İçinde görüntülenen bir şeye göre bir pencereye geçmek istiyorsanız (bu, aynı zamanda pencere adlarını ve başlıkları da içerir, ancak tarihçeyi içermez), (birden fazla pencere açıkken başlayarak) tuşuna basın Ctrl- b fsonra aranacak dizeyi yazın ve tuşuna basın Enter. Eğer bulunursa, o metni içeren bir pencereye geçeceksiniz. Birden fazla pencere eşleşirse, aralarından seçim yapabileceğiniz bir liste görürsünüz.
EDITOR
veya VISUAL
) istediğiniz stile ayarlamak daha basit olabilir tmux
.
set-window-option -g mode-keys vi
sağladım .tmux.conf
. Ancak çevre değişkeni alternatifini merak ediyordum ve işe yaramadı. Bir kabuk ortam değişkeni mi, yoksa conf dosyasında ayarlanması gereken tmux ortam değişkeni mi?
VISUAL=vi tmux
Kopyalama moduna girin ve tek seferde aramaya başlayın
bind-key / copy-mode \; send-key ?
sadece yapmanıza olanak sağlar:
Ctrl + B /
ve arama terimini yazmaya başlayın.
Bir dosyaya dökümü ve vim kullanın
İşler daha fazla karıştığında, sadece uygun bir düzenleyici kullanmak istiyorum: https://unix.stackexchange.com/questions/26548/write-all-tmux-scrollback-to-a-file
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
Şimdi P
arabellek bir dosyaya döker ve sonra ben sadece:
vim /tmp/tmux
Tmux 2.6'da test edilmiştir.
/tmp/tmux
)?
Ekran günlüğünü görüntülemek / düzenlemek / aramak / kaydetmek için vim'i kullanabilirsiniz, her bash isteminde günlüğü katlayın:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Regex'i isteminize göre ayarlayın, regex'te her ters eğik çizgi için dört ters eğik çizgi kullanın.
Veya vim işlevini ~ / .vimrc içine koyun:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
Ve ~ / .bashrc dizininde, aranacak çok fazla günlük kaydı varsa, bilgi istemine tarih ekleyin. Örneğin
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
İşte bulduğum bir çözüm.
Hedef yolu ve dosya adını da değiştirebilirsiniz:
# Save screen content to file
bind p command-prompt -p 'Save history to:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Eğer basabilirsiniz tmux yapılandırma dosyası yeniden sonra prefix p
benim durumumda Ctrl+a p
değiştirebilirsiniz bind p
tercih anahtar kombinasyonuna.
İlk maden çalışmadı, çünkü bind p
başka bir satırda üzerine yazıyordum , ben de bunu yorumladım.
tmux
(tmux -V
)? Bunun 0.9 sürümünde eklendiğine inanıyorum.