短縮されたパスを使用してください。

短縮されたパスを使用してください。

私は基本的に私のPS1をgitリポジトリに次のように見せようとしています。

$ ~/Projects/Blah (master):

または、Gitリポジトリにない場合は、次のように表示したいと思います。

$ ~/Projects/Blah:

これが私の現在のPS1です:

export PS1="$ \w \$(__git_ps1): "

git repoの出力ではうまく動作しますが、問題は私がgit repoにない場合、出力は次のようになることです.

$ ~/Projects/Blah :

それがgitリポジトリではなく、そこにスペースがほしいと思わない場合は、PS1でそれを指定する方法はありますか?

答え1

動的に設定されたプロンプトを使用しますfunction。これは私の開発環境初期化スクリプトで定義されている私の特定の機能です。

function prompt_cmd
{
  # Tell the terminal application (using escape sequences) what the CWD is.
  # (this comes from /etc/bashrc)
  update_term_cwd

  if [[ "$ORIG_PS1" == "" ]]; then
    export ORIG_PS1=$PS1
  fi

  if [[ "$CURRENT_PROJECT" == "" ]]; then
    export PS1=$ORIG_PS1
  else
    if [[ "$PWD" == "$DEV_HOME/projects/$CURRENT_PROJECT"* ]]; then
       PWD_COLOR=''
    else
       PWD_COLOR='\[\e[0;31m\]'
    fi
    export PS1="\[\e[0;32m\]$CURRENT_PROJECT\[\e[m\]:$PWD_COLOR\W\[\e[m\]$ "
  fi
}

(私が参加していると思うプロジェクトから抜け出すと、ヒントのパス部分が赤に設定されます!)

...そしてbashにこの関数を使用するように指示します。

export PROMPT_COMMAND=prompt_cmd

答え2

PS1私がこれをするのは、ディレクトリを変更するときに値を変更することです。これはchpwd、コマンドを実行するzshではマイナーなことです。 bashで行うことができます。cd周りと友達のラッパーの定義

cd () { builtin cd "$@" && chpwd; }
pushd () { builtin pushd "$@" && chpwd; }
popd () { builtin popd "$@" && chpwd; }
chpwd () {
  if git rev-parse --show-toplevel 2>/dev/null >/dev/null; then
    PS1='$ \w $(__git_ps1): '
  else
    PS1='$ \w: '
  fi
}

答え3

結局これを使うようになりました。.git-prompt.sh文書。働くステップ:

  1. .git-prompt.shホームディレクトリ()にというファイルを作成し、~/.git-prompt.sh上記のリンクのコードをそのファイルにコピーします。
  2. .bash_profileまたは、ファイルに.bashrc次の行を追加します。source ~/.git-prompt.sh
  3. PS1を次に変更します。PS1='\n$ \w$(__git_ps1 " (%s)"): '

答え4

# .bashrc example edits to PS1 for git

短縮されたパスを使用してください。

    # -- With color:
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[01;33m\]$([[ "$(git branch --show-current 2>/dev/null)" == "" ]] || echo " ("$(git branch --show-current 2>/dev/null)")")\[\033[00m\]\$ '

    # -- Without color:
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W$([[ "$(git branch --show-current 2>/dev/null)" == "" ]] || echo " ("$(git branch --show-current 2>/dev/null)")")\$ '

要求通り:

    # -- With color:
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$([[ "$(git branch --show-current 2>/dev/null)" == "" ]] || echo " ("$(git branch --show-current 2>/dev/null)")")\[\033[00m\]: '

    # -- Without color:
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$([[ "$(git branch --show-current 2>/dev/null)" == "" ]] || echo " ("$(git branch --show-current 2>/dev/null)")"): '

KDE Plasma Bash Konsoleから

関連情報