hack のためのネタ帳, etc,,,

参考になるページ等

PS1='\033]2;\u@\h:\w\007\[\e[1;7;34m\][\D{%Y%m%d_%H%M%S}]\u@\h:\w\n\$\[\e[0m\] '
2013-10-30: cygwin, linux 用
PS1='\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
2014-08-17: cygwin, linux 用
PS1='\e];\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
2014-12-16: cygwin, linux 用
PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
2018-03-27: cygwin, linux 用
PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36mx86_64\e[32m): \e[33m\w\e[0m$(__git_ps1 "\n(%s)")\n$ '
GIT_PS1_SHOWCOLORHINTS 有効にする場合は以下のようにしたほうがよさそう
function gen_ps1 ()
{
  __git_ps1 '\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36mx86_64\e[32m): \e[33m\w\e[0m' '\n$ ' '\n(%s)'
}
PROMPT_COMMAND=gen_ps1

GIT_PS1_DESCRIBE_STYLE=default
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM=auto
# GIT_PS1_DESCRIBE_STYLE
# GIT_PS1_HIDE_IF_PWD_IGNORED
2018-04-07: cygwin, linux 用
上記、git-prompt.sh の設定してると、Lenovo S510 Mini-Tower だとちょっと遅くてつらい感じだったので、以下のような toggle コマンドを作成してみた。
function ps1 ()
{
  if [ -n "$PROMPT_COMMAND" ]; then
    unset PROMPT_COMMAND
    PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
  else
    PROMPT_COMMAND=gen_ps1
  fi
}
git-prompt.sh
2018-11-17: cygwin, linux 用
arch が結果で置換されてた orz
PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m$(__git_ps1 "\n(%s)")\n$ '
GIT_PS1_SHOWCOLORHINTS 有効にする場合は以下
function ps1 ()
{
  if [ -n "$PROMPT_COMMAND" ]; then
    unset PROMPT_COMMAND
    PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
  else
    PROMPT_COMMAND=gen_ps1
  fi
}
function gen_ps1 ()
{
  __git_ps1 '\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0;1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m' '\n$ ' '\n(%s)'
}
PROMPT_COMMAND=gen_ps1
# ps1

GIT_PS1_DESCRIBE_STYLE=default
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM=auto
# GIT_PS1_DESCRIBE_STYLE
# GIT_PS1_HIDE_IF_PWD_IGNORED
git-prompt.sh
2019-03-28: cygwin, linux 用
GIT_PS1_SHOWCOLORHINTS 有効にして、user.name と user.email も併記するようにしてみた。
function ps1 ()
{
  if [ -n "$PROMPT_COMMAND" ]; then
    unset PROMPT_COMMAND
    PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
  else
    PROMPT_COMMAND=gen_ps1
  fi
}
function gen_ps1 ()
{
  __git_ps1 '\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m' '\n$ ' '\n(%s) $(git config --get user.name) <$(git config --get user.email)>'
}
PROMPT_COMMAND=gen_ps1
# ps1

GIT_PS1_DESCRIBE_STYLE=default
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM=auto
# GIT_PS1_DESCRIBE_STYLE
# GIT_PS1_HIDE_IF_PWD_IGNORED
git-prompt.sh
2020-04-10: cygwin, linux 用
Cygwin やベアメタルの Ubuntu では問題なかったのだが、WSL だと conhost, Windows Terminal (Preview), mintty のいずれで実行しても
\e[7m (image:negative) が \e[0;1;4;32m (reset; bold; underline; fg:green)では解除されず、image:negative の効果が継続してしまうという症状が発生したため、
\e[0m と \e[1;4;32m に分割してみた。
function ps1 ()
{
  if [ -n "$PROMPT_COMMAND" ]; then
    unset PROMPT_COMMAND
    PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m\n$ '
  else
    PROMPT_COMMAND=gen_ps1
  fi
}
function gen_ps1 ()
{
  __git_ps1 '\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'`arch`'\e[32m): \e[33m\w\e[0m' '\n$ ' '\n(%s) $(git config --get user.name) <$(git config --get user.email)>'
}
PROMPT_COMMAND=gen_ps1
# ps1

GIT_PS1_DESCRIBE_STYLE=default
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWUPSTREAM=auto
# GIT_PS1_DESCRIBE_STYLE
# GIT_PS1_HIDE_IF_PWD_IGNORED
git-prompt.sh
2020-05-02: cygwin, linux 用
ps1 に option を付けてみた
function ps1 () # [-g|-n|-p]
#   Change PS1.
#   Default bahavior is toggle on/off git info.
# Options:
#   -g : with git info
#   -n : without git info
#   -p : plain
{
  local mode
  if [ -n "$1" ]; then
    case "$1" in
    -g) mode=git ;;
    -n) mode=nogit ;;
    -p) mode=plain ;;
    *) echo "Error: unknown option: $1"; return 1 ;;
    esac
  fi
  if [ -z "$mode" ]; then
    if [ -n "$PROMPT_COMMAND" ]; then
      mode=nogit
    else
      mode=git
    fi
  fi
  case "$mode" in
  plain)
    unset PROMPT_COMMAND
    PS1='\e]0;'"${SHELL##*/}"'\a\$ '
    ;;
  nogit)
    unset PROMPT_COMMAND
    : ${PS1_ARCH:=`arch`}
    PS1='\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'"$PS1_ARCH"'\e[32m): \e[33m\w\e[0m\n\$ '
    ;;
  git)
    PROMPT_COMMAND=gen_ps1
    ;;
  esac
}
function gen_ps1 ()
{
  : ${PS1_ARCH:=`arch`}
  __git_ps1 '\e]0;\u@\h: \w\a\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'"$PS1_ARCH"'\e[32m): \e[33m\w\e[0m' '\n\$ ' '\n(%s) $(git config --get user.name) <$(git config --get user.email)>'
}
ps1 -g
git-prompt.sh
2020-06-03: cygwin, linux 用
20200603: bash - history の行頭が破綻するの件を反映
function ps1 () # [-g|-n|-p]
#   Change PS1.
#   Default bahavior is toggle on/off git info.
# Options:
#   -g : with git info
#   -n : without git info
#   -p : plain
{
  local mode
  if [ -n "$1" ]; then
    case "$1" in
    -g) mode=git ;;
    -n) mode=nogit ;;
    -p) mode=plain ;;
    *) echo "Error: unknown option: $1"; return 1 ;;
    esac
  fi
  if [ -z "$mode" ]; then
    if [ -n "$PROMPT_COMMAND" ]; then
      mode=nogit
    else
      mode=git
    fi
  fi
  case "$mode" in
  plain)
    unset PROMPT_COMMAND
    PS1='\[\e]0;'"${SHELL##*/}"'\a\]\$ '
    ;;
  nogit)
    unset PROMPT_COMMAND
    : ${PS1_ARCH:=`arch`}
    PS1='\[\e]0;\u@\h: \w\a\]\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'"$PS1_ARCH"'\e[32m): \e[33m\w\e[0m\n\$ '
    ;;
  git)
    PROMPT_COMMAND=gen_ps1
    ;;
  esac
}
function gen_ps1 ()
{
  : ${PS1_ARCH:=`arch`}
  __git_ps1 '\[\e]0;\u@\h: \w\a\]\e[1;7;31m[\D{%Y%m%d_%H%M%S}]\e[0m\e[1;4;32m \u@\h(\e[36m'"$PS1_ARCH"'\e[32m): \e[33m\w\e[0m' '\n\$ ' '\n(%s) $(git config --get user.name) <$(git config --get user.email)>'
}
ps1 -g
git-prompt.sh

tcsh

set prompt="%{\e[01;37;45m%}[%Y%W%D_%P|\!]%n@%m:%c%{\e[0m%} \n%{\e[01;37;45m%}%#%{\e[0m%} "
2014-07-09: FreeBSD 用
set promptchars="%#"
set prompt="%{\e[1;7;31m%}[%Y-%W-%D %P]%{\e[0;1;4;32m%} %n@%m%{\(\e[36m`uname -m`%}%{\e[32m\)%}: %{\e[33m%}%~\n%{\e[0m%}%# "
参考:
date コマンドの %Y%m%d に対応する項目はあるのに %H%M%S に対応する項目がないのが tcsh の prompt が決定的に駄目な所 (%P だと':'(コロン)が入ってしまう)

zsh

参考になるページ等

タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です