답변:
tmux
히스토리 버퍼에서 현재 창 을 검색하려면 Ctrl- b [를 눌러 입력하십시오 copy mode
.
emacs 키 바인딩 (기본값)을 사용하는 경우 Ctrl-를 s누른 다음 검색 할 문자열을 입력하고을 누르십시오 Enter. n같은 문자열을 다시 검색하려면 누릅니다 . 역 검색을하려면 Shift- n를 누르십시오 . 를 Escape두 번 눌러 종료 copy mode
합니다. Ctrl- r를 사용 하여 반대 방향으로 검색 할 수 있습니다 . 이후 있습니다 tmux
에서 키보드의 제어에 copy mode
, Ctrl- s에 관계없이 작품 stty ixon
(내가 같이가 좋아하는 설정 stty -ixon
배쉬에서 검색을 앞으로 수 있도록).
vi 키 바인딩 ( Ctrl- b:set-window-option -g mode-keys vi
)을 사용하는 경우을 누른 /다음 검색 할 문자열을 입력하고을 누릅니다 Enter. n같은 문자열을 다시 검색하려면 누릅니다 . emacs 모드에서와 같이 역 검색을하려면 Shift- n를 누르십시오 . 를 q두 번 눌러 종료 copy mode
합니다. ?역방향으로 검색 하는 데 사용할 수 있습니다 .
창에 표시된 내용 (창 이름과 제목을 포함하지만 기록은 포함하지 않음)을 기준으로 창으로 전환하려면 (여러 창을 열어서 시작) Ctrl-을 b f누른 다음 검색 할 문자열을 입력하고을 누르십시오 Enter. 해당 텍스트가있는 경우 해당 텍스트가있는 창으로 전환됩니다. 둘 이상의 창이 일치하면 선택할 수있는 목록이 표시됩니다.
EDITOR
또는 VISUAL
)를 원하는 스타일 로 설정하는 것이 더 간단 할 수 있습니다 tmux
.
set-window-option -g mode-keys vi
했다 .tmux.conf
. 그러나 환경 변수 대안에 대해 궁금해서 작동하지 못했습니다. 쉘 환경 변수 또는 conf 파일에 설정해야하는 tmux 환경 변수입니까?
VISUAL=vi tmux
복사 모드로 들어가서 한 번에 검색 시작
bind-key / copy-mode \; send-key ?
당신이 할 수 있습니다 :
Ctrl + B /
검색어를 입력하십시오.
파일로 덤프하고 vim 사용
일이 더 복잡해지면 적절한 편집기를 사용하고 싶습니다 : 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
이제 P
버퍼를 파일로 덤프 한 다음
vim /tmp/tmux
tmux 2.6에서 테스트되었습니다.
/tmp/tmux
)?
vim을 사용하여 화면 로그를 보거나 편집 / 검색 / 저장하고 각 bash 프롬프트에서 로그를 접을 수 있습니다.
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
프롬프트에 따라 정규식을 조정하고 정규식의 각 백 슬래시마다 4 개의 백 슬래시를 사용하십시오.
또는 vim 기능을 ~ / .vimrc에 넣으십시오.
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
~ / .bashrc에서 검색 할 로그가 많은 경우 프롬프트에 날짜를 추가하십시오. 예 :
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
여기 내가 찾은 해결책이 있습니다.
대상 경로와 파일 이름도 수정할 수 있습니다.
# 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'
tmux 구성 파일을 다시로드 한 후 prefix p
필자의 경우를 Ctrl+a p
누를 수 있습니다 bind p
. 선호하는 키 조합으로 변경할 수 있습니다 .
첫 번째 광산은 bind p
다른 줄에서 덮어 쓰기 때문에 작동하지 않았으므로 그냥 주석 처리했습니다.
tmux
(tmux -V
) 의 어떤 버전입니까 ? 나는 이것이 0.9 버전에서 추가되었다고 생각합니다.