oh-my-zsh终端用户名屏蔽设置

原文链接: https://blog.csdn.net/z3512498/article/details/51245853

终端的配置可以考虑直接使用oh-my-zsh,方便且美观,还有很多主题可以选择。但安装完后,打开终端,发现用户名@域名这个部分特别长,很影响终端使用,那如何处理呢?其他网站上有很多教程,但针对的都不是oh-my-zsh的,经过一番摸索之后我终于找到了解决办法,发出来给大家看看,欢迎交流学习!

1、安装的流程可以参考:http://www.jianshu.com/p/7de00c73a2bb 这个貌似是mac环境的,但配置流程和指令和linux通用,我们只要绕过所有iterm2的操作就好,我用的主题是agnoster

2、网上对这个的处理大多是打开bashrc然后修改PS1或者重新定义修改PS1,但oh_my_zsh的shell是zsh,明显不能在.bashrc中改。 
不信可以在终端输入

 echo $PS1   

或者

 echo $PROMPT

可以看到其定义为

 %{%f%b%k%}$(build_prompt) 

这和bashrc里PS1的定义是不同的,根本无从下手。于是又有人说那就在.zshrc中改咯,我试过,发现改了以后终端的显示会不正常,比如linux的指令都有返回值,一般为0,其他表示运行错误之类。oh_my_zsh是可以用符号提醒用户的上一个指令是否执行成功的,如果在.zshrc重新定义PS1,这个功能将会失效。所以只能用特别的方式啦。

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

 cd ~/.oh-my-zsh/themes

然后输入
echo $ZSH_THEME

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

vi agnoster.zsh-theme
可以看到最下面对build_prompt的定义为

## Main prompt
build_prompt() {
 RETVAL=$?
 prompt_status
 prompt_virtualenv
 prompt_context
 prompt_dir
 prompt_git
 prompt_hg
 prompt_end
}

build_prompt的定义像个结构体(实际是什么我不太懂),但agnoster.zsh-theme中对build_prompt里的每个成员都有定义,从prompt_context的定义

# Context: user@hostname (who am I and where am I)
prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
  fi
}

可以看出这个就是定义用户名和域名的地方,只要把build_prompt的定义修改为如下:

## Main prompt
build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
 #prompt_context
  prompt_dir
  prompt_git
  prompt_hg
  prompt_end
}

即把prompt_context用#注释掉即可,以后需要修改其他东西也可到这里修改。 
———————————————————————————————————————————— 
这里做个更新(2017-08-01): 
1、由于oh_my_zsh时常会有版本更新,为了避免我们修改的跟更新的版本有冲突,建议不要修改agnoster.zsh-theme,而是将其拷贝出来,命名为自己的主题文件,比如叫做myagnoster.zsh-theme,然后只对myagnoster.zsh-theme进行修改。 
2、修改后将~/.zshrc中的

ZSH_THEME="agnoster"
改为

ZSH_THEME="myagnoster"
这样就能避免冲突了。

 

 

 

 

你可能感兴趣的:(oh-my-zsh终端用户名屏蔽设置)