Este comando deve funcionar:
termcapinfo * "" "ti=\EP\E[?7787l\E\\E[?1049h:te=\EP\E[?7787h\E\\E[?1049l"
(Substituir *
por um nome mais específico para o seu tipo de terminal seria ainda melhor, mas eu não sei qual TERM
value é definido por mintty.)
Diferenças importantes da sua versão:
-
O segundo e terceiro parâmetros do comando
termcapinfo
devem conter termcap define (name=value
) separados por:
, não apenas uma seqüência de escape simples. -
A sequência de escape
^[P
deve ser terminada por^[\
, caso contrário, uma saída muito maior vai para o terminal diretamente sem o processamento adequado pela Tela (há alguma salvaguarda para evitar bloquear completamente a Tela se a sequência de terminação é esquecido, mas a exibição ainda será confusa). -
Você deve alterar
ti
ete
, para que sair deless
(ou qualquer outro programa em tela cheia) restaure o estado anterior corretamente.
Claro, se você invocar less
com a opção -X
, a roda do mouse não funcionará corretamente, porque com esta opção less
não envia as sequências ti
e te
para o terminal. Lembre-se de que essa opção pode ser especificada não diretamente na linha de comandos less
, mas também através da variável de ambiente LESS
.
No entanto, se less
for compilado para usar terminfo
em vez de termcap
, o terceiro parâmetro do comando termcapinfo
não alterará o comportamento de less
, pois ele influencia apenas o conteúdo da% variável de ambienteTERMCAP
exportada por screen
para seus subprocessos, e o conteúdo do banco de dados terminfo
não pode ser alterado dinamicamente. Nesse caso, você precisará usar utilitários como infocmp
e tic
para criar uma entrada de origem terminfo que contenha smcup
e rmcup
valores com suas modificações e, em seguida, compile a entrada para o formato binário; então use term <your-entry-name>
em .screenrc
para usar esta entrada.