zshのプロンプト設定

rootで作業することが多くなってきたので、rootもzshに乗り換えてみた。

/etc/passwdを修正。

root:x:0:0:root:/root:/bin/zsh

/root/.zshrcで自分の設定をインクルード。

source /home/tanaka/.zshrc

お手軽。

プロンプト設定を見直す。~/.zshrcを修正。

  • 一般ユーザーは%
  • rootは%#

とした。

## prompt settting
setopt transient_rprompt

PROMPT="%%%(!.#.) "

# for ssh
if [ -n "$SSH_CONNECTION" ]; then
  PROMPT_HOSTNAME="%m"
else
  PROMPT_HOSTNAME=""
fi

# right prompt
if [ $TERM != dumb ]
then
  RPROMPT="[$PROMPT_HOSTNAME%~]"
else
  PROMPT="[$PROMPT_HOSTNAME%~]
$PROMPT"
  # for gvim setting
  if [ -n "$VIM" ]; then
    bindkey -v
  fi
fi

PROMPT2="%_> "

# term title
if [ $TERM = xterm ]
then
  precmd() {
    print -Pn "\033]0;%~\007"
  }
fi

ついでに、ターミナルのタイトルも設定してみた。

適用後。

一般ユーザー

%                                             [~]

root

%#                                            [~]

gvimのshellモードとか非ターミナル環境用

:shell
[~]
% 

シンプル。

色々メモ。

  • ssh判定は環境変数SSH_CONNECTIONの文字が空かどうかを見ればいい。
  • setopt transient_rpromptでエンター押すと上の右プロンプトが消えてスッキリする。

参考