Seu less provavelmente está configurado para enviar sua saída por lesspipe ou um script semelhante. Isso acontece se a variável de ambiente LESSOPEN e / ou LESSCLOSE estiver configurada ou se uma configuração equivalente for usada no arquivo ~/.lesskey . A saída do seu ~/.tcshrc está misturando com os dados canalizados e causando confusão.
Seu ~/.tcshrc aparentemente executa o comando que você adicionou também quando executado para um shell que não possui um TTY. Isso causa o problema que você está vendo e também pode causar problemas com scp , rsync ou muitos outros comandos. Se você quiser adicionar um comando que produza saída de tela ao seu .tcshrc ou script de inicialização de shell similar, você deve sempre tornar o comando condicional para que seja executado apenas em sessões que sejam interativas e / ou tenham um TTY. / em>
A maneira mais fácil de corrigir isso é restringir qualquer saída nas sessões de shell ~/.tcshrc para interativo apenas. ou seja, aqueles que exibirão um prompt de shell. Você pode fazer isso tornando a saída condicional, ou seja, substituindo a única linha adicionada a .tcshrc com:
if ($?prompt) then
echo "3]0;${PROJECT_NAME}tty -s && echo "3]0;${PROJECT_NAME}if ($?prompt) then
echo "3]0;${PROJECT_NAME}tty -s && echo "3]0;${PROJECT_NAME}%pre%7"
7"
fi
7"
7"
fi
Adicione isso antes de definir um prompt personalizado.
Outra maneira seria testar silenciosamente a validade do TTY primeiro:
%pre%