Por que a tela do macOS não está pegando meu ~ / .terminfo?

1

Eu gostaria de ter Terminfo para o meu trabalho terminal (rxvt-unicode), de modo que quando eu ssh de Linux para macOS, as teclas Home / End e outras funcionam corretamente.

Geralmente, para fazer isso com um host remoto do Linux, eu uso um script como o seguinte:

ssh "$1" 'mkdir -p ~/.terminfo/r'
for f in /usr/share/terminfo/r/rxvt-unicode{,-256color}
do
    scp "$f" "$1":.terminfo/r/
done

No entanto, isso não está funcionando com o macOS.

Quando executo screen , primeiro estou recebendo "TERM por muito tempo - desculpe".

Após atualizá-lo para a versão brew (4.06.02), estou recebendo agora "Não é possível encontrar a entrada terminfo para 'rxvt-unicode-256color'."

TERM está definido corretamente como rxvt-unicode-256color e ~/.terminfo/r/rxvt-unicode-256color existe.

A execução de screen com TERMINFO=$HOME/.terminfo/ também não tem efeito.

    
por Vladimir Panteleev 12.12.2017 / 04:36

2 respostas

2

ncurses usa 2 caracteres para sistemas de arquivos (como MacOS e OS / 2), nos quais os nomes de arquivos são caso que preservam > diferencia maiúsculas de minúsculas . Isso está documentado no arquivo NEWS . A Apple, a propósito, fornece uma versão antiga do ncurses (5.7) que ainda é nova o suficiente para esse recurso.

As aplicações portáteis não devem depender de nenhuma organização específica do banco de dados do terminal ...

    
por 12.12.2017 / 11:03
2

A execução de screen a dtruss (como strace para macOS) revelou o seguinte:

2131/0x12997:  access("/Users/vladimir/.terminfo/72/rxvt-unicode-256color
ln -s r ~/.terminfo/72
", 0x4, 0x7FFF5F2B56EC) = -1 Err#2

Por qualquer motivo, screen está usando a representação hexadecimal da primeira letra em vez de simplesmente a primeira letra para distribuir a estrutura de diretório terminfo .

Então, para corrigir isso, tive que executar:

2131/0x12997:  access("/Users/vladimir/.terminfo/72/rxvt-unicode-256color
ln -s r ~/.terminfo/72
", 0x4, 0x7FFF5F2B56EC) = -1 Err#2

Tudo parece funcionar agora.

    
por 12.12.2017 / 04:45