이것은 일반적인 문제인 것 같습니다. 간단한 명령을 어딘가에서 터미널에 붙여넣었지만 쉘이 이를 이해하지 못합니다.
$ echo test
$ zsh: command not found: echo test
그 이유는 단어 사이에 있기 때문이다.NBSP공간보다는 NBSP를 공백 문자로 처리하도록 쉘에 지시할 수 있습니까?
답변1
터미널이 대괄호 붙여넣기를 지원한다고 가정하면 zsh 붙여넣기 위젯을 재정의하여 잘림 방지 공백을 바꿀 수 있습니다. 예를 들어:
bracketed-paste-subst() {
local content
zle .bracketed-paste -N content
YANK_START=CURSOR
LBUFFER+="${content//$'\u00a0'/ }"
YANK_END=CURSOR
zle -f yank 2> /dev/null
}
zle -N bracketed-paste-subst
bindkey "^[[200~" bracketed-paste-subst
이론적으로는 변수에 줄바꿈 없는 공백을 추가하여 IFS
단어 구분 기호로 처리할 수 있지만 이것이 비ASCII에서도 작동할지 확신할 수 없으며 어쨌든 그렇게 하는 것은 좋은 생각이 아닙니다.