tmux에서 동적으로 명명된 버퍼 내보내기

tmux에서 동적으로 명명된 버퍼 내보내기

tmux scollback을 iTerm2 및 내가 선택한 키맵과 함께 사용하는 데 지쳤습니다. 버퍼를 텍스트 파일로 덤프할 수 있다는 것을 깨달은 후에 이것이 더 이상 필요하지 않거나 특히 바람직하지 않다는 것을 깨달았습니다. 이 효과를 달성하기 위한 현재 바인딩은 다음과 같습니다.

bind B capture-pane -S -999000 \; save-buffer ~/.tmux/buffers/filename

물론 이렇게 하면 filename버퍼를 덤프할 때마다 충돌이 발생합니다. 버퍼 명명 형식 $PANE-NAME_YYYY-MM-DD_HH:MM:SS(날짜와 시간은 현재 덤프의 날짜와 시간임)이 더 좋습니다.

나는 그것을 조사했고 tmux(1)클라이언트 활동과 관련된 시간을 포함하여 사용 가능한 몇 가지 변수를 기록하지만 성공적으로 내 파일 이름으로 확장할 수 없으며 .tmux.conf어쨌든 그것이 내가 찾고 있는 것이 아니라고 생각합니다.

나는 분명히 뭔가를 놓치고 있다고 확신하지만, 이 시점에서 나는 그것을 찾는 데 많은 시간을 보냈고 그것을 인식할 수 있을지 확신할 수 없습니다.했다보다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

(alias) 지시문과 몇 가지 추가 참조를 사용하여 tmux이를 쉘 명령으로 실행하면 됩니다.run-shellrun

bind B run "tmux capture-pane -S -999000; tmux save-buffer ~/.tmux/buffers/\"$(date +%d%m%y)\""

이렇게 하면 버퍼 출력 이 ~/.tmux/buffers/240115.date

사용법에 관하여 pane_title: 매뉴얼 페이지의 형식 섹션을 읽으면 다음과 같이 명시되어 있습니다.

일부 명령은 형식 매개변수와 함께 -F 플래그를 허용합니다.

불행히도 save-buffer이것은 그러한 명령 중 하나가 아닙니다.

그러나 다음을 list-panes사용하여 이를 무시하고 현재 창 이름을 검색할 수 있습니다.

bind B run "tmux capture-pane -S -999000; tmux save-buffer ~/.tmux/buffers/\"$(tmux list-panes -F '#{window_name}')\"_\"$(date +%d%m%y)\""

예를 들어, 다음을 반환합니다: ~/.tmux/buffers/zsh_240115.

관련 정보