これは一般的な問題のようです。単純なコマンドをどこかで端末に貼り付けましたが、シェルはそれを理解していません。
$ 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でも機能するかどうかはわかりません。