터미널에서 현재 분기 및 폴더 경로를 표시하려면 어떻게해야합니까?
저는 Team Treehouse 비디오 중 일부를보고 있는데 Git으로 작업 할 때 매우 멋진 터미널을 가지고 있습니다.
예를 들어 (유사한 것) :
mike@treehouseMac: [/Work/test - feature-branch-name] $ git add .
mike@treehouseMac: [/Work/test - feature-branch-name] $ git commit -m "Some feature."
mike@treehouseMac: [/Work/test - feature-branch-name] $ git checkout master
mike@treehouseMac: [/Work/test - master] $ git status
내 터미널은 내가 원하는 데이터의 비트를 구별하는 색상으로 내가 속한 분기에 대한 유용한 정보를 어떻게 표시 할 수 있습니까? 아직 찾지 못한 사실상의 플러그인이 있습니까?
Mac OSX 10.8을 사용하고 있습니다.
플러그인에 관한 것이 아닙니다. 쉘의 신속한 트릭에 관한 것입니다.
bash에서 멋진 설정을 보려면 dotfiles
이 사람 의 프로젝트를 확인하십시오 .
https://github.com/mathiasbynens/dotfiles
멋진 프롬프트를 얻으 .bash_prompt
려면 ~/.bash_profile
또는 ~/.bashrc
.
질문에서와 똑같은 프롬프트를 얻으려면 다음 과 같이 export PS1
끝의 줄을 변경하십시오 .bash_prompt
.
export PS1="\[${BOLD}${MAGENTA}\]\u\[$WHITE\]@\[$ORANGE\]\h\[$WHITE\]: [\[$GREEN\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" - \")\[$PURPLE\]\$(parse_git_branch)\[$WHITE\]] \$ \[$RESET\]"
.bash*
한 달 전에이 저장소의 모든 파일을 사용 하게되었고, 정말 유용했습니다.
Git의 경우 .gitconfig
.
Mac 사용자이기 때문에 .osx
.
간단한 방법
~/.bash_profile
좋아하는 편집기에서 열고 아래에 다음 내용을 추가하십시오.
프롬프트에서 Git 분기.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w - \$(parse_git_branch)\[\033[00m\] $ "
기존의 훌륭한 답변을 확장하려면 멋진 터미널을 얻는 매우 간단한 방법은 오픈 소스 Dotfiles 프로젝트 를 사용하는 것 입니다.
https://github.com/mathiasbynens/dotfiles
OSX 및 Linux에서 설치는 매우 간단합니다. 터미널에서 다음 명령을 실행하십시오.
git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh
이것은 다음과 같이 될 것입니다.
- 힘내는 저장소를 복제합니다.
cd
폴더에.- 설치 bash 스크립트를 실행하십시오.
내 프롬프트에는 다음이 포함됩니다.
- 마지막 명령의 종료 상태 (0이 아닌 경우)
- 뿌리를 내릴 때의 독특한 변화
rsync
-user@host:pathname
복사-붙여 넣기를위한 스타일- Git 브랜치, 인덱스, 수정, 추적되지 않은 및 업스트림 정보
- 예쁜 색상
예 : 이렇게하려면 다음을 추가하십시오 ~/.bashrc
.
#
# Set the prompt #
#
# Select git info displayed, see /usr/share/git/completion/git-prompt.sh for more
export GIT_PS1_SHOWDIRTYSTATE=1 # '*'=unstaged, '+'=staged
export GIT_PS1_SHOWSTASHSTATE=1 # '$'=stashed
export GIT_PS1_SHOWUNTRACKEDFILES=1 # '%'=untracked
export GIT_PS1_SHOWUPSTREAM="verbose" # 'u='=no difference, 'u+1'=ahead by 1 commit
export GIT_PS1_STATESEPARATOR='' # No space between branch and index status
export GIT_PS1_DESCRIBE_STYLE="describe" # detached HEAD style:
# contains relative to newer annotated tag (v1.6.3.2~35)
# branch relative to newer tag or branch (master~4)
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
# default exactly eatching tag
# Check if we support colours
__colour_enabled() {
local -i colors=$(tput colors 2>/dev/null)
[[ $? -eq 0 ]] && [[ $colors -gt 2 ]]
}
unset __colourise_prompt && __colour_enabled && __colourise_prompt=1
__set_bash_prompt()
{
local exit="$?" # Save the exit status of the last command
# PS1 is made from $PreGitPS1 + <git-status> + $PostGitPS1
local PreGitPS1="${debian_chroot:+($debian_chroot)}"
local PostGitPS1=""
if [[ $__colourise_prompt ]]; then
export GIT_PS1_SHOWCOLORHINTS=1
# Wrap the colour codes between \[ and \], so that
# bash counts the correct number of characters for line wrapping:
local Red='\[\e[0;31m\]'; local BRed='\[\e[1;31m\]'
local Gre='\[\e[0;32m\]'; local BGre='\[\e[1;32m\]'
local Yel='\[\e[0;33m\]'; local BYel='\[\e[1;33m\]'
local Blu='\[\e[0;34m\]'; local BBlu='\[\e[1;34m\]'
local Mag='\[\e[0;35m\]'; local BMag='\[\e[1;35m\]'
local Cya='\[\e[0;36m\]'; local BCya='\[\e[1;36m\]'
local Whi='\[\e[0;37m\]'; local BWhi='\[\e[1;37m\]'
local None='\[\e[0m\]' # Return to default colour
# No username and bright colour if root
if [[ ${EUID} == 0 ]]; then
PreGitPS1+="$BRed\h "
else
PreGitPS1+="$Red\u@\h$None:"
fi
PreGitPS1+="$Blu\w$None"
else # No colour
# Sets prompt like: ravi@boxy:~/prj/sample_app
unset GIT_PS1_SHOWCOLORHINTS
PreGitPS1="${debian_chroot:+($debian_chroot)}\u@\h:\w"
fi
# Now build the part after git's status
# Highlight non-standard exit codes
if [[ $exit != 0 ]]; then
PostGitPS1="$Red[$exit]"
fi
# Change colour of prompt if root
if [[ ${EUID} == 0 ]]; then
PostGitPS1+="$BRed"'\$ '"$None"
else
PostGitPS1+="$Mag"'\$ '"$None"
fi
# Set PS1 from $PreGitPS1 + <git-status> + $PostGitPS1
__git_ps1 "$PreGitPS1" "$PostGitPS1" '(%s)'
# echo '$PS1='"$PS1" # debug
# defaut Linux Mint 17.2 user prompt:
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\] $(__git_ps1 "(%s)") \$ '
}
# This tells bash to reinterpret PS1 after every command, which we
# need because __git_ps1 will return different text and colors
PROMPT_COMMAND=__set_bash_prompt
시스템에 설치된 git 패키지에는 정보 프롬프트를 만드는 데 도움이되는 bash 파일이 포함되어 있습니다. 색을 만들려면 프롬프트에 터미널 이스케이프 시퀀스를 삽입해야합니다. 그리고 마지막 요소는 내장 변수 PROMPT_COMMAND를 사용하여 각 명령이 실행 된 후 프롬프트를 업데이트하는 것입니다.
Edit your ~/.bashrc to include the following, and you should get the prompt in your question, modulo some color differences.
#
# Git provides a bash file to create an informative prompt. This is its standard
# location on Linux. On Mac, you should be able to find it under your Git
# installation. If you are unable to find the file, I have a copy of it on my GitHub.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-git-prompt.sh
#
source /usr/share/git/completion/git-prompt.sh
#
# Next, we need to define some terminal escape sequences for colors. For a fuller
# list of colors, and an example how to use them, see my bash color file on my GitHub
# and my coniguration for colored man pages.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/10-colors.sh
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-less.sh
#
color_start='\e['
color_end='m'
color_reset='\e[0m'
color_bg_blue='44'
#
# To get a fancy git prompt, it's not sufficient to set PS1. Instead, we set PROMPT_COMMAND,
# a built in Bash variable that gets evaluated before each render of the prompt.
#
export PROMPT_COMMAND="PS1=\"\${color_start}\${color_bg_blue}\${color_end}\u@\h [\w\$(__git_ps1 \" - %s\")]\${color_reset}\n\$ \""
#
# If you find that the working directory that appears in the prompt is ofter too long,
# then trim it.
#
export PROMPT_DIRTRIM=3
Just Install the oh-my-zsh
plugins as described in this link.
It works best on macOS and Linux.
Basic Installation
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl
or wget
.
via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
There are many PS1 generators but ezprompt has the git status (2nd tab 'Status Elements' ) also.
Based on 6LYTH3's answer I've decided to post my own due to some improvements that may come in handy:
Simple solution
Open ~/.bash_profile
and add the following content
# \[\e[0m\] resets the color to default color
reset_color='\[\e[0m\]'
# \[\033[33m\] sets the color to yellow
path_color='\[\033[33m\]'
# \e[0;32m\ sets the color to green
git_clean_color='\[\e[0;32m\]'
# \e[0;31m\ sets the color to red
git_dirty_color='\[\e[0;31m\]'
# determines if the git branch you are on is clean or dirty
git_prompt ()
{
# Is this a git directory?
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi
# Grab working branch name
git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
# Clean or dirty branch
if git diff --quiet 2>/dev/null >&2; then
git_color="${git_clean_color}"
else
git_color="${git_dirty_color}"
fi
echo " [$git_color$git_branch${reset_color}]"
}
export PS1="${path_color}\w\[\e[0m\]$(git_prompt)\n"
This should:
1) Prompt the path you're in, in color: path_color.
2) Tell you which branch are you.
3) Color the name of the branch based on the status of the branch with git_clean_color
for a clean work directory and git_dirty_color for a dirty one.
4) The brackets should stay in the default color you established in your computer.
5) Puts the prompt in the next line for readability.
You can customize the colors with this list
정교한 솔루션
또 다른 옵션은 Git Bash Prompt를 사용 하여이 . Mac OS X에서 Homebrew를 통해 옵션을 사용했습니다.
git_prompt_list_themes
테마를 보려고했지만 마음에 들지 않았습니다.
git_prompt_color_samples
사용 가능한 색상을 확인합니다.
git_prompt_make_custom_theme [<Name of base theme>]
새 사용자 지정 테마를 만들려면 .git-prompt-colors.sh 파일을 만들어야합니다.
subl ~/.git-prompt-colors.sh
git-prompt-colors.sh를 열고 사용자 정의하려면 다음을 수행하십시오.
.git-prompt-colors.sh 파일은 내 사용자 정의에서 다음과 같이 보일 것입니다.
override_git_prompt_colors() {
GIT_PROMPT_THEME_NAME="Custom"
# Clean or dirty branch
if git diff --quiet 2>/dev/null >&2; then
GIT_PROMPT_BRANCH="${Green}"
else
GIT_PROMPT_BRANCH="${Red}"
fi
}
reload_git_prompt_colors "Custom"
도움이 되었기를 바랍니다. 좋은 하루 되세요!
'IT박스' 카테고리의 다른 글
__init__에서 await로 클래스 속성을 설정하는 방법 (0) | 2020.12.04 |
---|---|
Woocommerce에서 맞춤 제품 속성 가져 오기 (0) | 2020.12.03 |
오래된 데이터에 대한 UICollectionView 어설 션 오류 (0) | 2020.12.03 |
Postman Jetpack에서 테스트 컬렉션 내보내기 (0) | 2020.12.03 |
pm2를 사용하여 앱에 인수를 전달하는 방법은 무엇입니까? (0) | 2020.12.03 |