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/zshrc
echo $options[beep]
set +o beep
set -o beep
~/.zshrc