移动并激活虚拟环境的别名?
我最近在用Python,之前我换到了fish这个命令行工具。主要是因为我不太用bash脚本(以前用过,但现在工作上用不到)。
我有几个虚拟环境(virtualenv)来兼容Python。每个Django版本大概有2到3个虚拟环境(我用的是3个版本),所以总共大约有9个虚拟环境。现在我用bash写了一个脚本(这是脚本的一部分):
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
现在我在fish里有一个简单的别名,内容是:
alias project_django='cd ~/Prog/Scripts/Python/project/; and source ../dj1.6-3.4.1venv/bin/activate.fish'
虽然这个别名可以用,但它把我的提示符搞坏了,只显示了一个普通的>
,这样就去掉了git功能、当前工作目录等等。
有没有办法解决这个问题?比如重新调用fish的提示符初始化?有没有人遇到过同样的问题,怎么解决的呢?
2 个回答
2
之前有人遇到过这个问题,并且创建了一个叫做 virtualfish
的工具。这个工具的文档里有一部分是关于如何自定义提示符的,具体可以查看 这段内容:
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
来把你新的提示符保存到磁盘上。
3
好的。看起来提示的大小太大了。当当前终端的大小太小,无法显示完整的提示时,它就只会显示一个经典的 >
符号。虽然这样有点傻,但可能对这里的一些人有帮助... 只需要调整一下终端窗口的大小就可以了。