oh-my-zsh终端用户名设置(PS1)

zsh安装,参考 oh-my-zsh

默认的 PS1 为

PS1='[\u@\h \w]\$'

网上对这个的处理大多是打开.bashrc然后修改PS1或者重新定义修改PS1

oh-my-zshshellzsh,明显不能在 .bashrc 中改

不信可以在终端输入

echo $PS1

或者

echo $PROMPT

可以看到其定义为

${ret_status} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)

这和.bashrcPS1的定义是不同的,根本无从下手。

于是又有人说那就在.zshrc中改,我试过,发现改了以后终端的显示会不正常,比如linux的指令都有返回值,一般为0,其他表示运行错误之类。

oh_my_zsh是可以用符号提醒用户的上一个指令是否执行成功的,如果在.zshrc重新定义PS1,这个功能将会失效。所以只能用特别的方式。

解决办法:按照1中链接的安装方式,oh_my_zsh的主题和设置会被复制到主目录下,只要在终端输入

cd ~/.oh-my-zsh/themes

然后输入

echo $ZSH_THEME

查看自己主题,我的是robbyrussell,然后输入

vim robbyrussell.zsh-theme

可以看到

local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT='${ret_status} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

由于oh_my_zsh时常会有版本更新,为了避免我们修改的跟更新的版本有冲突,建议不要修改robbyrussell.zsh-theme,而是将其拷贝出来,命名为自己的主题文件,比如叫做myrobbyrussell.zsh-theme,然后只对myrobbyrussell.zsh-theme进行修改。

修改后将 ~/.zshrc 中的

ZSH_THEME="robbyrussell"

改为

ZSH_THEME="myrobbyrussell"

这样就能避免冲突了。

参考设置

PROMPT='%{$fg[green]%}%m@%{$fg[magenta]%}%(?..%?%1v)%n:%{$reset_color%}%{$fg[cyan]%}%~#'
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}~#:'
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$fg[magenta]%}%(?..%?%1v)%{$reset_color%}~#: '    
PROMPT='%{$fg_bold[red]%}-> %{$fg_bold[magenta]%}%n%{$fg_bold[cyan]%}@%{$fg[green]%}%m %{$fg_bold[green]%}%p%{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$fg[magenta]%}%(?..%?%1v)%{$fg_bold[blue]%}? %{$fg[yellow]%}# '  
code info
%T 系统时间(时:分)
%* 系统时间(时:分:秒)
%D 系统日期(年-月-日)
%n 你的用户名
%B - %b 开始到结束使用粗体打印
%U - %u 开始到结束使用下划线打印
%d 你目前的工作目录
%~ 你目前的工作目录相对于~的相对路径
%M 计算机的主机名
%m 计算机的主机名(在第一个句号之前截断)
%l 你当前的tty
%n 登录名

你可能感兴趣的:(Linux,Mac,Shell)