根据当前文件夹更改 Powerlevel9k 段
Change Powerlevel9k segment based on current folder
我正在尝试自定义我的 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
文件夹或任何语言文件夹相同为此使用。事实上,什么也没有出现。所以我的问题是,是否可以这样做?
经过一些修补我设法解决了这个问题,代码如下所示:
prompt_lang_segment () {
# Looks up the folder path + name
dir="$( cd "$(dirname "[=10=]")" ; pwd -P )"
# Checks if it is the desired language/framework folder, in this case, python
if [[ $dir == *"Dev/python"* ]] ; then
content="\uf81f Python%f"
"_prompt_segment" "[=10=]" "" "blue" "yellow" "$content" "#"
fi
if [[ $dir == *"Dev/js"* ]] ; then
content="\ue781 Javascript%f"
"_prompt_segment" "[=10=]" "" "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 命令以显示段:
"_prompt_segment" "[=14=]" "" "yellow" "black" "$content" "#"
所以我为每个 language/framework 添加了一个 if 语句,此时我有一个文件夹,我还必须将文件夹名称 javascript 更改为 js,因为它同时显示 java脚本和java段。
此配置适用于 language/framework 文件夹及其所有子文件夹。
这是最终结果:
我正在尝试自定义我的 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
文件夹或任何语言文件夹相同为此使用。事实上,什么也没有出现。所以我的问题是,是否可以这样做?
经过一些修补我设法解决了这个问题,代码如下所示:
prompt_lang_segment () {
# Looks up the folder path + name
dir="$( cd "$(dirname "[=10=]")" ; pwd -P )"
# Checks if it is the desired language/framework folder, in this case, python
if [[ $dir == *"Dev/python"* ]] ; then
content="\uf81f Python%f"
"_prompt_segment" "[=10=]" "" "blue" "yellow" "$content" "#"
fi
if [[ $dir == *"Dev/js"* ]] ; then
content="\ue781 Javascript%f"
"_prompt_segment" "[=10=]" "" "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 命令以显示段:
"_prompt_segment" "[=14=]" "" "yellow" "black" "$content" "#"
所以我为每个 language/framework 添加了一个 if 语句,此时我有一个文件夹,我还必须将文件夹名称 javascript 更改为 js,因为它同时显示 java脚本和java段。
此配置适用于 language/framework 文件夹及其所有子文件夹。 这是最终结果: