답변1
다음에서 이 작업을 수행할 수 있습니다 ~/.zshrc
.
realPS1="$PS1"
changed=false
changePS1() {
$changed && {
PS1="%n (normal) in %~> "
#Or
PS1="$realPS1"
changed=false
: # <-- It might be not necessary add this `:`. This one
#represents a zero-status code (or successful).
} || {
PS1="%n (hidden)> "
changed=true
}
}
bindkey -s "^H" 'changePS1^M'
Ctrl + H 위 코드는 함수를 실행하기 위한 단축키(바인드키 사용)를 생성합니다 changePS1
. 따라서 기본적으로 프롬프트를 Ctrl + H 활성화 하고 다시 누르면 프롬프트가 활성화됩니다 .hidden
Ctrl + H normal
$PS1
할당해야 하는 값 에 대해귀하의 필요에 따라. 예를 들어, 이 줄은 PS1="%n (normal) in %~> "
다음 프롬프트를 표시합니다.
edgar (normal) in ~/Documents/Gitlab/Linux_programming>
%n
사용자 이름과 %~
현재 작업 디렉터리의 상대 경로는 어디에 있습니까?
그러나 실제 $PS1
(행 realPS1="$PS1"
)을 백업하고 PS1="$realPS1"
대신 사용할 수 있습니다.PS1="%n (normal) in %~> "
그리고 PS1="%n (hidden)> "
다음 프롬프트가 표시됩니다:
edgar (hidden)>
따라서 사용자 PS1
정의 힌트를 사용하여 변수를 할당해야 하지만 반드시 %~
경로 인쇄를 피할 필요는 없습니다.