Terminal 带有目录和虚拟环境的Zsh提示符
我很难找到一个简洁的答案。我使用的是Oh My Zsh,现在使用的是默认主题robbyrussell 我希望提示符包含两个组件:Terminal 带有目录和虚拟环境的Zsh提示符,terminal,zsh,oh-my-zsh,Terminal,Zsh,Oh My Zsh,我很难找到一个简洁的答案。我使用的是Oh My Zsh,现在使用的是默认主题robbyrussell 我希望提示符包含两个组件: 当前目录,再加上一级 如果我使用的是虚拟环境(如anaconda),请将活动环境的名称放在括号中 下面是方法,你可以根据需要定制 #添加背景和前景颜色的辅助方法 提示_段(){ 本地bg fg [[-n$1]]&&bg=“%K{$1}”| bg=“%K” [[-n$2]]&&fg=“%F{$2}”|fg=“%F” 如果[[$CURRENT\u BG!='NONE'&&
下面是方法,你可以根据需要定制
#添加背景和前景颜色的辅助方法
提示_段(){
本地bg fg
[[-n$1]]&&bg=“%K{$1}”| bg=“%K”
[[-n$2]]&&fg=“%F{$2}”|fg=“%F”
如果[[$CURRENT\u BG!='NONE'&&$1!=$CURRENT\u BG]]
然后
echo-n“%{$bg%F{$CURRENT_bg}%}$SEGMENT_SEPARATOR%{$fg%}”
其他的
echo-n“%{$bg%}%{$fg%}”
fi
当前成本=1美元
[[-n$3]]和&echo-n$3
}
提示\u virtualenv(){
#检查我们是否处于虚拟环境中
#如果是,则将设置虚拟_ENV变量
本地虚拟路径=“$VIRTUAL\u ENV”
如果[-n$virtualenv_路径&&n$virtualenv_禁用_提示]]
然后
#我们在虚拟环境中,所以只显示项目名称
提示“\u段蓝黑”(`basename$virtualenv\u路径`)
fi
}
prompt_目录(){
#显示当前目录
提示\u段红蓝$PWD
}
生成我的zsh提示符(){
#调用所有提示函数以生成实际的提示
即时虚拟
提示目录
提示\u段黑白“”
}
#为PROMPT变量分配函数,以便bash每次都调用它
#单引号在这里很重要,否则您将得到一个固定的提示
#如果没有单引号,函数将被调用一次并计算值
#将被分配
提示符=“$(生成我的zsh提示符)”
PROMPT
变量由zsh
shell使用,以确定需要作为提示显示的内容。当我们设置PROMPT=$(build\u my\u zsh\u PROMPT)
时,我们要求shell调用我们的函数build\u my\u zsh\u PROMPT
这个函数反过来(理想情况下)应该调用创建提示符各个部分的不同函数。现在让我们看看prompt\u目录
prompt_段黑红色$PWD”
prompt_段
是一个辅助函数,用于回显带有背景和前景色的文本
第一个参数黑色
是背景,第二个参数红色
是本例中的前景色。接下来,我们将显示此提示需要给出的文本
所有这些都需要添加到您的
~/.zshrc
文件的最后下面是实现方法,您可以根据需要进行自定义
#添加背景和前景颜色的辅助方法
提示_段(){
本地bg fg
[[-n$1]]&&bg=“%K{$1}”| bg=“%K”
[[-n$2]]&&fg=“%F{$2}”|fg=“%F”
如果[[$CURRENT\u BG!='NONE'&&$1!=$CURRENT\u BG]]
然后
echo-n“%{$bg%F{$CURRENT_bg}%}$SEGMENT_SEPARATOR%{$fg%}”
其他的
echo-n“%{$bg%}%{$fg%}”
fi
当前成本=1美元
[[-n$3]]和&echo-n$3
}
提示\u virtualenv(){
#检查我们是否处于虚拟环境中
#如果是,则将设置虚拟_ENV变量
本地虚拟路径=“$VIRTUAL\u ENV”
如果[-n$virtualenv_路径&&n$virtualenv_禁用_提示]]
然后
#我们在虚拟环境中,所以只显示项目名称
提示“\u段蓝黑”(`basename$virtualenv\u路径`)
fi
}
prompt_目录(){
#显示当前目录
提示\u段红蓝$PWD
}
生成我的zsh提示符(){
#调用所有提示函数以生成实际的提示
即时虚拟
提示目录
提示\u段黑白“”
}
#为PROMPT变量分配函数,以便bash每次都调用它
#单引号在这里很重要,否则您将得到一个固定的提示
#如果没有单引号,函数将被调用一次并计算值
#将被分配
提示符=“$(生成我的zsh提示符)”
PROMPT
变量由zsh
shell用于确定需要显示哪些提示。当我们设置PROMPT=$(build\u my\u zsh\u PROMPT)
时,我们要求shell调用我们的函数build\u my\u zsh\u PROMPT
这个函数反过来(理想情况下)应该调用不同的函数来创建提示符的各个部分
prompt_段黑红色$PWD”
prompt_段
是一个辅助函数,用于回显带有背景和前景色的文本
第一个参数黑色
是背景,第二个参数红色
是本例中的前景色。接下来,我们将显示需要为该提示提供哪些文本
所有这些都需要添加到您的
~/.zshrc
文件末尾您能添加注释以便我了解这里发生了什么吗?还有,我应该把这个放在什么文件里?@Adam_G更新了答案,提供了更多细节。请现在检查谢谢!明天早上我会试试的!这会引发以下错误:prompt\u parent\u directory:1:找不到命令:prompt\u segment prompt\u directory:1:找不到命令:prompt\u segment build\u my\u zsh\u prompt:4:找不到命令:prompt\u segment
,这很有意义。提示_segment()应该说什么?好的,这就引出了另一个问题。我无法在终端中得到提示,只是上面的错误。我如何编辑该文件?请您添加评论,以便我了解这里发生了什么?还有,我应该把这个放在什么文件里?@Adam_G更新了答案,提供了更多细节。请现在检查谢谢!明天早上我会试试的!这会引发以下错误:prompt\u parent\u directory:1:找不到命令:prompt\u segment prompt\u directory:1:找不到命令:prompt\u segment build\u my\u zsh\u prompt:4:找不到命令:prompt\u segment
,这很有意义。应该提示什么