Newer
Older
bashrc / .bashrc.d / com-prompt
Nomura Kei on 17 Apr 2022 3 KB add com-editor, update com-prompt.
  1. # vim: ts=4 sw=4 sts=4 ff=unix fenc=utf-8:
  2. [[ "$-" != *i* ]] && return
  3. echo "[load] ${BASH_SOURCE:-$0}"
  4.  
  5. # git ブランチ表示用
  6. function __ps1_git_branch() {
  7. git rev-parse --abbrev-ref HEAD 2>/dev/null|sed "s/^\(.*\)$/(\1)/"
  8. }
  9.  
  10. # git 状態表示用 (変更発生時 ! を表示する)
  11. function __ps1_git_status() {
  12. git status --short 2>/dev/null| head -n 1 | sed "s/^.*$/!/"
  13. }
  14.  
  15.  
  16. # プロンプト設定
  17. # PS1 : 通常プロンプト定義
  18. # PS2 : サブプロンプト定義(コマンド入力未完了の際のプロンプト)
  19. #
  20. # 特殊文字指定
  21. # \d : 日付
  22. # \e : エスケープ
  23. # \h : ホスト名(最初の「.」まで)
  24. # \H : ホスト名
  25. # \n : 改行
  26. # \s : シェルの名前
  27. # \t : 現在時刻 (24時間表示 HH:MM:SS)
  28. # \T : 現在時刻 (12時間表示 HH:MM:SS)
  29. # \@ : 現在時刻 (12時間表示 [am/pm 形式])
  30. # \u : 現在のユーザー名
  31. # \w : 作業ディレクトリ
  32. # \W : 作業ディレクトリ[当該ディレクトリのみ]
  33. # \! : コマンド履歴番号
  34. # \# : コマンド番号
  35. # \$ : 実行UIDが0の場合#、それ以外の場合$
  36. # \nnn : 8進数nnnに対応する文字
  37. # \[ : 非表示文字シーケンス開始
  38. # \] : 非表示文字シーケンス終了
  39. #
  40. # 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。
  41. #
  42. # 装飾
  43. # 装飾無 : \e[0m
  44. # 太字 : \e[1m
  45. # 細字 : \e[2m
  46. # イタリック : \e[3m
  47. # 下線 : \e[4m
  48. # ブリンク : \e[5m
  49. # 高速ブリンク: \e[6m ※未対応の端末が多い
  50. # 反転表示 : \e[7m
  51. # 表示を隠す : \e[8m ※コピーは可能
  52. # 取り消し : \e[9m
  53. #
  54. # 色 : 文字色 高輝度文字 背景色 高輝度背景色
  55. # 黒色 : \e[30m \e[90m \e[40m \e[100m
  56. # 赤色 : \e[31m \e[91m \e[41m \e[101m
  57. # 緑色 : \e[32m \e[92m \e[42m \e[102m
  58. # 黄色 : \e[33m \e[93m \e[43m \e[103m
  59. # 青色 : \e[34m \e[94m \e[44m \e[104m
  60. # 紫色 : \e[35m \e[95m \e[45m \e[105m
  61. # 水色 : \e[36m \e[96m \e[46m \e[106m
  62. # 白色 : \e[37m \e[97m \e[47m \e[107m
  63. #
  64. # デフォルト : \e[39m \e[49m
  65. #
  66. #
  67. # 移動系
  68. # n 上に移動 : \e[nA
  69. # n 下に移動 : \e[nB
  70. # n 右に移動 : \e[nC
  71. # n 左に移動 : \e[nD
  72. # n 行下移動 : \e[nE
  73. # n 行上移動 : \e[nF
  74. # n 列に移動 : \e[nG
  75. # n,m に移動 : \e[n;;mH or \e[n;mf
  76. # 消去 : \e[0J カーソル以降を消去
  77. # \e[1J カーソル以前を消去
  78. # \e[2J 全体を消去
  79. # 行消去 : \e[0K カーソル以降を消去
  80. # \e[1K カーソル以前を消去
  81. # \e[2K 全体を消去
  82. # スクロール : \e[nS n 行分次にスクロール
  83. # \e[nT n 行分前にスクロール
  84. # SGR : \e[nm
  85. #
  86. #
  87. C_BLK='\[\e[30m\]'
  88. C_RED='\[\e[31m\]'
  89. C_GRN='\[\e[32m\]'
  90. C_YEL='\[\e[33m\]'
  91. C_BLU='\[\e[34m\]'
  92. C_MAG='\[\e[35m\]'
  93. C_CYN='\[\e[36m\]'
  94. C_WHT='\[\e[37m\]'
  95. C_CLR='\[\e[39m\]'
  96.  
  97. PS1_PROMPT=
  98. PS1_PROMPT="${PS1_PROMPT}${C_CYN}[\u@\h:\W"
  99. PS1_PROMPT="${PS1_PROMPT}${C_YEL}\$(__ps1_git_branch)"
  100. #PS1_PROMPT="${PS1_PROMPT}${C_RED}\$(__ps1_git_status)"
  101. PS1_PROMPT="${PS1_PROMPT}${C_CYN}]\\$ "
  102. PS1_PROMPT="${PS1_PROMPT}${C_CLR}"
  103. PS1="${PS1_PROMPT}"
  104. PS2='>'
  105.