#!/bin/zsh tmux capture-pane -S -9999 had_prompt=0 back=() lines=() tmux save-buffer - | cat | while read line; do case $line in ($~1) had_prompt=1;; ('') if (($had_prompt)); then continue else lines+=$line fi ;; (*) if (($had_prompt)); then if ((${#lines})); then back+=${(F)lines} fi lines=( $line ) had_prompt=0 else lines+=$line fi ;; esac done if [[ -n "$2" ]]; then print -r - $back[$2] else print -rl - $lines fi