シェルにNBSPを空白文字として処理させることはできますか?

シェルにNBSPを空白文字として処理させることはできますか?

これは一般的な問題のようです。単純なコマンドをどこかで端末に貼り付けましたが、シェルはそれを理解していません。

$ 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でも機能するかどうかはわかりません。

おすすめ記事