Zsh - 백스페이스 터미널 경고음을 활성화하는 방법

Zsh - 백스페이스 터미널 경고음을 활성화하는 방법

kali linux 터미널(zsh)에서 경고음을 어떻게 활성화할 수 있는지 조언을 구합니다. 서브셸에 있을 때 경고음이 작동한다는 점에 유의하세요(예: mysql CLI에 액세스했는데 백스페이스가 제대로 작동함).

답변1

zsh 및 emacs 모드에서는 이것이 기본 backward-delete-char바인딩 위젯입니다.Backspace

위젯을 사용하여 특정 키 바인딩의 내용을 이해할 수 있습니다 describe-key-briefly. 기본적으로 위젯은 어떤 키에도 바인딩되어 있지 않지만 Alt+를 사용하여 emacs 모드(emacs에서와 같이)에서 zle 위젯을 실행 x하고 그 안에 위젯을 입력할 수 있습니다(탭 완성 가능).

따라서 Alt+ xdesc가 TabEnterBackspace표시됩니다.

"^?" is backward-delete-char

^?대부분의 터미널 에뮬레이터에서 보낸 DEL 문자의 표현입니다 Backspace.

또는 다음을 실행할 수 있습니다.

$ bindkey '^?'
"^?" backward-delete-char

위젯 은 ++를 입력할 때 backward-delete-char와 같이 음수 인수가 제공될 때만 경고음을 울리며 이 경우 5자를 제거합니다.Alt-Alt5Backspace앞으로(emacs에서와 같이) 뒤로 이동하는 대신 삭제할 문자가 많지 않은 경우 경고음이 울리고 모든 문자가 삭제됩니다(그리고 emacs의 동작에서 벗어나는 커서를 끝으로 이동합니다).

줄 시작 부분에서 호출되거나 제거할 문자 수보다 큰 숫자 인수를 사용하여 호출할 때 경고음을 울리도록 하려면 다음과 같이 재정의할 수 있습니다.

backward-delete-char() {
  local enough_chars=$(( CURSOR >= ${NUMERIC:-1} ))
  zle .$WIDGET && (( enough_chars ))
}
zle -N backward-delete-char

기본적으로 완료에 실패하면 경고음이 울립니다. 그렇지 않다면, 당신이나 그들이 소스로 삼은 파일에 setopt nobeep// unsetopt beep... 가 있을 수 있습니다. 를 이용하여 옵션의 상태를 확인할 수 있으며, 옵션의 위치를 ​​찾을 수 없는 경우 언제든지 마지막에 추가하여 복원할 수 있습니다.set +o beep~/.zshrc/etc/zsh/zshrcecho $options[beep]set +o beepset -o beep~/.zshrc

관련 정보