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 [~] %
シンプル。
参考
- 【コラム】漢のzsh (2) 取りあえず、プロンプトを整えておく。カッコつけたいからね | エンタープライズ | マイコミジャーナル
- ここのコラムを書籍化してほしい!!
- zsh
- %(!.#.)を参考にした。
- info 12.0.6 Conditional substringsを参照。
- Xterm-Title mini-HOWTO
- ターミナルのタイトル設定tips。
- \033]2;になってるけど、\033]0;でもOKっぽい。
- info zsh Functions
- Special Functionsにchpwd(),precmd()の解説がある。イベントハンドラみたいな感じ。
- chpwpだと、他のアプリでターミナルタイトルが変更された時に、おかしなことになるので,precmdを使った。
- print -Pでプロンプトみたいに%が使えるようになる。
- 入門bash 第3版
- zsh本がほしい!!