Powerlevel10k는 Zsh의 테마입니다. 속도, 유연성 및 즉시 사용 가능한 경험을 강조합니다.
exec zsh
로 Zsh를 다시 시작하십시오.p10k configure
입력하십시오. 터미널에서 바로 내장 구성 마법사에 액세스하려면 p10k configure
입력하세요.
Pure를 제외한 모든 스타일은 기능적으로 동일합니다. 동일한 정보를 표시하며 표시 방식만 다릅니다.
구성 마법사는 기본 설정에 따라 ~/.p10k.zsh
생성합니다. 이 파일을 편집하여 추가 프롬프트 사용자 정의를 수행할 수 있습니다. 구성 옵션을 탐색하는 데 도움이 되는 많은 설명이 있습니다.
팁 : 모든 프롬프트 스타일의 잠금을 해제하려면 p10k configure
실행하기 전에 권장 글꼴을 설치하십시오.
FAQ:
문제 해결 :
Enter 키를 누르면 다음 프롬프트가 즉시 나타납니다. Powerlevel10k를 사용하면 즉각적인 지연이 없습니다. Raspberry Pi에 Cygwin을 설치하는 경우 Linux Git 저장소로 cd
하고 화면 양쪽에 있는 4개의 프롬프트 줄을 채울 수 있을 만큼 충분한 프롬프트 세그먼트를 활성화하세요... 잠깐만요, 정말 미친 짓이고 아무도 그렇게 하지 않습니다. 아마도 불가능할 것입니다. 요점은 무엇을 하든 Powerlevel10k 프롬프트가 항상 빠르다는 것입니다!
모든 명령의 효과가 바로 다음 프롬프트에 어떻게 즉시 반영되는지 확인하세요.
명령 | 프롬프트 표시기 | 의미 |
---|---|---|
timew start hack linux | ⌚ hack linux | timewarrior에서 시간 추적이 활성화되었습니다. |
touch xy | ?2 | Git 저장소에 있는 추적되지 않은 파일 2개 |
rm COPYING | !1 | Git 저장소의 미단계 변경사항 1개 |
echo 3.7.3 >.python-version | ? 3.7.3 | pyenv의 현재 Python 버전 |
동일한 정보를 표시할 수 있는 다른 Zsh 테마는 프롬프트 지연을 생성하거나 시스템의 현재 상태를 반영하지 않는 프롬프트를 인쇄한 다음 나중에 새로 고칩니다. Powerlevel10k를 사용하면 신속 하고 신속한 최신 정보를 얻을 수 있습니다.
FAQ : 정말 빠른가요?
Powerlevel10k는 모든 Powerlevel9k 구성 매개변수를 이해합니다.
Powerlevel9k에서 Powerlevel10k로 마이그레이션하는 과정은 간단합니다. 모든 POWERLEVEL9K
구성 매개변수는 계속 작동합니다. 프롬프트는 이전과 (거의) 동일하게 보이지만 (확실히) 훨씬 더 빨라질 것입니다.
FAQ :
Powerlevel10k는 Pure와 동일한 프롬프트를 생성할 수 있습니다. p10k configure
입력하고 순수 스타일을 선택합니다.
Pure 스타일을 사용하는 경우에도 일시적 프롬프트 또는 인스턴트 프롬프트와 같은 Powerlevel10k 기능을 계속 사용할 수 있습니다.
프롬프트를 사용자 정의하려면 ~/.p10k.zsh
편집하세요. Powerlevel10k는 Pure 구성 매개변수를 인식하지 못하므로 PURE_CMD_MAX_EXEC_TIME=3
등 대신 POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
사용해야 합니다. 모든 관련 매개변수는 ~/.p10k.zsh
에 있습니다. 이 파일에는 탐색하는 데 도움이 되는 많은 주석이 포함되어 있습니다.
FAQ: 구성 마법사에서 가장 좋은 프롬프트 스타일은 무엇입니까?
~/.zshrc
가 많은 플러그인을 로드하거나 단지 몇 개의 느린 플러그인(예: pyenv 또는 nvm)을 로드하는 경우 Zsh를 시작하는 데 약간의 시간이 걸린다는 것을 알 수 있습니다.
Powerlevel10k는 테마로 인한 것이 아니더라도 Zsh 시작 지연을 제거할 수 있습니다.
이 기능을 인스턴트 프롬프트 라고 합니다. p10k configure
통해 또는 수동으로 이를 명시적으로 활성화해야 합니다. 주석에 적힌 대로 수행됩니다. Zsh 시작 시 즉시 프롬프트를 인쇄하여 플러그인이 로드되는 동안 입력을 시작할 수 있습니다.
다른 테마는 Zsh 시작 지연을 증가시킵니다 . 어떤 테마는 많이, 다른 테마는 약간씩 증가합니다. Powerlevel10k는 이를 완전히 제거합니다 .
Instant Prompt의 작동 방식이 궁금하다면 zsh-bench의 이 섹션을 참조하세요.
FAQ: 인스턴트 프롬프트를 어떻게 구성합니까?
일부 명령의 동작은 전역 환경에 따라 다릅니다. 예를 들어 kubectl run ...
현재 kubernetes 컨텍스트에 의해 정의된 클러스터에서 이미지를 실행합니다. "prod"와 "testing" 사이의 컨텍스트를 자주 변경하는 경우 Zsh 프롬프트에 현재 컨텍스트를 표시할 수 있습니다. AWS, Azure 및 Google Cloud 자격 증명에 대해서도 마찬가지로 수행하면 프롬프트가 꽤 복잡해집니다.
표시 명령을 입력합니다. 이 기능을 사용하면 현재 입력 중인 명령과 관련된 경우에만 프롬프트 세그먼트가 표시됩니다.
기본적으로 여러 프롬프트 세그먼트에 대해 p10k configure
활성화 표시 명령으로 생성된 구성입니다. Kubernetes 컨텍스트에 대한 관련 매개변수는 다음과 같습니다.
# Show prompt segment "kubecontext" only when the command you are typing invokes one of these tools.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
다양한 프롬프트 세그먼트가 표시되는 시기를 사용자 정의하려면 ~/.p10k.zsh
를 열고 SHOW_ON_COMMAND
검색한 후 이러한 매개변수를 제거하여 영향을 받는 세그먼트를 무조건 표시하거나 해당 값을 변경하세요.
p10k configure
통해 임시 프롬프트가 활성화되면 Powerlevel10k는 명령줄을 수락할 때 모든 프롬프트를 줄입니다.
임시 프롬프트를 사용하면 터미널 스크롤백에서 일련의 명령을 복사하여 붙여넣는 것이 훨씬 쉬워집니다.
팁 : 임시 프롬프트를 활성화하는 경우 두 줄 프롬프트를 활용하세요. 스크롤백 밀도 감소라는 일반적인 단점 없이 명령을 입력하기 위한 추가 공간의 이점을 얻을 수 있습니다. 스파스 프롬프트(프롬프트 앞에 빈 줄 포함)도 임시 프롬프트와 함께 사용하면 훌륭하게 작동합니다.
현재 작업 디렉토리는 아마도 가장 중요한 프롬프트 세그먼트일 것입니다. Powerlevel10k는 중요한 부분을 강조하고 수평 공간이 부족할 때 정보 손실을 최소화하면서 자르기 위해 많은 노력을 기울였습니다.
전체 디렉터리가 맞지 않으면 가장 왼쪽 세그먼트가 가장 짧은 고유 접두사로 잘립니다. 스크린캐스트에서 ~/work
~/wo
됩니다. 모호하므로 ~/w
로 잘라낼 수 없습니다(세션이 기록될 때 ~/wireguard
있었습니다). 다음 세그먼트( projects
)는 ~/work/
에 p
로 시작하는 다른 항목이 없기 때문에 p
로 변합니다.
디렉터리 세그먼트는 다음 세 가지 색상 중 하나로 표시됩니다.
팁 : 잘린 디렉토리를 복사하여 붙여넣고 TAB 을 누르면 원본이 완성됩니다.
문제 해결 : Rainbow 스타일을 사용할 때 프롬프트에서 디렉토리를 보기가 어렵습니다.
Powerlevel10k는 다른 Zsh 테마처럼 보이도록 구성할 수 있습니다.
Pure, Powerlevel9k 및 robbyrussell 에뮬레이션이 내장되어 있습니다. 다른 테마의 모양을 에뮬레이트하려면 적절한 구성 파일을 작성해야 합니다. 이를 해결하는 가장 좋은 방법은 p10k configure
실행하고 목표에 가장 가까운 스타일을 선택한 다음 ~/.p10k.zsh
편집하는 것입니다.
Powerlevel10k 외관의 전체 범위는 Spartan부터 시작됩니다.
에게 말도 안 되는 기발한:
Powerlevel10k에는 다양한 소스의 정보를 표시할 수 있는 수십 개의 고품질 프롬프트 세그먼트가 내장되어 있습니다. p10k configure
실행하고 Pure를 제외한 스타일을 선택하면 이러한 세그먼트 중 다수가 기본적으로 활성화되지만 다른 세그먼트는 ~/.p10k.zsh
열고 주석 처리를 제거하여 수동으로 활성화할 수 있습니다. 원하는 만큼 많은 세그먼트를 활성화할 수 있습니다. 프롬프트나 Zsh 시작 속도가 느려지지 않습니다.
분절 | 의미 |
---|---|
anaconda | Conda의 가상 환경 |
asdf | asdf의 도구 버전 |
aws | AWS 프로필 |
aws_eb_env | AWS Elastic Beanstalk 환경 |
azure | Azure 계정 이름 |
background_jobs | 백그라운드 작업 존재 |
battery | 내부 배터리 상태 및 충전 수준(예, 문자 그대로 배터리가 포함되어 있음) |
command_execution_time | 마지막 명령의 지속 시간(벽 시간) |
context | 사용자@호스트 이름 |
cpu_arch | CPU 아키텍처 |
dir | 현재 작업 디렉토리 |
direnv | 방향 상태 |
disk_usage | 디스크 사용량 |
dotnet_version | 닷넷 버전 |
fvm | fvm의 flutter 환경 |
gcloud | Google Cloud CLI 계정 및 프로젝트 |
goenv | goenv에서 환경 이동 |
google_app_cred | 구글 애플리케이션 자격증명 |
go_version | 버전으로 이동 |
haskell_stack | 스택의 하스켈 버전 |
ip | 지정된 네트워크 인터페이스의 IP 주소 및 대역폭 사용량 |
java_version | 자바 버전 |
jenv | jenv의 Java 환경 |
kubecontext | 현재 쿠버네티스 컨텍스트 |
laravel_version | laravel PHP 프레임워크 버전 |
load | CPU 로드 |
luaenv | luaenv의 루아 환경 |
midnight_commander | 미드나잇 커맨더 쉘 |
nix_shell | nix 쉘 표시기 |
nnn | NNN 쉘 |
lf | lf 쉘 |
chezmoi_shell | 체즈모이 쉘 |
nodeenv | nodeenv의 node.js 환경 |
nodenv | nodenv의 node.js 환경 |
node_version | node.js 버전 |
nordvpn | nordvpn 연결 상태 |
nvm | nvm의 node.js 환경 |
os_icon | OS 로고(macOS의 경우 apple, debian의 경우 소용돌이 등) |
package | package.json의 name@version |
per_directory_history | Oh My Zsh 디렉토리별 기록 로컬/글로벌 표시기 |
perlbrew | Perlbrew의 Perl 버전 |
phpenv | phpenv의 PHP 환경 |
php_version | PHP 버전 |
plenv | plenv의 Perl 환경 |
prompt_char | 다기능 프롬프트 기호; vi 모드에 따라 변경됩니다. ❯ , ❮ , V , ▶ 각각 삽입, 명령, 시각적 및 교체 모드입니다. 오류가 발생하면 빨간색으로 변합니다 |
proxy | 시스템 전체 http/https/ftp 프록시 |
public_ip | 공용 IP 주소 |
pyenv | pyenv의 Python 환경 |
ram | 여유 RAM |
ranger | 레인저 쉘 |
yazi | 야지 쉘 |
rbenv | rbenv의 루비 환경 |
rust_version | 녹슨 버전 |
rvm | RVM의 루비 환경 |
scalaenv | scalaenv의 스칼라 버전 |
status | 마지막 명령의 종료 코드 |
swap | 중고 스왑 |
taskwarrior | taskwarrior 작업 수 |
terraform | 테라폼 작업공간 |
terraform_version | 테라폼 버전 |
time | 현재 시간 |
timewarrior | 타임워리어 추적 상태 |
todo | 할 일 항목 |
toolbox | 도구 상자 이름 |
vcs | Git 저장소 상태 |
vim_shell | vim 쉘( :sh ) |
virtualenv | venv의 Python 환경 |
vi_mode | vi 모드(prompt_char를 활성화한 경우에는 필요하지 않음) |
vpn_ip | 가상 사설망 표시기 |
wifi | WiFi 속도 |
xplr | xplr 쉘 |
필요한 작업을 수행하는 프롬프트 세그먼트가 없으면 직접 구현하십시오. Powerlevel10k는 내장된 세그먼트만큼 빠르고 유연한 세그먼트를 정의하기 위한 공개 API를 제공합니다.
Linux에서는 /sys/class/thermal/thermal_zone0/temp
읽어 현재 CPU 온도를 가져올 수 있습니다. 스크린캐스트에서는 이 값을 표시하기 위해 프롬프트 세그먼트를 정의하는 방법을 보여줍니다. 세그먼트가 정의되면 다른 세그먼트와 마찬가지로 사용할 수 있습니다. 모든 표준 사용자 정의 매개변수는 기본적으로 작동합니다.
참조를 위해 p10k help segment
입력하세요.
참고 : 이미 초기화된 대화형 셸에서 POWERLEVEL9K_*
매개변수를 수정하는 경우( ~/.p10k.zsh
편집과 반대) 변경 사항이 즉시 적용되지 않을 수 있습니다. 수정 사항을 적용하려면 p10k reload
호출하세요. POWERLEVEL9K_DISABLE_HOT_RELOAD=false
로 설정하면 p10k reload
할 필요가 없지만 프롬프트가 약간 느려집니다.
팁 : Powerlevel10k의 향후 버전과의 충돌을 피하기 위해 자체 세그먼트 이름 앞에 my_
붙입니다.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
중국 사용자는 더 빠른 다운로드를 위해 gitee.com의 공식 미러를 사용할 수 있습니다.
중국에서 사용되는 gitee.com의 이미지는 gitee.com에서 볼 수 있습니다.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
이것은 가장 간단한 종류의 설치이며 플러그인 관리자를 사용하는 경우에도 작동합니다. 플러그인 관리자에서 현재 테마를 비활성화했는지 확인하세요. 도움이 필요하면 문제 해결을 참조하세요.
저장소를 복제합니다.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
중국 사용자는 더 빠른 다운로드를 위해 gitee.com의 공식 미러를 사용할 수 있습니다.
중국에서 사용되는 gitee.com의 이미지는 gitee.com에서 볼 수 있습니다.
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
~/.zshrc
열고 ZSH_THEME
설정하는 줄을 찾아 해당 값을 "powerlevel10k/powerlevel10k"
로 변경합니다.
~/.zpreztorc
에 zstyle :prezto:module:prompt theme powerlevel10k
추가하세요.
~/.zimrc
에 zmodule romkatv/powerlevel10k --use degit
추가하고 zimfw install
실행하세요.
~/.zshrc
에 antibody bundle romkatv/powerlevel10k
추가합니다.
~/.zsh_plugins.txt
에 romkatv/powerlevel10k
추가합니다.
~/.zshrc
에 antigen theme romkatv/powerlevel10k
추가합니다. 그 뒤에 어딘가에 antigen apply
했는지 확인하십시오.
~/.zshrc
에 zplug romkatv/powerlevel10k, as:theme, depth:1
추가합니다.
~/.zshrc
에 zgen load romkatv/powerlevel10k powerlevel10k
추가합니다.
zplugin ice depth=1; zplugin light romkatv/powerlevel10k
~/.zshrc
.
depth=1
얼음의 사용은 선택 사항입니다. 다른 유형의 얼음은 Powerlevel10k에서 권장되거나 공식적으로 지원되지 않습니다.
zinit ice depth=1; zinit light romkatv/powerlevel10k
~/.zshrc
.
depth=1
얼음의 사용은 선택 사항입니다. 다른 유형의 얼음은 Powerlevel10k에서 권장되거나 공식적으로 지원되지 않습니다.
zi ice depth=1; zi light romkatv/powerlevel10k
~/.zshrc
.
depth=1
얼음의 사용은 선택 사항입니다. 다른 유형의 얼음은 Powerlevel10k에서 권장되거나 공식적으로 지원되지 않습니다.
~/.zshrc
에 plug "romkatv/powerlevel10k"
추가하세요.
brew install powerlevel10k
echo " source $( brew --prefix ) /share/powerlevel10k/powerlevel10k.zsh-theme " >> ~/.zshrc
yay -S --noconfirm zsh-theme-powerlevel10k-git
echo ' source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
위에 언급된 zsh-theme-powerlevel10k-git은 공식 Powerlevel10k 패키지입니다.
apk add zsh zsh-theme-powerlevel10k
mkdir -p ~ /.local/share/zsh/plugins
ln -s /usr/share/zsh/plugins/powerlevel10k ~ /.local/share/zsh/plugins/
이 페이지의 지침을 따르세요.
처음 실행 시 Powerlevel10k 구성 마법사가 몇 가지 질문을 하고 프롬프트를 구성합니다. 자동으로 실행되지 않으면 p10k configure
입력하세요. 구성 마법사는 기본 설정에 따라 ~/.p10k.zsh
생성합니다. 이 파일을 편집하여 추가 프롬프트 사용자 정의를 수행할 수 있습니다. 구성 옵션을 탐색하는 데 도움이 되는 많은 설명이 있습니다.
FAQ :
문제 해결 :
이전에 Powerlevel9k를 사용했다면 구성 옵션을 제거하지 마십시오 . Powerlevel10k는 이를 선택하여 익숙한 것과 동일한 프롬프트 UI를 제공합니다. Powerlevel9k 호환성을 참조하세요.
FAQ :
문제 해결 : Powerlevel9k와 비교하여 프롬프트에 공백이 더 많거나 누락되었습니다.
Powerlevel10k에는 사용자 정의 글꼴이 필요하지 않지만 사용 가능한 경우 이를 활용할 수 있습니다. Nerd Fonts, Source Code Pro, Font Awesome, Powerline 및 기본 시스템 글꼴과도 잘 작동합니다. 전체 스타일 옵션 선택은 Nerd Fonts를 사용할 때만 사용할 수 있습니다.
? 권장 글꼴 : Powerlevel10k에 패치된 Meslo Nerd 글꼴입니다. ?
Jim Lyles가 Bitstream을 위해 디자인하고 Apple용으로 사용자 정의하고 André Berg가 추가로 사용자 정의한 후 최종적으로 Nerd Fonts의 Ryan L McIntyre가 개발한 사용자 정의 스크립트를 사용하여 실제로 패치한 멋진 고정 폭 글꼴입니다. Powerlevel10k에 필요할 수 있는 모든 문자 및 기호가 포함되어 있습니다. 모든 주요 운영 체제의 수십 개의 다양한 터미널에서 전투 테스트를 거쳤습니다.
FAQ : 추천글꼴은 어떻게 만들어졌나요?
iTerm2 또는 Termux를 사용하는 경우 p10k configure
이 권장 글꼴을 설치할 수 있습니다. Meslo Nerd Font 설치 여부를 묻는 질문에 간단히 Yes
대답하세요.
다른 터미널을 사용하는 경우에는 수동 글꼴 설치를 진행하세요. ?
MesloLGS NF
글꼴을 사용할 수 있게 됩니다.p10k configure
입력하고 Meslo Nerd Font를 설치할지 묻는 질문에 Yes
대답합니다. 또는 iTerm2 → Preferences → Profiles → Text를 열고 글꼴을 MesloLGS NF
로 설정하세요.MesloLGS NF
제품군을 선택합니다.module.exports.config
아래의 fontFamily
값을 MesloLGS NF
로 변경합니다.terminal.integrated.fontFamily
입력한 후 아래 값을 MesloLGS NF
로 설정합니다. 이 스크린샷을 참조하여 모양을 확인하거나 추가 정보를 보려면 이 문제를 참조하세요.MesloLGS NF Regular
선택합니다.MesloLGS NF Regular
선택합니다.MesloLGS NF Regular
선택합니다.MesloLGS NF
로 설정합니다.MesloLGS NF
로 설정합니다.MesloLGS NF
로 설정합니다.MesloLGS NF
로 설정합니다.p10k configure
입력하고 Meslo Nerd Font를 설치할지 묻는 메시지가 나타나면 Yes
대답합니다.config
입력하고 Appearance 로 이동하여 Add a new Font 를 탭하고 Open Gallery 를 탭한 다음 MesloLGS NF.css 를 선택하고 import 를 탭한 후 홈 보기에서 exit
입력하여 글꼴을 다시 로드합니다.MesloLGS NF
로 설정합니다.MesloLGS NF Regular
선택합니다. 닫기 를 클릭하여 기본 설정 대화 상자를 종료합니다.MesloLGS NF Regular
선택합니다. 닫기 를 클릭하여 기본 설정 대화 상자를 종료합니다.MesloLGS NF
로 변경합니다. 세션이 있는 경우 설정 → 개별 세션을 마우스 오른쪽 버튼으로 클릭 → 세션 편집 → 터미널 설정 → 글꼴 설정을 통해 각 세션의 글꼴을 변경해야 합니다.MesloLGS NF Regular
으로 변경합니다. 원격 호스트 연결의 글꼴을 변경하려면 기본 설정 → 터미널 옵션 → 모양과 느낌 으로 이동하여 터미널 UI 아래 글꼴을 MesloLGS NF Regular
로 변경하세요.MesloLGS NF
글꼴을 선택합니다.MesloLGS NF Regular
로 설정합니다.MesloLGS NF
선택한 다음 확인 을 클릭합니다. 확인 을 클릭하여 프로필을 저장합니다. 새 프로필을 선택하고 기본값으로 설정 을 클릭합니다.~/.config/alacritty/alacritty.toml
생성하거나 열고 다음 섹션을 추가합니다. [ font . normal ]
family = " MesloLGS NF "
~/.config/foot/foot.ini
만들거나 열고 다음 섹션을 추가합니다. font =MesloLGS NF: size =12
~/.config/kitty/kitty.conf
만들거나 열고 다음 줄을 추가합니다. font_family MesloLGS NF
MesloLGS NF
로 설정합니다. PuTTY 버전 >= 0.75가 필요합니다.$HOME/.config/wezterm/wezterm.lua
생성하거나 열고 다음을 추가합니다: local wezterm = require ' wezterm ' ;
return {
font = wezterm . font ( " MesloLGS NF " ),
}
~/.Xresources
만들거나 열고 다음 줄을 추가합니다. URxvt.font: xft:MesloLGS NF:size=11
xrdb ~/.Xresources
실행하여 다시 로드하세요. 새 구성은 모든 새 터미널에 적용됩니다.~/.Xresources
만들거나 열고 다음 줄을 추가합니다. xterm*faceName: MesloLGS NF
xrdb ~/.Xresources
실행하여 다시 로드하세요. 새 구성은 모든 새 터미널에 적용됩니다.~/.config/zed/settings.json
열고 terminal.font_family
"MesloLGS NF"
로 설정합니다. {
"terminal" : {
"font_family" : "MesloLGS NF"
} ,
// Other settings.
}
'MesloLGS NF'
(따옴표 포함)로 설정하고 맞춤 CSS(인라인 텍스트)를 다음과 같이 설정합니다. @font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Regular.ttf" );
font-weight : normal;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold.ttf" );
font-weight : bold;
font-style : normal;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Italic.ttf" );
font-weight : normal;
font-style : italic;
}
@font-face {
font-family : "MesloLGS NF" ;
src : url ( "https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold%20Italic.ttf" );
font-weight : bold;
font-style : italic;
}
~/.config/deepin/deepin-terminal/config.conf
생성하거나 열고 다음 섹션을 추가합니다. [basic.interface.font]
value = " MesloLGS NF "
p10k configure
실행하여 새로운 ~/.p10k.zsh
생성하세요. 이전 구성이 새 글꼴에서 제대로 작동하지 않을 수 있습니다.다른 터미널을 사용하고 글꼴을 설정하는 방법을 알고 계십니까? 목록을 확장하려면 PR을 보내 지식을 공유하세요!
Docker에서 Powerlevel10k를 사용해 보세요. 테마를 시험해 보는 동안 파일 시스템을 안전하게 변경할 수 있습니다. Zsh를 종료하면 컨테이너가 삭제됩니다.
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -it --rm alpine sh -uec '
apk add git zsh nano vim
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
cd ~/powerlevel10k
exec zsh '
팁 : 모든 프롬프트 스타일에 액세스하려면 Docker 명령을 실행하기 전에 권장 글꼴을 설치하세요.
팁 : Docker에서 p10k configure
실행하여 다른 프롬프트 스타일을 시도해 보세요.
Powerlevel10k는 MIT 라이선스로 출시됩니다.
$HOME/.git
의 Git 상태가 프롬프트에 표시되지 않는 이유는 무엇입니까?Powerlevel10k를 업데이트하는 명령은 설치 방법에 따라 다릅니다.
설치 | 업데이트 명령 |
---|---|
수동 | git -C ~/powerlevel10k pull |
오 마이 Zsh | git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull |
프레즈토 | zprezto-update |
짐 | zimfw update |
항원 | antigen update |
해독제 | antidote update |
Z플러그 | zplug update |
즈겐 | zgen update |
Z플러그인 | zplugin update |
지니트 | zinit update |
지 | zi update |
기력 | zap update |
홈브류 | brew update && brew upgrade |
아치 리눅스 | yay -S --noconfirm zsh-theme-powerlevel10k-git |
알파인 리눅스 | apk update && apk upgrade |
중요 : Powerlevel10k를 업데이트한 후 Zsh를 다시 시작하세요. source ~/.zshrc
사용하지 마십시오.
~/.zshrc
에서 "p10k"에 대한 모든 참조를 제거합니다. 상단에 다음 스니펫이 있을 수 있습니다.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
그리고 맨 아래에는 이렇습니다.
[[ ! -f ~ /.p10k.zsh ]] || source ~ /.p10k.zsh
이는 구성 마법사에 의해 추가됩니다. 제거하세요.
~/.zshrc
, ~/.zpreztorc
및 ~/.zimrc
에서 "powerlevel10k"에 대한 모든 참조를 제거합니다(이러한 파일 중 일부가 누락되었을 수 있습니다. 이는 정상입니다). 이러한 참조는 Powerlevel10k를 설치할 때 수동으로 추가되었습니다. 알림이 필요한 경우 설치 지침을 참조하세요.
"p10k" 및 "powerlevel10k"에 대한 모든 참조가 ~/.zshrc
, ~/.zpreztorc
및 ~/.zimrc
에서 사라졌는지 확인하세요.
grep -E ' p10k|powerlevel10k ' ~ /.zshrc ~ /.zpreztorc ~ /.zimrc 2> /dev/null
이 명령이 출력을 생성하는 경우 여전히 "p10k" 또는 "powerlevel10k"에 대한 참조가 있습니다. 제거해야합니다.
Powerlevel10k 구성 파일을 삭제합니다. 이 파일은 구성 마법사에 의해 생성되며 직접 편집한 내용이 포함될 수 있습니다.
rm -f ~ /.p10k.zsh
Powerlevel10k 소스 파일을 삭제합니다. 이 파일은 Powerlevel10k를 설치할 때 다운로드되었습니다. 삭제 명령은 선택한 설치 방법에 따라 다릅니다. 알림이 필요한 경우 설치 지침을 참조하세요.
설치 | 제거 명령 |
---|---|
수동 | rm -rf ~/powerlevel10k |
오 마이 Zsh | rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k |
프레즈토 | 해당사항 없음 |
짐 | zimfw uninstall |
항원 | antigen purge romkatv/powerlevel10k |
해독제 | antidote purge romkatv/powerlevel10k |
Z플러그 | zplug clean |
즈겐 | zgen reset |
Z플러그인 | zplugin delete romkatv/powerlevel10k |
지니트 | zinit delete romkatv/powerlevel10k |
지 | zi delete romkatv/powerlevel10k |
기력 | zsh -ic 'zap clean' |
홈브류 | brew uninstall powerlevel10k |
아치 리눅스 | yay -R --noconfirm zsh-theme-powerlevel10k-git |
알파인 리눅스 | apk del zsh-theme-powerlevel10k |
Zsh를 다시 시작하십시오. source ~/.zshrc
사용하지 마십시오.
Powerlevel10k 캐시 파일을 삭제합니다.
rm -rf -- " ${XDG_CACHE_HOME :- $HOME / .cache} " /p10k- * (N) " ${XDG_CACHE_HOME :- $HOME / .cache} " /gitstatus
uname -sm | tr ' [A-Z] ' ' [a-z] '
target_uname
값을 이전 명령의 출력으로 바꾼 후 인터넷에 연결된 머신에서 다음 명령을 실행합니다. target_uname= " replace this with the output of the previous command "
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
GITSTATUS_CACHE_DIR= " $HOME " /powerlevel10k/gitstatus/usrbin ~ /powerlevel10k/gitstatus/install -f -s " ${target_uname % * } " -m " ${target_uname #* } "
~/powerlevel10k
복사합니다.~/.zshrc
에 source ~/powerlevel10k/powerlevel10k.zsh-theme
추가합니다. echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
~/.zshrc
ZSH_THEME
설정하는 경우 해당 행을 제거하십시오. sed -i.bak ' /^ZSH_THEME=/d ' ~ /.zshrc
업데이트하려면 두 시스템 모두에서 ~/powerlevel10k
제거하고 1~3단계를 반복하세요.
도움을 요청하고 버그를 보고하는 가장 좋은 방법은 문제를 제기하는 것입니다.
Gitter는 또 다른 옵션입니다.
다른 모든 방법이 실패하면 [email protected]으로 이메일을 보내세요.
필요한 경우 이 PGP 키를 사용하여 통신을 암호화하세요.
Powerlevel10k는 프롬프트만 정의하고 다른 것은 정의하지 않습니다. 프롬프트 관련 옵션과 PS1
및 RPS1
매개변수를 설정합니다.
스크린샷에서 강조 표시된 영역 내의 모든 것은 Powerlevel10k에 의해 생성됩니다. Powerlevel10k는 이 영역 밖의 터미널 내용이나 색상을 제어할 수 없습니다.
Powerlevel10k는 다음 항목에 영향을 주지 않습니다.
ls
에서 사용하는 색상입니다.git
명령의 동작입니다.PS1
및 RPS1
이외의 프롬프트 매개변수.p10k
를 제외하고는 새로운 명령을 설치하지 않습니다. # Add powerlevel10k to the list of Oh My Zsh themes.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM /themes/powerlevel10k
# Replace ZSH_THEME="powerlevel9k/powerlevel9k" with ZSH_THEME="powerlevel10k/powerlevel10k".
sed -i.bak ' s/powerlevel9k/powerlevel10k/g ' ~ /.zshrc
# Restart Zsh.
exec zsh
p10k configure
입력하고 원하는 프롬프트 스타일을 선택하세요.관련된:
예. zsh-bench 또는 Powerlevel9k 및 Spaceship과의 직접 비교를 참조하세요.
인스턴트 프롬프트에 대해 알아보려면 인스턴트 프롬프트를 참조하세요. 이 섹션에서는 이를 활성화하고 구성하는 방법을 설명하고 알아야 할 주의 사항을 나열합니다.
p10k configure
통해 또는 ~/.zshrc
상단에 다음 코드 조각을 수동으로 추가하여 즉시 프롬프트를 활성화할 수 있습니다.
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
줄을 그대로 복사하는 것이 중요합니다. source
다른 것으로 바꾸지 말고, zcompile
호출하지 말고, 출력을 리디렉션하지 마십시오.
인스턴트 프롬프트가 활성화되면 Zsh 초기화 기간 동안 표준 입력은 /dev/null
로 리디렉션되고 표준 오류가 있는 표준 출력은 임시 파일로 리디렉션됩니다. Zsh가 완전히 초기화되면 표준 파일 설명자가 복원되고 임시 파일의 내용이 인쇄됩니다.
인스턴트 프롬프트를 사용하는 경우 Zsh 시작 시 나타나는 출력을 주의 깊게 확인해야 합니다. 이는 인스턴트 프롬프트에 의해 초기화가 변경되었거나 심지어 깨졌음을 나타낼 수도 있기 때문입니다. 키링 비밀번호 요청 또는 [y/n] 확인과 같이 콘솔 입력이 필요할 수 있는 초기화 코드는 ~/.zshrc
의 인스턴트 프롬프트 서문 위로 이동되어야 합니다. 콘솔에 인쇄만 하고 콘솔에서 읽지 않는 초기화 코드는 일반적으로 색상이 있는 출력이 색상 없이 나타날 수 있지만 인스턴트 프롬프트에서는 올바르게 작동합니다. 그대로 두거나, 출력을 억제하거나, 인스턴트 프롬프트 서문 위로 이동할 수 있습니다.
다음은 인스턴트 프롬프트가 활성화되면 중단되는 ~/.zshrc
의 예입니다.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
keychain id_rsa --agents ssh # asks for password
chatty-script # spams to stdout even when everything is fine
# ...
수정된 버전:
keychain id_rsa --agents ssh # moved before instant prompt
# OK to perform console I/O before this point.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
# From this point on, until zsh is fully initialized, console input won't work and
# console output may appear uncolored.
chatty-script > /dev/null # spam output suppressed
# ...
POWERLEVEL9K_INSTANT_PROMPT
설정되지 않거나 verbose
로 설정된 경우 Powerlevel10k는 잠재적인 문제에 주의를 기울이기 위해 초기화 중에 콘솔 출력을 감지할 때 경고를 인쇄합니다. POWERLEVEL9K_INSTANT_PROMPT=quiet
사용하면 콘솔 출력을 억제하지 않고 이 경고를 음소거할 수 있습니다. ~/.zshrc
의 일부 초기화 코드가 콘솔에 인쇄되고 이를 인스턴트 프롬프트 프리앰블 위로 이동하거나 출력을 억제하는 것이 불가능한 경우에 권장됩니다. POWERLEVEL9K_INSTANT_PROMPT=off
사용하면 인스턴트 프롬프트를 완전히 비활성화할 수 있습니다. 인스턴트 프롬프트가 Zsh 초기화를 중단하고 이를 해결하는 방법을 모르는 경우 이 작업을 수행하십시오.
POWERLEVEL9K_INSTANT_PROMPT
값은 p10k configure
실행하고 인스턴트 프롬프트 화면에서 적절한 옵션을 선택하여 변경할 수 있습니다. 또는 기존 ~/.p10k.zsh
에서 POWERLEVEL9K_INSTANT_PROMPT
검색하여 해당 값을 변경할 수 있습니다.
참고 : 인스턴트 프롬프트에는 Zsh >= 5.4가 필요합니다. 이전 버전의 Zsh를 사용하는 경우에도 활성화해도 괜찮지만 아무 작업도 수행되지 않습니다.
FAQ :
인스턴트 프롬프트를 활성화한 경우 ~/.zshrc
상단에 다음 줄이 있어야 합니다.
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
direnv를 초기화하려면 해당 블록 위에 한 줄, 아래에 한 줄을 추가해야 합니다.
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv export zsh ) "
if [[ -r " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh " ]] ; then
source " ${XDG_CACHE_HOME :- $HOME / .cache} /p10k-instant-prompt- ${( % ) :-% n} .zsh "
fi
(( ${+commands[direnv]} )) && emulate zsh -c " $( direnv hook zsh ) "
관련 : 인스턴트 프롬프트를 사용할 때 GPG_TTY를 어떻게 내보내나요?
~/.zshrc
어디에서나 이와 같이 GPG_TTY
내보낼 수 있습니다.
export GPG_TTY= $TTY
이는 인스턴트 프롬프트 사용 여부에 관계없이 작동합니다. powerlevel10k를 사용하지 않더라도 작동합니다. 추가 보너스로 일반적으로 사용되는 export GPG_TTY=$(tty)
보다 훨씬 빠릅니다.
관련 : 인스턴트 프롬프트를 사용할 때 direnv를 어떻게 초기화합니까?
Lean, Classic 또는 Rainbow 스타일을 사용하는 경우 Git 상태는 다음과 같습니다.
feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
상징 | 의미 | 원천 |
---|---|---|
feature | 현재 지점; 브랜치에 없으면 #tag 또는 @commit 로 대체됩니다. | git status --ignore-submodules=dirty |
master | 원격 추적 지점; 로컬 지점과 다른 경우에만 표시됩니다. | git rev-parse --abbrev-ref --symbolic-full-name @{upstream} |
wip | 최신 커밋 요약에 "wip" 또는 "WIP"가 포함되어 있습니다. | git show --pretty=%s --no-patch HEAD |
= | 리모콘으로 최신 상태를 유지합니다(앞이나 뒤도 아님). | git rev-list --count HEAD...@{upstream} |
⇣42 | 원격 뒤에 이렇게 많은 커밋이 있습니다. | git rev-list --right-only --count HEAD...@{upstream} |
⇡42 | 원격보다 훨씬 많은 커밋을 수행합니다. | git rev-list --left-only --count HEAD...@{upstream} |
⇠42 | 푸시 리모트 뒤에 이렇게 많은 커밋이 있습니다. | git rev-list --right-only --count HEAD...@{push} |
⇢42 | 푸시 리모트보다 앞서 이 많은 커밋을 수행합니다. | git rev-list --left-only --count HEAD...@{push} |
*42 | 이 많은 은닉처 | git stash list |
merge | 저장소 상태 | git status --ignore-submodules=dirty |
~42 | 이 많은 병합 충돌 | git status --ignore-submodules=dirty |
+42 | 이 많은 단계적 변경 사항 | git status --ignore-submodules=dirty |
!42 | 이렇게 많은 단계적 변경사항이 없습니다. | git status --ignore-submodules=dirty |
?42 | 추적되지 않는 파일이 이렇게 많아요 | git status --ignore-submodules=dirty |
─ | 준비된 파일, 준비되지 않은 파일, 추적되지 않은 파일의 수를 알 수 없습니다. | echo $POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY 또는 git config --get bash.showDirtyState |
관련 : Git 상태의 형식을 어떻게 변경합니까?
Git 상태의 형식을 변경하려면 ~/.p10k.zsh
열고 my_git_formatter
를 검색한 후 소스 코드를 편집하세요.
관련 : Git 상태의 다양한 기호는 무엇을 의미합니까?
$HOME/.git
의 Git 상태가 프롬프트에 표시되지 않는 이유는 무엇입니까? Lean, Classic 또는 Rainbow 스타일을 사용하는 경우 ~/.p10k.zsh
에는 다음 매개변수가 포함됩니다.
# Don't show Git status in prompt for repositories whose workdir matches this pattern.
# For example, if set to '~', the Git repository at $HOME/.git will be ignored.
# Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN= ' ~ '
프롬프트에서 $HOME/.git
의 Git 상태를 보려면 ~/.p10k.zsh
열고 POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN
제거하세요.
TL; DR : 프롬프트의 GIT 상태가 회색이되면 PowerLevel10K가 현재 백그라운드에서 최신 GIT 상태를 계산하고 있음을 의미합니다. 이 계산이 완료되면 프롬프트가 자동으로 새로 고침됩니다.
현재 디렉토리가 GIT 저장소 내에있는 경우 PowerLevel10K는 모든 명령 후에 최신 GIT 상태를 계산합니다. 저장소가 크거나 기계가 느려지면이 계산에는 시간이 많이 걸릴 수 있습니다. 10 밀리 초 이상 ( POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS
를 통해 구성 가능)이 소요되는 경우 PowerLevel10K는 마지막으로 알려진 GIT 상태를 회색으로 표시하고 백그라운드에서 최신 GIT 상태를 계속 계산합니다. 계산이 완료되면 PowerLevel10K는 새로운 정보로 프롬프트를 새로 고침합니다. 이번에는 컬러 GIT 상태가 있습니다.
Rainbow Style을 사용할 때는 GIT 상태가 여전히 계산되는 동안 회색에서 검은 색으로 표시됩니다. 터미널 색상 팔레트에 따라 읽기가 어려울 수 있습니다. 이 경우 더 대비를 위해 배경색을 더 가벼운 것으로 변경할 수 있습니다. 이렇게하려면 ~/.p10k.zsh
열고 POWERLEVEL9K_VCS_LOADING_BACKGROUND
을 검색하고 댓글을 달면 값을 변경하고 값을 변경하십시오.
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=244
source ~/.p10k.zsh
현재 ZSH 세션에 변경 사항을 적용합니다.
관련 : 신속한 색상을 어떻게 변경합니까?
Lean, Classic 또는 Rainbow Style을 사용할 때 프롬프트는 Root 또는 SSH를 통해 로그인 할 때 username@hostname
표시합니다. 로컬 컴퓨터에 일반 사용자로 로그인 할 때 username
또는 hostname
표시하는 데는 가치가 거의 없습니다. 따라서 프롬프트에 username@hostname
이 없으면 로컬에서 작업하고 있으며 루트가 아니라는 것을 나타냅니다. 그러나 변경할 수 있습니다.
열 ~/.p10k.zsh
. 상단에 가까워지면 프롬프트에 표시되는 세그먼트를 정의하는 가장 중요한 매개 변수를 볼 수 있습니다. 일반적으로 유용한 프롬프트 세그먼트는 거기에 나열되어 있습니다. 그들 중 일부는 활성화되고 다른 일부는 언급되어 있습니다. 그들 중 하나가 당신에게 관심이 있습니다.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
context # user@hostname
...
)
context
검색 하여이 프롬프트 세그먼트에 특정한 매개 변수를 나열하는 구성에서 섹션을 찾으십시오. 다음 줄이 표시되어야합니다.
# Don't show context unless running with privileges or in SSH.
# Tip: Remove the next line to always show context.
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
팁을 따르고 마지막 줄을 제거 (또는 주석)하면 항상 username@hostname
프롬프트에 표시됩니다. 근처의 매개 변수 값을 조정하여 형식을 username
으로 만 변경하거나 색상을 변경할 수 있습니다. 탐색에 도움이되는 많은 의견이 있습니다.
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
의 context
다른 위치로 이동하거나 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
로 이동할 수도 있습니다.
프롬프트 세그먼트는 입력중인 현재 명령이 관련 도구를 호출 할 때만 표시되도록 구성 할 수 있습니다.
# Show prompt segment "kubecontext" only when the command you are typing invokes
# invokes kubectl, helm, or kubens.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
p10k configure
으로 생성 된 구성에는 이러한 종류의 매개 변수가 포함될 수 있습니다. 다른 프롬프트 세그먼트가 표시되면 사용자 정의하려면 ~/.p10k.zsh
열고 SHOW_ON_COMMAND
검색하고 이러한 매개 변수를 제거하거나 값을 변경하십시오.
또한 ~/.zshrc
의 함수를 정의하여 항상 및 명령 사이에 프롬프트 세그먼트의 표시를 전환 할 수 있습니다. 이것은 Kube-PS1의 kubeon
/ kubeoff
와 유사합니다.
function kube-toggle() {
if (( ${+POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND} )) ; then
unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND
else
POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND= ' kubectl|helm|kubens '
fi
p10k reload
if zle ; then
zle push-input
zle accept-line
fi
}
kube-toggle
입력 하여이 기능을 호출하십시오. ~/.zshrc
에 두 줄을 더 추가하여 키에 바인딩 할 수도 있습니다.
zle -N kube-toggle
bindkey ' ^] ' kube-toggle # ctrl-] to toggle kubecontext in powerlevel10k prompt
PowerLevel10K 구성 매개 변수를 통해 터미널에서 사용하는 색상 팔레트를 변경하거나 색상을 설정할 수 있습니다.
터미널 색상 팔레트 (일명 색 구성표 또는 테마)를 정확히 변경하는 방법은 사용중인 터미널의 종류에 따라 다릅니다. 터미널의 설정/선호도를 둘러 보거나 문서를 참조하십시오.
터미널 색상 팔레트를 변경하면 일반적으로 0에서 15로 번호가 매겨진 처음 16 가지 색상에만 영향을 미칩니다. PowerLevel10K 프롬프트에 영향을 미치려면 이러한 낮은 색상을 사용하는 프롬프트 스타일을 사용해야합니다. p10k configure
입력하고 Rainbow , Lean → 8 색 또는 Pure → Original을 선택하십시오. 다른 스타일은 높은 수의 색상을 사용하므로 모든 터미널 색상 팔레트에서 동일하게 보입니다.
~/.p10k.zsh
열고 "색상", "전경"및 "배경"을 검색하고 적절한 매개 변수의 값을 변경하십시오. 예를 들어 다음은 전경 time
프롬프트 세그먼트를 밝은 빨간색으로 설정하는 방법입니다.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
색상은 0에서 255 사이의 숫자를 사용하여 지정됩니다. 0에서 15까지의 색상은 다른 단자에서 다르게 보입니다. 많은 터미널은 또한 색 팔레트 (일명 색 구성표 또는 테마)를 통해 이러한 색상의 사용자 정의를 지원합니다. 16에서 255의 색상은 항상 동일하게 보입니다.
source ~/.p10k.zsh
현재 ZSH 세션에 변경 사항을 적용합니다.
터미널에서 번호가 매겨진 색상이 어떻게 보이는지 보려면 다음 명령을 실행하십시오.
for i in {0..255} ; do print -Pn " %K{ $i } %k%F{ $i } ${(l : 3 :: 0 : )i} %f " ${ ${(M)$((i % 6)) :# 3} : + $' n ' } ; done
터미널이 TrueColor를 지원하는 경우 번호가 매겨진 색상 외에 #RRGGBB
형식의 24 비트 색상을 사용할 수 있습니다.
typeset -g POWERLEVEL9K_TIME_FOREGROUND= ' #FF0000 '
관련된:
기본적으로 VSCODE 터미널은 선택한 전경 색상을 다른 색상으로 임의로 대체 할 수 있습니다. 이 동작은 VSCODE 설정에서 꺼질 수 있습니다.
PowerLevel10K는 Gitstatus를 vcs
프롬프트의 백엔드로 사용합니다. Gitstatus는 gitstatusd
와 zsh
스폰합니다. 자세한 내용은 Gitstatus를 참조하십시오. PowerLevel10K는 또한 zsh
스폰하여 프롬프트를 차단하지 않고 계산을 수행 할 수 있습니다. 보안 위험을 피하기 위해 이러한 백그라운드 프로세스는 다른 대화식 쉘과 공유되지 않습니다. 부모 zsh
프로세스가 exec(3)
종료하거나 실행하면 자동으로 종료됩니다.
아니요, PowerLevel10K는 항상 빠르며, 어떤 구성을 던지면서도 빠릅니다. PowerLevel10K를 사용할 때 눈에 띄는 프롬프트 대기 시간이 있으면 문제를여십시오.
예. Zsh-Bench를 참조하십시오.
Powerlevel10K는 PowerLevel9K#1170에서 일주일 동안 토론 한 후 2019 년 3 월 PowerLevel9K에서 포크되었습니다. PowerLevel9K는 이미 큰 사용자 기반과 몇 달 안에 릴리스주기를 측정 한 성숙한 프로젝트였습니다. PowerLevel10K는 성능 향상과 훨씬 높은 속도의 새로운 기능을 반복하기 위해 회전했습니다.
PowerLevel9K 및 PowerLevel10K는 독립적 인 프로젝트입니다. 하나를 사용할 때는 다른 하나를 설치해서는 안됩니다. 실제로 사용하는 프로젝트에 대해 문제를 제기해야합니다. 두 리포지토리 모두에 권리를 가진 개인은 없습니다. PowerLevel9K 리포지토리에 최선을 다하면 모든 버그 수정 및 새로운 기능이 PowerLevel10K로 포팅됩니다.
시간이 지남에 따라 PowerLevel10K의 거의 모든 코드가 다시 작성되었습니다. 현재 PowerLevel9K와 PowerLevel10K의 구현 사이에는 의미있는 중첩이 없습니다.
PowerLevel10K는 모든 구성과의 역 호환성을 무기한으로 유지하기 위해 최선을 다하고 있습니다. 이 약정은 PowerLevel9K (PowerLevel9k 호환성 참조)로 인식되는 모든 구성 매개 변수와 PowerLevel10K 만 이해하는 추가 매개 변수를 다룹니다. PowerLevel10K의 모든 매개 변수의 이름은 일관성을 위해 POWERLEVEL9K_
로 시작합니다.
거의. 몇 가지 차이점이 있습니다.
git
VCS 백엔드 만 PowerLevel10K에서 활성화됩니다. svn
과 hg
필요한 경우 POWERLEVEL9K_VCS_BACKENDS
에 추가하십시오. 이러한 백엔드는 아직 Powerlevel10K에서 최적화되지 않으므로 프롬프트가 매우 느리게 만들어집니다.POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true
지원하지 않습니다.POWERLEVEL9K_MODE
정의했을 것입니다. 이 매개 변수는 PowerLevel9K에 의해 무시되지만 PowerLevel10K에 의해 영예 롭습니다. PowerLevel9K와 동일한 PowerLevel10K에서 프롬프트를 보려면 POWERLEVEL9K_MODE
제거하십시오.ZLE_RPROMPT_INDENT
존중하지 않습니다. 결과적으로 PowerLevel10K의 올바른 프롬프트는 PowerLevel9K에 비해 마지막에 추가 공간을 가질 수 있습니다. 해당 공간을 원하지 않으면 ZLE_RPROMPT_INDENT=0
설정하십시오. 문제 해결에 대한 자세한 내용.POWERLEVEL9K_LEGACY_ICON_SPACING=true
설정합니다. 문제 해결에 대한 자세한 내용.PowerLevel9K에서 PowerLevel10K로 전환 할 때 프롬프트 모양의 다른 변경 사항이 표시되면 문제를여십시오.
사람들이있는 것만 큼 최고의 프롬프트를 구성하는 것에 대한 의견이 많이 있습니다. 그것은 대부분 개인 취향에 달려 있습니다. 그러나 다른 선택에 숨겨진 몇 가지 의미가 있습니다.
순수한 스타일은 순수한 ZSH 테마의 정확한 복제입니다. 이 테마의 사용자를위한 마이그레이션을 용이하게하기 위해 존재합니다. 당신이 그들 중 하나가 아니라면, 순수한 스타일을 선택하십시오.
프롬프트 색상을 선택한 터미널 색상 팔레트 (예 : Solarized Dark )에 제한하려면 Rainbow , Lean → 8 색 또는 Pure → Original을 사용하십시오. 다른 스타일은 고정 된 색상을 사용하므로 모든 터미널 색상 팔레트에서 동일하게 보입니다.
Pure를 제외한 모든 스타일에는 ASCII charset을 사용할 수있는 옵션이 있습니다. 프롬프트는 덜 예쁘게 보이지만 모든 글꼴과 모든 지역에서 올바르게 렌더링됩니다.
과도 프롬프트를 활성화하면 2 라인 프롬프트를 활용하십시오. 감소 된 스크롤백 밀도의 일반적인 단점없이 명령을 입력하기위한 추가 공간의 이점을 얻을 수 있습니다. 모든 명령이 같은 오프셋에서 시작하는 것도 좋습니다.
마찬가지로, 과도 프롬프트를 활성화하면 드문 프롬프트 (프롬프트 전에 빈 줄 포함)가 좋은 선택입니다.
vi keymap을 사용하는 경우 prompt_char
가있는 프롬프트를 선택하십시오 (마법사에서 ❯
으로 표시). V
❯
❮
VI 모드에 따라 변경됩니다 ▶
명령이 실패하면 기호가 빨간색으로 변합니다. 린 스타일에는 항상 prompt_char
있습니다. 레인보우 와 클래식 스타일은 왼쪽 프레임이없는 2 라인 구성에만 있습니다.
수평 공간을 소중히 여기거나 미니멀리스트 미학을 선호하는 경우 :
참고 : 원하는만큼 구성 마법사를 실행할 수 있습니다. 새로운 프롬프트 스타일을 시도하려면 p10k configure
입력하십시오.
이 구성을 사용하십시오.
~/.zshrc
에서 ~/.p10k.zsh
및 source ~/.p10k.zsh
또는 소스 p10k-robbyrussell.zsh
로 직접 복제 된 powerlevel10k
저장소에서 직접 저장할 수 있습니다.
아니요. Enter를 누르고 입력 한 명령이 실행되기 시작하면 오류 상태가 아직 알려지지 않았으므로 프롬프트로 표시 할 수 없습니다. 명령이 완료되면 오류 상태가 알려 지지만 해당 명령에 대한 프롬프트를 더 이상 업데이트 할 수 없습니다. 이것이 모든 명령의 오류 상태가 다음 프롬프트에 반영되는 이유입니다.
자세한 내용은 /r /zsh 의이 게시물을 참조하십시오.
ZSH 5.3 이상이 작동해야합니다. 빠른 시작에는 ZSH> = 5.4가 필요합니다.
모든 스크린 샷과 애니메이션 GIF는 권장 글꼴 및 탱고 다크 컬러 팔레트가있는 그놈 터미널에서 기록되었습니다 ( #171A1B
#2E3436
- 두 배 어두운).
현재 위치에 구문 하이라이트는 ZSH-Syntax-Highlighting에 의해 제공되었습니다.
권장 글꼴은 많은 개인의 산물입니다. 그 기원은 비트 스트림 베라 산스 모노 (Bitstream Vera Sans Mono) 이며, 이는 Menlo 를 낳았으며, 그 결과 Meslo를 생성했습니다. 마지막으로, 추가 글리프가 Meslo 에 추가되었습니다. 최종 글꼴은 Apache 라이센스의 조건에 따라 릴리스됩니다.
Meslolgs NF 글꼴은 다음 명령으로 재현 할 수 있습니다 ( git
및 docker
필요).
git clone --depth=1 https://github.com/romkatv/nerd-fonts.git
cd nerd-fonts
./build ' Meslo/S/* '
모든 것이 잘 진행되면 4 개의 ttf
파일이 ./out
에 나타납니다.
현재 PowerLevel10K를 포장하고 배포하는 것은 쉽지 않거나 권장하지 않습니다. 새로운 버전의 Powerlevel10K가 출시 될 때 패키지를 쉽게 업데이트 할 수있는 지침이 없습니다. 이것은 미래에 변할 수 있지만 곧 변할 수 있습니다.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
source ~/.zshrc
입력 한 후 이상한 일이 발생합니다[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
터미널을 열거 나 ZSH를 수동으로 시작할 때이 오류 메시지가 발생할 수 있습니다.
[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
typeset -p P9K_VERSION
실행하십시오.typeset -p P9K_VERSION
성공하고 typeset P9K_VERSION=1.19.14
(버전이 다를 수 있음)와 같은 것을 인쇄하면 ~/.zshrc
에서 다음 줄을 제거하십시오. ZSH_THEME= " powerlevel10k/powerlevel10k "
typeset: no such variable: P9K_VERSION
경우 typeset -p P9K_VERSION
실패한 경우 다음 명령을 실행하십시오. git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM :- $HOME / .oh-my-zsh / custom} /themes/powerlevel10k
exec zsh
로 ZSH를 다시 시작하십시오. 일반처럼 보이면 ?
, 그것은 정상입니다. 현재 GIT 저장소에 추적되지 않은 파일이 있음을 의미합니다. 이 파일을 보려면 git status
입력하십시오. 이 기호를 변경하거나 추적되지 않은 파일의 표시를 모두 비활성화 할 수 있습니다. ~/.p10k.zsh
에서 untracked files
검색하십시오.
FAQ : GIT 상태의 다른 기호는 무엇을 의미합니까?
터미널의 글꼴에 글리프가 없으면 프롬프트에서 이상한 질문 마크를받을 수도 있습니다. 아이콘, 글리프 또는 파워 라인 기호가 렌더링되지 않습니다.
터미널을 다시 시작하고 권장 글꼴을 설치하고 p10k configure
실행하십시오.
스크린 샷에는 세 가지 결함이 있습니다. 왼쪽에서 오른쪽으로:
ZSH 테마에는 터미널 컨텐츠에 대한 다운 투 픽셀 제어가 없습니다. 화면에 보이는 모든 것은 Monospace 캐릭터로 만들어집니다. 흰색 파워 라인 프롬프트 세그먼트는 흰색 배경의 텍스트로 만들어졌으며 U+E0B0 (오른쪽 점 포인트 삼각형)이 있습니다.
PowerLevel10K 프롬프트가 PowerLine 기호 주위에 결함이있는 경우 모든 PowerLine 테마 (Agnoster, PowerLevel9K, PowerLine 등)와 정확히 동일한 결함이 표시됩니다.
이러한 불완전 성을 다루기 위해 시도 할 수있는 몇 가지가 있습니다.
보다 급진적 인 솔루션은 배경없이 프롬프트 스타일로 전환하는 것입니다. p10k configure
입력하고 린을 선택하십시오. 이 스타일은 현대적인 가벼운 모양을 가지고 있습니다. 보너스로서, 그것은 파워 라인 스타일 프롬프트를 괴롭히는 불완전 성을 겪지 않습니다.
echo 'u276F'
입력하십시오. "ZSH : 캐릭터가 범위가 아님"이라는 오류가 발생하면 로케일은 UTF-8을 지원하지 않습니다. 문제를 해결해야 합니다. SSH를 통해 ZSH를 실행하는 경우이 점을 참조하십시오. 로컬로 ZSH를 실행하는 경우 Google " OS 에서 UTF-8 로케일을 설정하십시오".
echo 'u276F'
입력하십시오. "ZSH : 문자 범위가 아닌"이라는 오류가 발생하면 이전 섹션을 참조하십시오.
echo
명령이 ❯
하지만 커서가 여전히 잘못된 장소에있는 경우 권장 글꼴을 설치하고 p10k configure
실행하십시오.
이것이 도움이되지 않으면 ~/.zshrc
의 맨 아래에 unset ZLE_RPROMPT_INDENT
추가하십시오.
아직도 문제가 있나요? 문제를 진단하려면 다음 명령을 실행하십시오.
() {
emulate -L zsh
setopt err_return no_unset
local text
print -rl -- ' Select a part of your prompt from the terminal window and paste it below. ' ' '
read -r ' ?Prompt: ' text
local -i len= ${(m) # text}
local frame= " +- ${(pl. $len ..-.) :- } -+ "
print -lr -- $frame " | $text | " $frame
}
+------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+------------------------------+
프롬프트의 모든 부분 (왼쪽 및 오른쪽)에 대해 명령의 출력이 정렬되면 테마 또는 구성의 버그를 나타냅니다. 이 명령을 사용하여 진단하십시오.
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
%{...%}
를 찾으십시오. 그리고 백 슬래시는 출력에서 탈출합니다. 있으면 범인 일 가능성이 높습니다. 붙어 있으면 문제를 엽니 다.
+-----------------------------+
| romka@adam ✓ ~/powerlevel10k |
+-----------------------------+
이것은 일반적으로 터미널 버그 또는 오해로 인해 발생하여 단일 너비 대신 모호한 폭을 이중 폭으로 인쇄합니다. 예를 들어,이 문제.
+------------------------------+
| romka@adam ✓~/powerlevel10k |
+------------------------------+
이 프롬프트는 체크 마크 후 공간이 없으므로 원본과 다릅니다.
이것은 MacOS의 낮은 수준 버그로 인해 발생할 수 있습니다. 이 문제를 참조하십시오.
프롬프트에 유니 코드 표준에 "넓은"글리프가 포함되어 있고 터미널을 잘못 표시하는 경우에도 발생할 수 있습니다. 이 제한으로 고통받는 터미널에는 Konsole, Hyper 및 Integrated VScode 터미널이 포함됩니다. 해결책은 다른 터미널을 사용하거나 프롬프트에서 모든 넓은 글리프를 제거하는 것입니다.
+--------------------------------+
| romka@adam ✓ ~/powerlevel10k |
+--------------------------------+
이것은 잘못 구성된 로케일로 인해 발생할 수 있습니다. 이 문제를 참조하십시오.
커서가 잘못된 장소에 있습니다.
커서가 잘못된 장소에 있습니다.
PowerLevel10K가 시작되면 POWERLEVEL9K_*
매개 변수가 정의되지 않으면 자동으로 p10k configure
실행합니다. 신속한 스타일 선택을 기반으로 구성 마법사는 POWERLEVEL9K_*
매개 변수로 ~/.p10k.zsh
생성 하고이 파일을 소스하기 위해 ~/.zshrc
에 줄을 추가합니다. 다음에 ZSH를 시작할 때 구성 마법사가 자동으로 실행되지 않아야합니다. 그렇다면 이는 ~/.zshrc
의 평가가 ~ ~/.p10k.zsh
소스 라인에 도달하기 전에 조기에 종료되는 것을 의미합니다. 이것은 대부분 ~/.zshrc
의 구문 오류로 인해 발생합니다. 이러한 오류는 구성 마법사 화면으로 숨겨져 있으므로 알 수 없습니다. 구성 마법사를 종료하면 오류 메시지를 찾으십시오. POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh
사용하여 구성 마법사를 자동으로 실행하지 않고도 zsh를 시작할 수도 있습니다. 일단 오류를 볼 수 있으면 ~/.zshrc
수정하여 제거하십시오.
ZSH 버전이 5.7.1 미만이거나 COLORTERM
Environment 변수가 24bit
나 truecolor
아닌 경우, 구성 마법사는 Snazzy Color 구성표로 순수한 스타일을 제공하지 않습니다. 수정 : ZSH> = 5.7.1을 설치하고 truecolor 지원이있는 터미널을 사용하십시오. print -P '%F{#ff0000}red%f'
로 확인하십시오.
터미널이 256 개 미만의 색상을 표시 할 수있는 경우 구성 마법사는 8 가지 색상으로 린 스타일을 사전 선택합니다. 다른 모든 스타일에는 최소 256 개의 색상이 필요합니다. 수정 : 256 개의 색상 지원이있는 터미널을 사용하고 TERM
Environment 변수가 올바르게 설정되어 있는지 확인하십시오. print $terminfo[colors]
로 확인하십시오.
시스템에 UTF-8 로케일이없는 경우 구성 마법사는 유니 코드 문자를 사용하는 프롬프트 스타일을 제공하지 않습니다. 수정 : UTF-8 로케일을 설치하십시오. locale -a
로 확인하십시오.
구성 마법사가 유니 코드 프롬프트 스타일을 제공하지 않을 수있는 또 다른 경우는 MULTIBYTE
쉘 옵션이 비활성화 된 경우입니다. 수정 : MULTIBYTE
옵션을 활성화하거나 비활성화하지 않습니다 (이 옵션은 기본적으로 ZSH에서 활성화됩니다). print -r -- ${options[MULTIBYTE]}
로 확인하십시오.
MULTIBYTE
활성화되고 UTF-8 로케일을 사용할 수 있으면 구성 마법사의 첫 몇 가지 질문이 터미널 글꼴의 기능을 평가합니다. 답변에 일부 글리프가 올바르게 렌더링되지 않음을 나타내는 경우 구성 마법사는이를 사용하는 신속한 스타일을 제공하지 않습니다. 수정 : 터미널을 다시 시작하고 권장 글꼴을 설치하십시오. p10k configure
실행하고 모든 글리프가 올바르게 렌더링하는지 확인하여 확인하십시오.
권장 글꼴을 다운로드하면 다른 글꼴과 마찬가지로 설치할 수 있습니다. Google " OS 에 글꼴을 설치하는 방법".
tl; dr : ZLE_RPROMPT_INDENT=0
및 POWERLEVEL9K_LEGACY_ICON_SPACING=true
~/.zshrc를 ~/.zshrc
에 추가하여 PowerLevel9k에서와 동일한 프롬프트를 얻습니다.
PowerLevel9K 구성과 함께 PowerLevel10K를 사용하는 경우 여기 저기 프롬프트에 추가 공간이 발생할 수 있습니다. 이것들은 두 가지 맛으로 나옵니다.
tl; dr : ZLE_RPROMPT_INDENT=0
to ~/.zshrc
를 추가하여 해당 공간을 제거하십시오.
ZSH 문서 :
ZLE_RPROMPT_INDENT <S>
설정된 경우
RPS1
또는RPROMPT
에 의해 주어진 라인 편집기의 오른쪽 프롬프트와 화면의 오른쪽 사이의 오른쪽 사이에 들여 쓰기에 사용됩니다. 설정하지 않으면 값1
사용됩니다.일반적으로 이것은 값을
0
으로 설정하는 데 사용되므로 프롬프트가 화면의 오른쪽으로 플러시됩니다.
PowerLevel10K는이 매개 변수를 존중합니다. ZLE_RPROMPT_INDENT=1
(또는 1
로 설정하는 것과 동일)을 설정하면 오른쪽 프롬프트의 오른쪽에 빈 공간이 생깁니다. ZLE_RPROMPT_INDENT=0
설정하면 프롬프트가 터미널의 가장자리로 이동합니다. 이것이 PowerLevel9K를 제외한 모든 테마에서 작동하는 방식입니다.
PowerLevel9K 문제 : PowerLevel9K#1292. PowerLevel9K의 개발 지점에 고정되었지만 수정은 아직 master
하지 않았습니다.
ZLE_RPROMPT_INDENT=0
to ~/.zshrc
를 추가하여 PowerLevel9K에서와 같은 프롬프트의 오른쪽 가장자리에서 동일한 간격을 얻으십시오.
참고 : ZLE_RPROMPT_INDENT=0
설정할 때 트리거되는 버그가 여러 개 있습니다. PowerLevel10K는 PowerLine 프롬프트 스타일을 사용할 때 이러한 버그를 둘러 볼 수 있습니다. 프롬프트 또는 잘못된 커서 위치에 시각적 아티팩트가 표시되면 ~/.zshrc
에서 ZLE_RPROMPT_INDENT
제거하십시오.
tl; dr : powerlevel9k에서와 동일한 간격을 얻으려면 POWERLEVEL9K_LEGACY_ICON_SPACING=true
~/.zshrc
를 추가하십시오.
PowerLevel9K의 아이콘 주위의 간격은 일치하지 않습니다.
이 불일치는 끊임없는 성가심의 원천이므로 PowerLevel10K에서 고정되었습니다. PowerLevel9k에서와 동일한 간격을 얻으려면 POWERLEVEL9K_LEGACY_ICON_SPACING=true
~/.zshrc
PowerLevel9K_LEGACY_ICON_SPACING = TRUE를 추가 할 수 있습니다.
참고 : p10k configure
사용할 때 POWERLEVEL9K_LEGACY_ICON_SPACING
정의하는 것은 좋은 생각이 아닙니다.
source ~/.zshrc
입력 한 후 이상한 일이 발생합니다 PowerLevel10K를 사용하든 아니든 source ~/.zshrc
실행하는 것은 거의 항상 나쁜 생각입니다. 이 명령으로 인해 임의의 오류, 오작동 코드 및 ZSH의 점진적인 둔화가 발생할 수 있습니다.
~/.zshrc
또는 그에 의해 공급 된 파일을 변경 한 경우 ZSH를 다시 시작하여 적용하십시오. 이를 수행하는 가장 신뢰할 수있는 방법은 exit
입력 한 다음 새로운 ZSH 세션을 시작하는 것입니다. exec zsh
사용할 수도 있습니다. ZSH 재시작을 완료하는 것과 정확히 동일하지는 않지만이 명령은 source ~/.zshrc
보다 훨씬 신뢰할 수 있습니다.
source ~/.zshrc
입력 한 후에 이상한 일이 발생합니다.
설치 지침이 작동하지 않으면 현재 테마를 비활성화하여 테마가 없어지면 PowerLevel10K를 수동으로 설치하십시오.
~/.zshrc
열고 ZSH_THEME
설정하는 선을 제거하십시오. 다음과 같이 보일 수 있습니다 : ZSH_THEME="powerlevel9k/powerlevel9k"
.~/.zshrc
열고 현재 테마를 나타내는 zplug
명령을 제거하십시오. 예를 들어, 현재 PowerLevel9K를 사용하고있는 경우 zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme
찾으십시오.~/.zpreztorc
및 put zstyle :prezto:module:prompt theme off
. zstyle :prezto:module:prompt theme powerlevel9k
와 같은 theme
설정하는 다른 명령을 제거하십시오.~/.zshrc
열고 antigen theme
설정하는 선을 제거하십시오. antigen theme powerlevel9k/powerlevel9k
처럼 보일 수 있습니다.git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~ /powerlevel10k
echo ' source ~/powerlevel10k/powerlevel10k.zsh-theme ' >> ~/.zshrc
이 설치 방법은 더 느리거나 하위 부문을 만들지 않습니다.
레인보우 스타일에서 현재 작업 디렉토리는 파란색 배경에 밝은 흰색 텍스트로 표시됩니다. 흰색은 고정되어 있으며 항상 동일하게 보이지만 "파란색"의 모양은 터미널 색상 팔레트에 의해 정의됩니다. 매우 가벼우면 흰색 텍스트를보기가 어려울 수 있습니다.
이것을 고치는 방법에는 몇 가지가 있습니다.
p10k configure
입력하고 더 읽기 쉬운 프롬프트 스타일을 선택하십시오.POWERLEVEL9K_DIR_BACKGROUND
, POWERLEVEL9K_DIR_FOREGROUND
, POWERLEVEL9K_DIR_SHORTENED_FOREGROUND
, POWERLEVEL9K_DIR_ANCHOR_FOREGROUND
및 POWERLEVEL9K_DIR_ANCHOR_BOLD
라고합니다. ~/.p10k.zsh
에서 찾을 수 있습니다.관련 : VSCODE 터미널의 잘못된 전경 색상.
기본적으로 VSCODE 터미널은 선택한 전경 색상을 다른 색상으로 임의로 대체 할 수 있습니다. 이 동작은 VSCODE 설정에서 꺼질 수 있습니다.
터미널 창을 수평으로 몇 번이나 크게 조정하면이 추악한 그림이 표시 될 수 있습니다.
TL; DR :이 문제는 단자가 크기 조정시 ZSH 프롬프트를 반영 할 때 발생합니다. PowerLevel10K에만 국한되지 않습니다. 완화를 참조하십시오.
참고 :이 섹션에서는 문제가 ZSH의 버그로 인해 발생한다고 말했습니다. ZSH를 수정하여 많은 상황에서 문제를 피할 수 있다는 것은 사실이지만, 이런 식으로 완전히 해결할 수는 없습니다. 따라서 ZSH에 대한 책임을 고정하는 것은 불공평합니다.
전류 프롬프트의 시작과 커서 (따라서 VD
) 사이의 수직 거리가 터미널 윈도우가 크기를 조정할 때 변경 될 때 문제가 나타납니다.
터미널 창이 수평으로 축소되면 터미널이 더 이상 맞지 않는 긴 줄을 다루는 두 가지 방법이 있습니다 : 리플 로우 또는 잘립니다 .
수축 전 터미널 함량 :
터미널은 수축시 텍스트를 반사합니다.
터미널은 수축 할 때 텍스트를 잘라냅니다.
반사 전략은 터미널 함량의 높이를 변경할 수 있습니다. 이러한 내용이 현재 프롬프트의 시작과 커서 사이에있는 경우 ZSH는 잘못된 줄에 프롬프트를 인쇄합니다. 잘림 전략은 터미널 함량의 높이를 변경하지 않으므로이 문제를 유발하지 않습니다.
이 문제가 슬로우 모션에서 어떻게 진행되는지 봅시다. zsh -f
시작하고 다음 코드를 붙여서 시작하겠습니다.
function pause() { read -s }
functions -M pause 0
reset
print -l {1..3}
setopt prompt_subst
PROMPT= $' ${$((pause()))+}left>${(pl.$((COLUMNS-12))..-.)}<right n > '
PROMPT
확장되면 pause
호출하여 터미널의 상태를 관찰 할 수 있습니다. 초기 상태는 다음과 같습니다.
ZSH는 현재 프롬프트의 시작과 관련하여 커서 위치를 추적합니다. 이 경우 커서는 아래의 한 줄이라는 것을 알고 있습니다. 터미널 창을 축소하면 다음과 같습니다.
이 시점에서 터미널은 SIGWINCH
ZSH로 보내어 터미널 치수의 변화에 대해 알립니다. 이 신호는 터미널의 내용이 반사 된 후에 전송됩니다.
Zsh가 SIGWINCH
받으면 현재 프롬프트를 지우고 새로 인쇄하려고 시도합니다. 현재 프롬프트가 커서 (!) 위의 한 줄 (!)이라고 생각하는 위치로갑니다. 다음과 같은 모든 터미널 컨텐츠를 지우고 프롬프트를 다시 홍보합니다. 그러나 프롬프트 크기를 조정 한 후 더 이상 커서 위의 한 줄이 아닙니다. 위의 두 줄입니다! ZSH는 새로운 프롬프트 한 줄을 너무 낮게 인쇄하게됩니다.
이 경우 VD
증가 했기 때문에 원치 않는 정크 콘텐츠로 끝났습니다. 터미널 윈도우를 더 넓게 만들면 VD
도 줄어들 수 있으므로 새로운 프롬프트가 의도 한 것보다 높아져 프로세스에서 유용한 콘텐츠가 줄어 듭니다.
다음은 수축 터미널 창이 VD
증가시키는 몇 가지 예입니다.
prompt_subst
없습니다. 커서는 프롬프트 라인 아래에 있습니다 ( ESC-Enter를 쳤다.prompt_subst
가없고 올바른 프롬프트가 없습니다. 여기서 VD
명령 줄이 감싸서 터미널 수축시 증가해야합니다. 이 ZSH 패치는 일부 터미널에서 문제를 해결합니다. 패치 뒤에 아이디어는 프롬프트를 인쇄하기 전에 sc
(Save Cursor) 터미널 기능을 사용하고 rc
(Cursor)를 사용하여 프롬프트를 새로 고침해야 할 때 커서를 원래 위치로 다시 이동시키는 것입니다.
패치는 단자 창을 크기로 조정할 때 리플 로우가 텍스트와 함께 커서 위치를 저장 한 터미널에서만 작동합니다. 이 패치는 Resize (패치 및 패치되지 않은 ZSH 모두가 올바르게 행동 함)와 저장된 커서 위치 (패치 및 배치되지 않은 ZSH 리드 그리프 프롬프트 모두 동일한 부정확 한 위치에서 패치 및 배치되지 않은 ZSH 리드 로그 프롬프트가없는 터미널에서 텍스트를 반영하지 않는 터미널에 대한 영향이 없습니다. ). 다시 말해, 패치는 일부 터미널에서 크기 조정 문제를 수정하면서 동작을 다른 터미널에서 변경하지 않도록합니다.
ZSH 패치에 대한 두 가지 대안 접근법이 있습니다. ZSH는 언뜻보기에 작동하는 것처럼 보이지만 실제로는 그렇지 않습니다.
sc
대신 u7
터미널 기능을 사용하여 현재 커서 위치를 쿼리 한 다음 cup
으로 돌아갑니다. 텍스트가 반사되면 현재 프롬프트 시작의 절대 위치가 변경되기 때문에 작동하지 않습니다.VD
다시 작성하십시오. ZSH가 터미널이 텍스트를 반영하는지 또는 잘린지 알지 못하기 때문에 작동하지 않습니다. ZSH가 터미널이 리플 로우 텍스트라는 것을 알 수 있다면,이 접근법은 여전히 창을 크기를 조정할 때 텍스트와 빠른 시그 SIGWINCH
지속적으로 반영하는 터미널에서 작동하지 않을 것입니다. 이러한 환경에서 실제 터미널 치수는 ZSH가 차원의 생각과 동기화되지 않습니다.패치가 업스트림 ZSH로 향하는 ETA는 없습니다. 토론을 참조하십시오.
There are a few mitigation options for this issue.
POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
in ~/.p10k.zsh
.POWERLEVEL9K_SHOW_RULER=false
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
.POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=''
, POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=''
and POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=''
.POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
. Right prompt on the last prompt line will cause resizing issues only when the cursor is below it. This isn't very common, so you might want to keep some elements in POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
provided that none of them are succeeded by newline
.When using Konsole with a non-monospace font, icons may be cut off on the right side. Here "non-monospace" refers to any font with glyphs wider than a single column, or wider than two columns for glyphs designated as "wide" in the Unicode standard.
The last line on the screenshot shows a cut off Arch Linux logo.
There are several mitigation options for this issue.
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and change it as follows: typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # extra space at the end
~/.p10k.zsh
: typeset -g POWERLEVEL9K_LINUX_ARCH_ICON= ' Arch ' # plain "Arch" in place of a logo
os_icon
prompt segment gets cut off, open ~/.p10k.zsh
and remove os_icon
from POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
and POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
.Note : Non-monospace fonts are not officially supported by Konsole.
Some fonts have this incorrect dotted icon in bold typeface. There are two ways to fix this issue.
~/.p10k.zsh
, search for POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION
and remove %B
from its value. typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION= ' ${P9K_CONTENT} ' # not bold
Powerlevel10k uses gitstatusd to inspect the state of git repositories. The project relies on the libgit2 library, which has some gaps in its implementation. Under some conditions, this may result in discrepancies between the real state of a git repository (reflected by git status
) and what gets shown in the Powerlevel10k prompt.
Most notably, libgit2 does not support skipHash
. If you see incorrect git status in prompt, run git config -l
and check whether skipHash
is enabled. If it is, consider disabling it. Keep in mind that skipHash
may be implicitly enabled when activating certain git features, such as manyFiles
.