Indicador de quebra automática de linha Tmux

4

Gostaria de ver rapidamente onde o meu terminal tmux envolve dinamicamente as linhas de saída: Uma linha quebrada atualmente se parece com isso:

This is a very long sentence that did not
fit on one screen line.

Em vez disso, eu gostaria que ele parecesse, por exemplo, assim:

This is a very long sentence that did not
>>> fit on one screen line.

Em vim , usei set breakindentopt sbr=>>> para obter esse efeito. Existe uma opção semelhante para o tmux?

    
por klimpergeist 08.02.2016 / 13:33

1 resposta

2

Eu não sei se isso é possível, mas estaria interessado em uma solução também. Você pode usar o seguinte script bash para simular um comportamento semelhante, mas ele não foi testado, ele pode ser interrompido em casos de uso simples.

#!/usr/bin/env bash

cols=$(tput cols)
colsi=$((${cols} + 1))
wrap='>>> '

$@ | while IFS='' read -r line; do
    while [ ${#line} -gt ${#wrap} ]; do
        echo "${line}" | cut -c-"${cols}"
        line="${wrap}"$(echo "${line}" | cut -c"${colsi}"-)
    done
done

O que esse script faz é passar por cima de seus argumentos ( $@ ) e, em seguida, imprimir uma linha de saída e prefixar a variável $wrap nas seguintes linhas de saída. Ele é independente de tmux e pode ser usado dentro ou fora dele. Armazene o script com um arquivo chamado, por exemplo wrapper e, em seguida, chamá-lo assim:

$ x='This is just a very long silly line, it should show the use case of the wrapper script, that means the only thing this silly text is supposed to do, is to be long enough to be wrapped. Since I dont know what resolution you have on your screen, you might want to extend this line yourself to make sure it is wrapped.'

$ echo "$x"
> This is just a very long silly line, it should show the use case of the wrapper script, that means the only thing this silly text is supposed to do, is to be long enough to be wrapped. Since
> I dont know what resolution you have on your screen, you might want to extend this line yourself to make sure it is wrapped.

$ wrapper echo "$x"
> This is just a very long silly line, it should show the use case of the wrapper script, that means the only thing this silly text is supposed to do, is to be long enough to be wrapped. Since
> >>> I dont know what resolution you have on your screen, you might want to extend this line yourself to make sure it is wrapped.

Observe a diferença da saída entre echo "$x" e wrapper echo "$x" .

    
por 08.02.2016 / 17:09

Tags