Linux 셸에서 입력이 비어 있을 때 Ctrl-W / ^W는 Ctrl-D / ^D처럼 EOF를 보내나요?

Linux 셸에서 입력이 비어 있을 때 Ctrl-W / ^W는 Ctrl-D / ^D처럼 EOF를 보내나요?

^W가 셸에 null로 입력된 ^D와 동일하게 동작하도록 하는 방법이 있습니까? 나는 zsh를 사용하지만 이것은 bash에서도 작동합니다. 그렇지 않으면 아무 일도 하지 않습니다(입력 줄이 지워진 경우). 이는 다른 UI(예: Gtk, 웹 브라우저)에서 ^W가 콘텐츠를 닫는 것과 일치합니다.

답변1

EOF를 나타내기 위해 두 개의 서로 다른 문자를 설정할 수 없습니다. styy나는 당신이 이런 짓을 못하게 할 것입니다.

그러나 이 예에서는 이것이 필요하지 않습니다. Zsh의 내장 backward-kill-word위젯을 간단히 재정의할 수 있습니다.

# Tell zsh to call a function with 
# the same name whenever 
# backward-kill-word is activated.
zle -N backward-kill-word

backward-kill-word() {
  # Exit the shell if the command
  # line is a zero-length string.
  [[ -z "$BUFFER" ]] &&
      exit

  # Otherwise, call the original 
  # built-in widget.
  zle .$0
}

읽다Zsh 라인 편집기 문서더 많은 정보를 알고 싶습니다.

관련 정보