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%