나는 Mac OSX (10.8.2)에서 실행되는 virtualenv를 가지고 있으며, 작동하는 동안 (나는 venvs를 설정하고 그 사이를 전환하고 활성화하고 비활성화 할 수있다.) 작동하지 않는 한 가지가 매우 귀찮다. 터미널 프롬프트 스위치. 그것에서 줄 바꿈을 가지고virtualenv가 터미널 프롬프트를 설정하지 않는 이유는 무엇입니까?
[hugo] /current/directory/path/
$
즉 :
내 기본 프롬프트로 렌더링하는 [\u] \w \n\[\033[0;31m\]$\[\e[0m\]
이다.
(myproject)[hugo] /current/directory/path/
$
을하지만 사실 나는 전혀 변화를 얻을 : 나는 VIRTUALENV을 활성화하면
, 나는 기대.
은 내가 /bin/activate
스크립트를 개방하고, 코드 검토 한 : 나는 말에 에코 스틱 경우
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
, 나는이 (가) PS1
VAR이 (myproject)[\u] \w \n\[\033[0;31m\]$\[\e[0m\]
로 설정되어 있는지 볼 수 있지만, 끈적하지 않은 어떤 이유로 PS1이 수출되지 않고 있습니다.
내 맞춤 프롬프트 또는 사용 권한 문제와 관련이 있습니까? 분명히 이 아니고 virtualenv 일입니다. 사실 그것이 작동한다는 것을 알고 있기 때문에 (사실 내 OSX 호스트가 아니라 내 방해하는 VM에서도 작동합니다).
?
[업데이트 1]
내 실수는 - 그것은 내가 가지고있는 것처럼 보이는 자식 인식 디렉토리/REPO 상태에 따라 프롬프트를 덮어 쓰기하는 프롬프트. 이것은 venv 프롬프트를 죽이는 것입니다. 이제는 두 가지를 모두 수행해야합니다. 즉, 후속 질문은 다음과 같습니다. 누군가가 색상, git-aware, OSX 프롬프트를 가지고있어 virtualenv와 잘 어울립니다.
그래에서
(virtenv)
를 분리 할 수있는 추가 공간이 있다는 - 감사 - 나는 결국 그것을 밖으로 일 –Likewise-는 바이올린했다가. .bashrc의 끝에 추가하는 것은 직접 작동하지 않았습니다. 대신에 .bashrc의 다른 프롬프트 설정 바로 아래에이 스크립트 (virtualenv 폴더의 "bin/activate"에있는 것과 동일 함)를 붙여 넣었습니다. ,하지만 PS1의 수출 전에, 그리고 그것은 작동했습니다. – Nate
나는 마지막 lin에 추가 된 세미콜론이 필요하다고 생각 e는 $ PROMPT_COMMAND와 add_venv_info 사이에서 작동합니다. – jgosmann