我正在尝试自定义zsh终端,以我想要的方式获得了大多数东西,但是随后我遇到了一个页面,该页面显示了如何对语言段进行显示以显示Javascript,Python等。我尝试了以下代码我的.zshrc
文件:
lang_segment () {
dir="$(dirname "$PWD")"
if [[ $dir == *"Dev/python"* ]] ; then
echo -n "%{%F{yellow}%K{blue}'\uf81f' Python}"
fi
if [[ $dir == *"Dev/javascript"* ]] ; then
echo -n "%{%F{black}%K{yellow}'\ue781' Javascript}"
fi
}
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon user dir custom_lang_segment vcs)
POWERLEVEL9K_CUSTOM_LANG_SEGMENT="lang_segment"
我正在使用powerlevel9k主题。我的想法是,当您CD进入dev/python
文件夹内的文件夹时,将显示一个带有Python文本,图标和配色方案的段,与dev/javascript
文件夹或我为此使用的任何语言文件夹相同。照原样,没有任何显示。所以我的问题是,有可能吗?
答案 0 :(得分:2)
经过一番修补,我设法解决了这个问题,代码如下:
prompt_lang_segment () {
# Looks up the folder path + name
dir="$( cd "$(dirname "$0")" ; pwd -P )"
# Checks if it is the desired language/framework folder, in this case, python
if [[ $dir == *"Dev/python"* ]] ; then
content="\uf81f Python%f"
"$1_prompt_segment" "$0" "$2" "blue" "yellow" "$content" "#"
fi
if [[ $dir == *"Dev/js"* ]] ; then
content="\ue781 Javascript%f"
"$1_prompt_segment" "$0" "$2" "yellow" "black" "$content" "#"
fi
...
}
# Added the lang_segment to the left prompt
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon user dir lang_segment vcs)
我必须在函数上使用提示(prompt_lang_segment
而不是lang_segment
来创建自定义细分,并使用它,我必须对此进行更改:
echo -n "%{%F{black}%K{yellow}'\ue781' Javascript}"
进入默认的powerlevel9k命令以显示段:
"$1_prompt_segment" "$0" "$2" "yellow" "black" "$content" "#"
因此,我为此时有一个文件夹的每种语言/框架添加了一个if语句,而且我还必须将文件夹名称javascript更改为js,因为它同时显示了javascript和java段。
此配置适用于language / framework文件夹及其所有子文件夹。 这是最终结果: