designando uma variável multilinha (prompt tcsh) para outra

3

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.

    
por pcm 29.08.2012 / 16:57

0 respostas