tmux 세션의 모든 롤백을 파일에 쓰는 방법은 무엇입니까?
capture-panel
현재 화면을 잡을 수 있지만 전체 스크롤백을 잡을 수는 없습니다.
답변1
간단한 답변을 찾는 사람들을 위해:
- prefix+를 사용한 :다음
capture-pane -S -3000
+를 입력합니다 Return. (-3000
저장하려는 행 수로 바꾸거나-
모든 행으로 바꾸십시오.) 그러면 행이 버퍼에 복사됩니다. - 그런 다음 버퍼를 파일에 저장하려면 prefix+를 다시 사용 :하고
save-buffer filename.txt
+를 입력하면 됩니다 return. (기본적으로 ~/에 파일이 저장됩니다.)
(기본값 은 + Prefix입니다 .)CtrlB
답변2
그리고멀티플렉서1.5. capture-pane
이 명령은 캡처의 시작 및 끝 라인을 허용 -S
하고 -E
지정하며, 기록에서 라인을 지정하는 데 음수 값을 사용할 수 있습니다. 버퍼에 데이터가 있으면 save-buffer
.
.tmux.conf
다음은 파일 이름을 묻는 메시지를 표시하여 모든 것을 마무리하는 바인딩(for)의 예입니다 .
bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
이렇게 하면 (최대) 32768개의 기록 줄과 현재 표시된 줄이 캡처됩니다. 에서 시작하다멀티플렉서1.6에서는 포드의 기록이 32Ki 행(일반적으로 최대 2Gi 행)보다 깊은 경우 INT_MIN만큼 낮은 숫자를 사용할 수 있습니다. 다음으로 시작됨멀티플렉서capture-pane -S -
2.0, "역사의 시작부터"를 의미하는 데 사용할 수 있습니다 (즉, 하드 코딩된 큰 음수가 없음).
참고: 저장된 파일의 줄 수가 항상 창의 기록 제한에 높이를 더한 값과 같지는 않습니다.
창의 기록 버퍼가 가득 차면멀티플렉서하나의 행만 삭제하는 대신 가장 오래된 10%의 행을 삭제합니다. 이는 창의 유효 기록 깊이가 구성된 제한의 90%만큼 낮을 수 있음을 의미합니다.
답변3
(tmux 접두사 키를 사용하는 대신) 명령줄에서 실행할 수 있는 작업을 원한다면 다음을 실행해 보세요.
tmux capture-pane -pS -1000000
실행했는데 아무 일도 하지 않는 것 같다면 화면에 표시된 내용을 그대로 출력하기 때문에 똑같이 보이기 때문입니다.
물론 파일로 전송할 수도 있습니다.
tmux capture-pane -pS -1000000 > file.out
tmux
매뉴얼 페이지를 참조 하여 capture-pane
수행할 수 있는 더 많은 작업을 검색하세요(예: 색상을 유지하려는 경우 이스케이프 시퀀스 캡처 또는 새 줄이 포함되지 않은 경우 여러 시각적 줄을 연결하려는지 지정 등).
답변4
나는 표준 키 바인딩을 가지고 있는데,@jasonwryan의 답변그리고 구성에서 아무것도 변경하지 않았습니다.
아래는 나에게 효과가 있었던 레시피입니다. tmux 구성을 변경하지 않고 일부 롤백을 빠르게 복사하려는 경우 이 방법이 유용할 수 있습니다.
Prefix== Ctrl+b내 tmux(tmux 1.6, debian 7)에서.
- 선택 모드 입력: Prefix+ [.
- 선택 시작: Space.
- vim 탐색을 사용하여 필요한 텍스트를 강조 표시합니다. 예를 들어 화살표 키를 사용하거나 키를 눌러 gg출력 기록의 시작 부분으로 이동합니다.
- 실제로 내부 클립보드에 복사를 사용합니다 Enter. 복사 모드가 종료됩니다.
- vim을 사용하여(아마도 새 tmux 탭에서) 파일을 열고 Prefix+를 사용하기 전에 복사한 내용을 붙여넣습니다 ].
- 그런 다음 필요에 따라 파일을 분류하거나 출력을 사용할 수 있습니다.