Para o tcsh, tenho um prompt que é multilinha:
set prompt = "%/\
%n@%m[%h]% "
Isso mostra o cwd em uma linha e, em seguida, o usuário / host na segunda linha. No entanto, com isso, não posso fazer uma cópia disso:
setenv X "$prompt"
Unmatched ".
A razão para isso ser um problema para mim é que, quando eu uso o virtualenv para criar um ambiente virtual para Python, ele cria automaticamente um script "activate", que como parte do script salva o prompt atual e o altera. para incluir informações do ambiente virtual. O prompt é restaurado quando o script "desativar" é invocado.
Existe uma maneira de atribuir uma variável multilinha a outra?
Estou pensando que preciso desistir do prompt de multilinhas, porque acho que terei problemas, uma vez que o script de ativação é invocado, já que tenho aliases para atualizar o prompt (recebi isso há muito tempo de alguém). Do meu arquivo .cshrc:
alias set_prompt 'set prompt = "%/\
%n@%m[%h]% "'
alias cd 'cd \!*; set_prompt'
set_prompt
Existe alguma maneira melhor de fazer isso, para que o prompt seja atualizado ao mover, mas eu também posso usar o script de ativação para alterar o prompt? Aqui está um fragmento do script de ativação gerado automaticamente para referência:
set _OLD_VIRTUAL_PROMPT="$prompt"
if ("" != "") then
set env_name = ""
else
if ('basename "$VIRTUAL_ENV"' == "__") then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
set env_name = 'basename \'dirname "$VIRTUAL_ENV"\''
else
set env_name = 'basename "$VIRTUAL_ENV"'
endif
endif
set prompt = "[$env_name] $prompt"
Obrigado.