Câu trả lời:
Để tìm kiếm trong tmux
bộ đệm lịch sử cho cửa sổ hiện tại, nhấn Ctrl- b [để nhập copy mode
.
Nếu bạn đang sử dụng các ràng buộc phím emacs (mặc định), hãy nhấn Ctrl- ssau đó nhập chuỗi để tìm kiếm và nhấn Enter. Nhấn nđể tìm kiếm cùng một chuỗi một lần nữa. Nhấn Shift- nđể tìm kiếm ngược. Nhấn Escapehai lần để thoát copy mode
. Bạn có thể sử dụng Ctrl- rđể tìm kiếm theo hướng ngược lại. Lưu ý rằng vì tmux
nó nằm trong sự kiểm soát của bàn phím copy mode
, Ctrl- shoạt động bất kể stty ixon
cài đặt (mà tôi muốn có stty -ixon
để kích hoạt tìm kiếm chuyển tiếp trong Bash).
Nếu bạn đang sử dụng các ràng buộc phím vi ( Ctrl- b:set-window-option -g mode-keys vi
), hãy bấm /rồi nhập chuỗi để tìm kiếm và nhấn Enter. Nhấn nđể tìm kiếm cùng một chuỗi một lần nữa. Nhấn Shift- nđể tìm kiếm ngược như trong chế độ emacs. Nhấn qhai lần để thoát copy mode
. Bạn có thể sử dụng ?để tìm kiếm theo hướng ngược lại.
Nếu bạn muốn chuyển sang một cửa sổ dựa trên một cái gì đó được hiển thị trong đó (cái này cũng bao gồm tên và tiêu đề của cửa sổ nhưng không phải là lịch sử), (bắt đầu với nhiều hơn một cửa sổ mở) nhấn Ctrl- b fsau đó nhập chuỗi để tìm kiếm và nhấn Enter. Bạn sẽ được chuyển sang một cửa sổ chứa văn bản đó nếu nó được tìm thấy. Nếu có nhiều cửa sổ khớp, bạn sẽ thấy một danh sách để chọn.
EDITOR
hoặc VISUAL
) thành kiểu bạn muốn trước khi bắt đầu tmux
.
set-window-option -g mode-keys vi
tôi .tmux.conf
. Nhưng tôi đã tò mò về sự thay thế của môi trường và không thể làm cho nó hoạt động được. Đây có phải là biến môi trường shell hay biến môi trường tmux phải được đặt trong tệp conf không?
VISUAL=vi tmux
Vào chế độ sao chép và bắt đầu tìm kiếm trong một lần
bind-key / copy-mode \; send-key ?
cho phép bạn làm chỉ:
Ctrl + B /
và bắt đầu nhập cụm từ tìm kiếm.
Kết xuất tập tin và sử dụng vim
Khi mọi thứ liên quan nhiều hơn, tôi chỉ muốn sử dụng một trình soạn thảo thích hợp: 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
Bây giờ kết P
xuất bộ đệm vào một tập tin, và sau đó tôi chỉ:
vim /tmp/tmux
Đã thử nghiệm trong tmux 2.6.
/tmp/tmux
)?
Bạn có thể sử dụng vim để xem / chỉnh sửa / tìm kiếm / lưu nhật ký màn hình, gấp nhật ký tại mỗi dấu nhắc bash:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Điều chỉnh regex theo lời nhắc của bạn, sử dụng bốn dấu gạch chéo ngược cho mỗi dấu gạch chéo ngược trong regex.
Hoặc đặt hàm vim trong ~ / .vimrc:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
Và trong ~ / .bashrc thêm ngày vào dấu nhắc, nếu bạn có nhiều nhật ký để tìm kiếm. ví dụ
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Đây là một giải pháp tôi tìm thấy.
Bạn cũng có thể sửa đổi đường dẫn đích và tên tệp:
# 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'
Sau khi tải lại tệp cấu hình tmux, bạn có thể nhấn prefix p
trong trường hợp của tôi Ctrl+a p
Bạn có thể thay đổi bind p
thành tổ hợp phím ưa thích của mình.
Đầu tiên của tôi không hoạt động vì tôi đã ghi đè lên bind p
một dòng khác vì vậy tôi chỉ nhận xét điều đó.
tmux
(tmux -V
)? Tôi tin rằng điều này đã được thêm vào trong phiên bản 0.9.