2014-07-15 49 views
0

我在Python上工作很多。前一段時間,我轉向魚。主要是因爲我沒有真正使用很多bash腳本(我曾經這麼做過,但對於我的工作來說,它主要是沒用的)。
我有幾個virtualenv python兼容性。每個django版本(3個版本)都有2/3個virtualenvs,這使得它有9個venvs。現在,這裏是一個腳本(至少在腳本的一部分)我用的bash:移動並激活virtualenv的別名?

if [[ $1 == "myproject" ]]; then 
    cd $HOME/Prog/Scripts/Python/project/ 
    if [[ $2 == "--env" ]]; then 
     source ../dj1.6-3.3venv/bin/activate 
    fi 
    if [[ $3 == "--run" ]]; then 
     python manage.py runserver 
    fi 
fi 

現在,我得到的魚一個簡單的別名是:

alias project_django='cd ~/Prog/Scripts/Python/project/; and source ../dj1.6-3.4.1venv/bin/activate.fish' 

雖然它的工作原理,它破壞我的提示,只是給我通常的>,它刪除git函數,當前工作目錄等。

有沒有辦法解決這個問題?就像通過調用魚提示初始化一樣?有沒有人有同樣的問題,你是如何解決它的?

+1

我刪除了django標籤,因爲即使您沒有使用django,您的問題也會適用。另外,請不要使用帖子的標題來標記您的帖子。 –

+0

感謝您的修改。這是令人愉快的:) – Depado

回答

2

好的。看起來提示的大小太大了。當終端的當前尺寸太小而不能顯示提示時,它只顯示經典的>。即使這很愚蠢,它可能會幫助周圍的一些人知道......只需調整終端的窗口大小即可。

2

其他人已經面臨這個問題,創造virtualfish,該文檔包含a section on customzing the prompt其中:

virtualfish並不試圖亂用您的提示。由於Fish的 提示是一種功能,因此自動更改 這兩種方法都不那麼直接,而且更方便地根據自己的喜好手動簡單地自定義它 。

到的virtualenv添加到您提示的最簡單方法是鍵入funced fish_prompt,添加以下行的某個地方:

if set -q VIRTUAL_ENV 
    echo -n -s (set_color -b blue white) "(" (basename "$VIRTUAL_ENV") ")" (set_color normal) " " 
end 

然後,輸入funcsave fish_prompt保存新的提示磁盤。

+1

其實魚一定有進化,現在支持virtualenvs。在每個創建的virtualenv中都有一個.fish腳本,它允許用魚來激活virtualenv。我會看看這個虛擬魚,儘管它可能會在某些時候變得有用。謝謝。 – Depado