Como estender colunas quando exportar COLUMNS não funciona

2

UPDATE: parece estar relacionado ao GNU screen e termcap : veja novas dicas na parte inferior.

Estou executando o Bash 4.3 em um pequeno dispositivo incorporável e tendo um problema em convencê-lo de que tenho mais de 80 colunas no meu terminal.

Se eu digitar um comando que passa das 80 colunas, em vez de continuar (o melhor caso) ou passar para a próxima linha (aceitável, mas não ideal), ele começa a colocar novos caracteres na mesma linha em que estou digitando.

Se eu correr

set | grep COLUMNS

Eu vejo COLUMNS=80 . Mas se eu tentar aumentar isso

export COLUMNS=200

não há mudança de comportamento.

A receita mencionada aqui de usar shopt -s checkwinsize não ajudou.

Vários detalhes que poderiam possivelmente ser relevantes:

  • O computador que estou conectando de é o OS X 10.11.6.
  • Meu terminal é iTerm2 (Build 3.1.beta.4).
  • Eu tenho aberto uma nova janela de terminal a cada vez para garantir novas configurações de terminal.
  • o dispositivo incorporável é um C.H.I.P. Pro.
  • O C.H.I.P. Pro está executando o Debian:
    Linux chip 4.4.30-pro #1 SMP Wed Dec 21 01:50:18 UTC 2016 armv7l GNU/Linux
  • Bash é 4.3.30, compilado para ARM (claro):% GNU bash, version 4.3.30(1)-release (arm-unknown-linux-gnueabihf)
  • Estou usando a tela GNU para conectar-me ao C.H.I.P. Pro.
  • Eu desativei meu ~/.screenrc para obter as configurações padrão.
  • A saída de shopt é:

    autocd          off
    cdable_vars     off
    cdspell         off
    checkhash       off
    checkjobs       off
    checkwinsize    on
    cmdhist         on
    compat31        off
    compat32        off
    compat40        off
    compat41        off
    compat42        off
    complete_fullquote      on
    direxpand       off
    dirspell        off
    dotglob         off
    execfail        off
    expand_aliases  on
    extdebug        off
    extglob         off
    extquote        on
    failglob        off
    force_fignore   on
    globstar        off
    globasciiranges off
    gnu_errfmt      off
    histappend      on
    histreedit      off
    histverify      off
    hostcomplete    on
    huponexit       off
    interactive_comments    on
    lastpipe        off
    lithist         off
    login_shell     on
    mailwarn        off
    no_empty_cmd_completion off
    nocaseglob      off
    nocasematch     off
    nullglob        off
    progcomp        on
    promptvars      on
    restricted_shell        off
    shift_verbose   off
    sourcepath      on
    xpg_echo        off
    

ATUALIZAÇÕES:

  1. Acabei de descobrir que usar o comando screen s (C-a W) me fornece a mensagem "Seu termcap não especifica como alterar a largura do terminal para 132".

  2. No entanto, usar width 300 , width -w 300 e width -d 300 não resolve o problema.

por iconoclast 30.06.2017 / 21:42

1 resposta

0

Eu usaria resize : ele atualiza as configurações de stty (que é o que é perdido ao conectar-se diretamente ao dispositivo incorporado - e também o que é necessário para screen ).

resize é um utilitário de linha de comando (desenvolvido com xterm ), que verifica o tamanho real da tela (usando sequências de escape VT100) e atualiza stty para refletir esse tamanho, bem como comandos de impressão que podem ser executados para atualizar variáveis de ambiente.

A alteração de $COLUMNS em screen não é muito eficaz, pois screen "sabe" o tamanho da tela do terminal e interferirá em programas que assumem tamanhos diferentes.

    
por 30.06.2017 / 21:53