Tente
rlwrap -c patch -i patch.diff
O rlwrap tenta adicionar funcionalidade readline aos comandos que não o possuem. Existem algumas alternativas para o rlwrap. Se você é um usuário zsh, você também pode dar uma olhada em Usando o editor de linhas do zsh para envolver subprocessos e em /usr/share/zsh/functions/Misc/nslookup
para um exemplo de como adicionar o editor de linhas zsh a um comando.