前言
之前在系统中使用了 zsh 代替 bash,并使用 oh-my-zsh 进行了美化,刚开始感觉很爽~
但是时间久了,就发现前缀里面长长的文件路径很讨厌,比如在vscode中打开终端,路径的输出就占用了一整行的空间,输入啥命令都会换行。只要开发项目每天都要和它打交道,很影响生产力。
其实,我们只需要展示当前目录的名字就可以了。之前的几次修改都没能成功,今天,终于下决定要搞定它!
方案一、修改 ./zshrc
网上很多说法是直接修改 ./zshrc 文件的 prompt 输出格式,但是对我并没有效果。
后面在
How do I change my $PS1 on a Macbook for oh-my-zsh? 中找到了答案,原来是因为我使用了 oh-my-zsh 的主题,prompt 被这个主题接管,因此修改 ./zshrc 中的 prompt 无效。
解决方法是直接修改 oh-my-zsh 主题
方案二、修改 oh-my-zsh 主题
1. 打开 ~/.zshrc 文件
vi ~/.zshrc
2. 在文件中找到当前使用的 oh-my-zsh 主题名:
ZSH_THEME="agnoster"
这里用的主题名是 agnoster
3. 打开 oh-my-zsh 主题目录,根据主题名,找到主题文件:
cd ~/.oh-my-zsh/themes
vi agnoster.zsh-theme
4. 修改主题文件:
滑动到文件最后,build_prompt 其实是创建 PROMPT 格式,里面拆分成了多个部分。
我们这里先找到 prompt_context ,它负责的是创建文章开头的那串长长的东西,直接注释掉:
## Main prompt
247 build_prompt() {
248 RETVAL=$?
249 prompt_status
250 prompt_virtualenv
251 prompt_aws
252 #prompt_context
253 prompt_dir
254 prompt_git
255 prompt_bzr
256 prompt_hg
257 prompt_end
258 }
259
260 PROMPT='%{%f%b%k%}$(build_prompt) '
然后往上找,找到(或使用 command+f 查找) propt_dir ,改成下面就可以了:
205 # Dir: current working directory
206 prompt_dir() {
207 #prompt_segment blue $CURRENT_FG '%~' # show full path
208 prompt_segment blue $CURRENT_FG '%c' # show only current word folder
209 }
这里默认是 %~ 表示既展示全路径又展示当前路径,%c 表示仅展示当前路径名
5. 重启 oh-my-zsh 使其修改生效:
. ~/.zshrc
最后的效果和我们的需求一致,只展示当前目录,欧耶✌🏻